1This is org.info, produced by makeinfo version 6.7 from org.texi. 2 3This manual is for Org version 9.4. 4 5 Copyright © 2004–2021 Free Software Foundation, Inc. 6 7 Permission is granted to copy, distribute and/or modify this 8 document under the terms of the GNU Free Documentation License, 9 Version 1.3 or any later version published by the Free Software 10 Foundation; with no Invariant Sections, with the Front-Cover Texts 11 being “A GNU Manual,” and with the Back-Cover Texts as in (a) 12 below. A copy of the license is included in the section entitled 13 “GNU Free Documentation License.” 14 15 (a) The FSF’s Back-Cover Text is: “You have the freedom to copy and 16 modify this GNU manual.” 17 18INFO-DIR-SECTION Emacs editing modes 19START-INFO-DIR-ENTRY 20* Org Mode: (org). Outline-based notes management and organizer. 21END-INFO-DIR-ENTRY 22 23 24File: org.info, Node: Top, Next: Introduction, Up: (dir) 25 26The Org Manual 27************** 28 29This manual is for Org version 9.4. 30 31 Copyright © 2004–2021 Free Software Foundation, Inc. 32 33 Permission is granted to copy, distribute and/or modify this 34 document under the terms of the GNU Free Documentation License, 35 Version 1.3 or any later version published by the Free Software 36 Foundation; with no Invariant Sections, with the Front-Cover Texts 37 being “A GNU Manual,” and with the Back-Cover Texts as in (a) 38 below. A copy of the license is included in the section entitled 39 “GNU Free Documentation License.” 40 41 (a) The FSF’s Back-Cover Text is: “You have the freedom to copy and 42 modify this GNU manual.” 43 44* Menu: 45 46* Introduction:: Getting started. 47* Document Structure:: A tree works like your brain. 48* Tables:: Pure magic for quick formatting. 49* Hyperlinks:: Notes in context. 50* TODO Items:: Every tree branch can be a TODO item. 51* Tags:: Tagging headlines and matching sets of tags. 52* Properties and Columns:: Storing information about an entry. 53* Dates and Times:: Making items useful for planning. 54* Refiling and Archiving:: Moving and copying information with ease. 55* Capture and Attachments:: Dealing with external data. 56* Agenda Views:: Collecting information into views. 57* Markup for Rich Contents:: Compose beautiful documents. 58* Exporting:: Sharing and publishing notes. 59* Publishing:: Create a web site of linked Org files. 60* Working with Source Code:: Export, evaluate, and tangle code blocks. 61* Miscellaneous:: All the rest which did not fit elsewhere. 62* Hacking:: How to hack your way around. 63* History and Acknowledgments:: How Org came into being. 64* GNU Free Documentation License:: The license for this documentation. 65* Main Index:: An index of Org’s concepts and features. 66* Key Index:: Key bindings and where they are described. 67* Command and Function Index:: Command names and some internal functions. 68* Variable Index:: Variables mentioned in the manual. 69 70— The Detailed Node Listing — 71 72Introduction 73 74* Summary:: Brief summary of what Org does. 75* Installation:: Installing Org. 76* Activation:: How to activate Org for certain buffers. 77* Feedback:: Bug reports, ideas, patches, etc. 78* Conventions:: Typesetting conventions used in this manual. 79 80Document Structure 81 82* Headlines:: How to typeset Org tree headlines. 83* Visibility Cycling:: Show and hide, much simplified. 84* Motion:: Jumping to other headlines. 85* Structure Editing:: Changing sequence and level of headlines. 86* Sparse Trees:: Matches embedded in context. 87* Plain Lists:: Additional structure within an entry. 88* Drawers:: Tucking stuff away. 89* Blocks:: Folding blocks. 90 91Visibility Cycling 92 93* Global and local cycling:: Cycling through various visibility states. 94* Initial visibility:: Setting the initial visibility state. 95* Catching invisible edits:: Preventing mistakes when editing invisible parts. 96 97Tables 98 99* Built-in Table Editor:: Simple tables. 100* Column Width and Alignment:: Overrule the automatic settings. 101* Column Groups:: Grouping to trigger vertical lines. 102* Orgtbl Mode:: The table editor as minor mode. 103* The Spreadsheet:: The table editor has spreadsheet capabilities. 104* Org Plot:: Plotting from Org tables. 105 106The Spreadsheet 107 108* References:: How to refer to another field or range. 109* Formula syntax for Calc:: Using Calc to compute stuff. 110* Formula syntax for Lisp:: Writing formulas in Emacs Lisp. 111* Durations and time values:: How to compute durations and time values. 112* Field and range formulas:: Formula for specific (ranges of) fields. 113* Column formulas:: Formulas valid for an entire column. 114* Lookup functions:: Lookup functions for searching tables. 115* Editing and debugging formulas:: Fixing formulas. 116* Updating the table:: Recomputing all dependent fields. 117* Advanced features:: Field and column names, automatic recalculation... 118 119Hyperlinks 120 121* Link Format:: How links in Org are formatted. 122* Internal Links:: Links to other places in the current file. 123* Radio Targets:: Make targets trigger links in plain text. 124* External Links:: URL-like links to the world. 125* Handling Links:: Creating, inserting and following. 126* Using Links Outside Org:: Linking from my C source code? 127* Link Abbreviations:: Shortcuts for writing complex links. 128* Search Options:: Linking to a specific location. 129* Custom Searches:: When the default search is not enough. 130 131TODO Items 132 133* TODO Basics:: Marking and displaying TODO entries. 134* TODO Extensions:: Workflow and assignments. 135* Progress Logging:: Dates and notes for progress. 136* Priorities:: Some things are more important than others. 137* Breaking Down Tasks:: Splitting a task into manageable pieces. 138* Checkboxes:: Tick-off lists. 139 140TODO Extensions 141 142* Workflow states:: From TODO to DONE in steps. 143* TODO types:: I do this, Fred does the rest. 144* Multiple sets in one file:: Mixing it all, still finding your way. 145* Fast access to TODO states:: Single letter selection of state. 146* Per-file keywords:: Different files, different requirements. 147* Faces for TODO keywords:: Highlighting states. 148* TODO dependencies:: When one task needs to wait for others. 149 150Progress Logging 151 152* Closing items:: When was this entry marked as done? 153* Tracking TODO state changes:: When did the status change? 154* Tracking your habits:: How consistent have you been? 155 156Tags 157 158* Tag Inheritance:: Tags use the tree structure of an outline. 159* Setting Tags:: How to assign tags to a headline. 160* Tag Hierarchy:: Create a hierarchy of tags. 161* Tag Searches:: Searching for combinations of tags. 162 163Properties and Columns 164 165* Property Syntax:: How properties are spelled out. 166* Special Properties:: Access to other Org mode features. 167* Property Searches:: Matching property values. 168* Property Inheritance:: Passing values down a tree. 169* Column View:: Tabular viewing and editing. 170 171Column View 172 173* Defining columns:: The COLUMNS format property. 174* Using column view:: How to create and use column view. 175* Capturing column view:: A dynamic block for column view. 176 177Defining columns 178 179* Scope of column definitions:: Where defined, where valid? 180* Column attributes:: Appearance and content of a column. 181 182Dates and Times 183 184* Timestamps:: Assigning a time to a tree entry. 185* Creating Timestamps:: Commands to insert timestamps. 186* Deadlines and Scheduling:: Planning your work. 187* Clocking Work Time:: Tracking how long you spend on a task. 188* Effort Estimates:: Planning work effort in advance. 189* Timers:: Notes with a running timer. 190 191Creating Timestamps 192 193* The date/time prompt:: How Org mode helps you enter dates and times. 194* Custom time format:: Making dates look different. 195 196Deadlines and Scheduling 197 198* Inserting deadline/schedule:: Planning items. 199* Repeated tasks:: Items that show up again and again. 200 201Clocking Work Time 202 203* Clocking commands:: Starting and stopping a clock. 204* The clock table:: Detailed reports. 205* Resolving idle time:: Resolving time when you’ve been idle. 206 207Refiling and Archiving 208 209* Refile and Copy:: Moving/copying a tree from one place to another. 210* Archiving:: What to do with finished products. 211 212Archiving 213 214* Moving subtrees:: Moving a tree to an archive file. 215* Internal archiving:: Switch off a tree but keep it in the file. 216 217Capture and Attachments 218 219* Capture:: Capturing new stuff. 220* Attachments:: Attach files to outlines. 221* RSS Feeds:: Getting input from RSS feeds. 222 223Capture 224 225* Setting up capture:: Where notes will be stored. 226* Using capture:: Commands to invoke and terminate capture. 227* Capture templates:: Define the outline of different note types. 228 229Capture templates 230 231* Template elements:: What is needed for a complete template entry. 232* Template expansion:: Filling in information about time and context. 233* Templates in contexts:: Only show a template in a specific context. 234 235Attachments 236 237* Attachment defaults and dispatcher:: How to access attachment commands 238* Attachment options:: Configuring the attachment system 239* Attachment links:: Hyperlink access to attachments 240* Automatic version-control with Git:: Everything safely stored away 241* Attach from Dired:: Using dired to select an attachment 242 243Agenda Views 244 245* Agenda Files:: Files being searched for agenda information. 246* Agenda Dispatcher:: Keyboard access to agenda views. 247* Built-in Agenda Views:: What is available out of the box? 248* Presentation and Sorting:: How agenda items are prepared for display. 249* Agenda Commands:: Remote editing of Org trees. 250* Custom Agenda Views:: Defining special searches and views. 251* Exporting Agenda Views:: Writing a view to a file. 252* Agenda Column View:: Using column view for collected entries. 253 254Built-in Agenda Views 255 256* Weekly/daily agenda:: The calendar page with current tasks. 257* Global TODO list:: All unfinished action items. 258* Matching tags and properties:: Structured information with fine-tuned search. 259* Search view:: Find entries by searching for text. 260* Stuck projects:: Find projects you need to review. 261 262Presentation and Sorting 263 264* Categories:: Not all tasks are equal. 265* Time-of-day specifications:: How the agenda knows the time. 266* Sorting of agenda items:: The order of things. 267* Filtering/limiting agenda items:: Dynamically narrow the agenda. 268 269Custom Agenda Views 270 271* Storing searches:: Type once, use often. 272* Block agenda:: All the stuff you need in a single buffer. 273* Setting options:: Changing the rules. 274 275Markup for Rich Contents 276 277* Paragraphs:: The basic unit of text. 278* Emphasis and Monospace:: Bold, italic, etc. 279* Subscripts and Superscripts:: Simple syntax for raising/lowering text. 280* Special Symbols:: Greek letters and other symbols. 281* Embedded LaTeX:: LaTeX can be freely used inside Org documents. 282* Literal Examples:: Source code examples with special formatting. 283* Images:: Display an image. 284* Captions:: Describe tables, images... 285* Horizontal Rules:: Make a line. 286* Creating Footnotes:: Edit and read footnotes. 287 288Embedded LaTeX 289 290* LaTeX fragments:: Complex formulas made easy. 291* Previewing LaTeX fragments:: What will this snippet look like? 292* CDLaTeX mode:: Speed up entering of formulas. 293 294Exporting 295 296* The Export Dispatcher:: The main interface. 297* Export Settings:: Common export settings. 298* Table of Contents:: The if and where of the table of contents. 299* Include Files:: Include additional files into a document. 300* Macro Replacement:: Use macros to create templates. 301* Comment Lines:: What will not be exported. 302* ASCII/Latin-1/UTF-8 export:: Exporting to flat files with encoding. 303* Beamer Export:: Producing presentations and slides. 304* HTML Export:: Exporting to HTML. 305* LaTeX Export:: Exporting to LaTeX and processing to PDF. 306* Markdown Export:: Exporting to Markdown. 307* OpenDocument Text Export:: Exporting to OpenDocument Text. 308* Org Export:: Exporting to Org. 309* Texinfo Export:: Exporting to Texinfo. 310* iCalendar Export:: Exporting to iCalendar. 311* Other Built-in Back-ends:: Exporting to a man page. 312* Advanced Export Configuration:: Fine-tuning the export output. 313* Export in Foreign Buffers:: Author tables and lists in Org syntax. 314 315Beamer Export 316 317* Beamer export commands:: For creating Beamer documents. 318* Beamer specific export settings:: For customizing Beamer export. 319* Frames and Blocks in Beamer:: For composing Beamer slides. 320* Beamer specific syntax:: For using in Org documents. 321* Editing support:: Editing support. 322* A Beamer example:: A complete presentation. 323 324HTML Export 325 326* HTML export commands:: Invoking HTML export. 327* HTML specific export settings:: Settings for HTML export. 328* HTML doctypes:: Exporting various (X)HTML flavors. 329* HTML preamble and postamble:: Inserting preamble and postamble. 330* Quoting HTML tags:: Using direct HTML in Org files. 331* Headlines in HTML export:: Formatting headlines. 332* Links in HTML export:: Inserting and formatting links. 333* Tables in HTML export:: How to modify the formatting of tables. 334* Images in HTML export:: How to insert figures into HTML output. 335* Math formatting in HTML export:: Beautiful math also on the web. 336* Text areas in HTML export:: An alternate way to show an example. 337* CSS support:: Changing the appearance of the output. 338* JavaScript support:: Info and folding in a web browser. 339 340LaTeX Export 341 342* LaTeX/PDF export commands:: For producing LaTeX and PDF documents. 343* LaTeX specific export settings:: Unique to this LaTeX back-end. 344* LaTeX header and sectioning:: Setting up the export file structure. 345* Quoting LaTeX code:: Incorporating literal LaTeX code. 346* Tables in LaTeX export:: Options for exporting tables to LaTeX. 347* Images in LaTeX export:: How to insert figures into LaTeX output. 348* Plain lists in LaTeX export:: Attributes specific to lists. 349* Source blocks in LaTeX export:: Attributes specific to source code blocks. 350* Example blocks in LaTeX export:: Attributes specific to example blocks. 351* Special blocks in LaTeX export:: Attributes specific to special blocks. 352* Horizontal rules in LaTeX export:: Attributes specific to horizontal rules. 353 354OpenDocument Text Export 355 356* Pre-requisites for ODT export:: Required packages. 357* ODT export commands:: Invoking export. 358* ODT specific export settings:: Configuration options. 359* Extending ODT export:: Producing DOC, PDF files. 360* Applying custom styles:: Styling the output. 361* Links in ODT export:: Handling and formatting links. 362* Tables in ODT export:: Org tables conversions. 363* Images in ODT export:: Inserting images. 364* Math formatting in ODT export:: Formatting LaTeX fragments. 365* Labels and captions in ODT export:: Rendering objects. 366* Literal examples in ODT export:: For source code and example blocks. 367* Advanced topics in ODT export:: For power users. 368 369Math formatting in ODT export 370 371* LaTeX math snippets:: Embedding in LaTeX format. 372* MathML and OpenDocument formula files:: Embedding in native format. 373 374Texinfo Export 375 376* Texinfo export commands:: Invoking commands. 377* Texinfo specific export settings:: Setting the environment. 378* Texinfo file header:: Generating the header. 379* Texinfo title and copyright page:: Creating preamble pages. 380* Info directory file:: Installing a manual in Info file hierarchy. 381* Headings and sectioning structure:: Building document structure. 382* Indices:: Creating indices. 383* Quoting Texinfo code:: Incorporating literal Texinfo code. 384* Plain lists in Texinfo export:: List attributes. 385* Tables in Texinfo export:: Table attributes. 386* Images in Texinfo export:: Image attributes. 387* Quotations in Texinfo export:: Quote block attributes. 388* Special blocks in Texinfo export:: Special block attributes. 389* A Texinfo example:: Processing Org to Texinfo. 390 391Export in Foreign Buffers 392 393* Bare HTML:: Exporting HTML without CSS, Javascript, etc. 394 395Publishing 396 397* Configuration:: Defining projects. 398* Uploading Files:: How to get files up on the server. 399* Sample Configuration:: Example projects. 400* Triggering Publication:: Publication commands. 401 402Configuration 403 404* Project alist:: The central configuration variable. 405* Sources and destinations:: From here to there. 406* Selecting files:: What files are part of the project? 407* Publishing action:: Setting the function doing the publishing. 408* Publishing options:: Tweaking HTML/LaTeX export. 409* Publishing links:: Which links keep working after publishing? 410* Site map:: Generating a list of all pages. 411* Generating an index:: An index that reaches across pages. 412 413Sample Configuration 414 415* Simple example:: One-component publishing. 416* Complex example:: A multi-component publishing example. 417 418Working with Source Code 419 420* Features Overview:: Enjoy the versatility of source blocks. 421* Structure of Code Blocks:: Code block syntax described. 422* Using Header Arguments:: Different ways to set header arguments. 423* Environment of a Code Block:: Arguments, sessions, working directory... 424* Evaluating Code Blocks:: Place results of evaluation in the Org buffer. 425* Results of Evaluation:: Choosing a results type, post-processing... 426* Exporting Code Blocks:: Export contents and/or results. 427* Extracting Source Code:: Create pure source code files. 428* Languages:: List of supported code block languages. 429* Editing Source Code:: Language major-mode editing. 430* Noweb Reference Syntax:: Literate programming in Org mode. 431* Library of Babel:: Use and contribute to a library of useful code blocks. 432* Key bindings and Useful Functions:: Work quickly with code blocks. 433* Batch Execution:: Call functions from the command line. 434 435Miscellaneous 436 437* Completion:: ‘M-<TAB>’ guesses completions. 438* Structure Templates:: Quick insertion of structural elements. 439* Speed Keys:: Electric commands at the beginning of a headline. 440* Clean View:: Getting rid of leading stars in the outline. 441* Execute commands in the active region:: Execute commands on multiple items in Org or agenda view. 442* Dynamic Headline Numbering:: Display and update outline numbering. 443* The Very Busy C-c C-c Key:: When in doubt, press ‘C-c C-c’. 444* In-buffer Settings:: Overview of keywords. 445* Org Syntax:: Formal description of Org’s syntax. 446* Documentation Access:: Read documentation about current syntax. 447* Escape Character:: Prevent Org from interpreting your writing. 448* Code Evaluation Security:: Org files evaluate in-line code. 449* Interaction:: With other Emacs packages. 450* TTY Keys:: Using Org on a tty. 451* Protocols:: External access to Emacs and Org. 452* Org Crypt:: Encrypting Org files. 453* Org Mobile:: Viewing and capture on a mobile device. 454 455Clean View 456 457* Org Indent Mode:: 458* Hard indentation:: 459 460Interaction 461 462* Cooperation:: Packages Org cooperates with. 463* Conflicts:: Packages that lead to conflicts. 464 465Protocols 466 467* The store-link protocol:: Store a link, push URL to kill-ring. 468* The capture protocol:: Fill a buffer with external information. 469* The open-source protocol:: Edit published contents. 470 471Org Mobile 472 473* Setting up the staging area:: For the mobile device. 474* Pushing to the mobile application:: Uploading Org files and agendas. 475* Pulling from the mobile application:: Integrating captured and flagged items. 476 477Hacking 478 479* Hooks: Hooks (2). How to reach into Org’s internals. 480* Add-on Packages:: Available extensions. 481* Adding Hyperlink Types:: New custom link types. 482* Adding Export Back-ends:: How to write new export back-ends. 483* Tables in Arbitrary Syntax:: Orgtbl for LaTeX and other programs. 484* Dynamic Blocks:: Automatically filled blocks. 485* Special Agenda Views:: Customized views. 486* Speeding Up Your Agendas:: Tips on how to speed up your agendas. 487* Extracting Agenda Information:: Post-processing agenda information. 488* Using the Property API:: Writing programs that use entry properties. 489* Using the Mapping API:: Mapping over all or selected entries. 490 491Tables in Arbitrary Syntax 492 493* Radio tables:: Sending and receiving radio tables. 494* A LaTeX example:: Step by step, almost a tutorial. 495* Translator functions:: Copy and modify. 496 497 498 499File: org.info, Node: Introduction, Next: Document Structure, Prev: Top, Up: Top 500 5011 Introduction 502************** 503 504* Menu: 505 506* Summary:: Brief summary of what Org does. 507* Installation:: Installing Org. 508* Activation:: How to activate Org for certain buffers. 509* Feedback:: Bug reports, ideas, patches, etc. 510* Conventions:: Typesetting conventions used in this manual. 511 512 513File: org.info, Node: Summary, Next: Installation, Up: Introduction 514 5151.1 Summary 516=========== 517 518Org is a mode for keeping notes, maintaining TODO lists, and project 519planning with a fast and effective plain-text markup language. It also 520is an authoring system with unique support for literate programming and 521reproducible research. 522 523 Org is implemented on top of Outline mode, which makes it possible to 524keep the content of large files well structured. Visibility cycling and 525structure editing help to work with the tree. Tables are easily created 526with a built-in table editor. Plain text URL-like links connect to 527websites, emails, Usenet messages, BBDB entries, and any files related 528to the projects. 529 530 Org develops organizational tasks around notes files that contain 531lists or information about projects as plain text. Project planning and 532task management make use of metadata which is part of an outline node. 533Based on this data, specific entries can be extracted in queries and 534create dynamic _agenda views_ that also integrate the Emacs calendar and 535diary. Org can be used to implement many different project planning 536schemes, such as David Allen’s GTD system. 537 538 Org files can serve as a single source authoring system with export 539to many different formats such as HTML, LaTeX, Open Document, and 540Markdown. New export backends can be derived from existing ones, or 541defined from scratch. 542 543 Org files can include source code blocks, which makes Org uniquely 544suited for authoring technical documents with code examples. Org source 545code blocks are fully functional; they can be evaluated in place and 546their results can be captured in the file. This makes it possible to 547create a single file reproducible research compendium. 548 549 Org keeps simple things simple. When first fired up, it should feel 550like a straightforward, easy to use outliner. Complexity is not 551imposed, but a large amount of functionality is available when needed. 552Org is a toolbox. Many users actually run only a—very personal—fraction 553of Org’s capabilities, and know that there is more whenever they need 554it. 555 556 All of this is achieved with strictly plain text files, the most 557portable and future-proof file format. Org runs in Emacs. Emacs is one 558of the most widely ported programs, so that Org mode is available on 559every major platform. 560 561 There is a website for Org which provides links to the newest version 562of Org, as well as additional information, frequently asked questions 563(FAQ), links to tutorials, etc. This page is located at 564<https://orgmode.org>. 565 566 An earlier version (7.3) of this manual is available as a paperback 567book from Network Theory Ltd. 568(http://www.network-theory.co.uk/org/manual/). 569 570 571File: org.info, Node: Installation, Next: Activation, Prev: Summary, Up: Introduction 572 5731.2 Installation 574================ 575 576Org is included in all recent distributions of GNU Emacs, so you 577probably do not need to install it. Most users will simply activate Org 578and begin exploring its many features. 579 580 If, for one reason or another, you want to install Org on top of this 581pre-packaged version, there are three ways to do it: 582 583 • by using the Emacs package system; 584 • by downloading Org as an archive; or 585 • by using Org’s git repository. 586 587 We *strongly recommend* sticking to a single installation method. 588 589Using Emacs packaging system 590---------------------------- 591 592Recent Emacs distributions include a packaging system which lets you 593install Elisp libraries. You can install Org from the “package menu”, 594with ‘M-x list-packages’. See *note Package Menu: (emacs)Package Menu. 595 596 Important: You need to do this in a session where no ‘.org’ file 597 has been visited, i.e., where no Org built-in function have been 598 loaded. Otherwise autoload Org functions will mess up the 599 installation. 600 601 If you want to use Org’s package repository, check out the Org ELPA 602page (https://orgmode.org/elpa.html). 603 604Downloading Org as an archive 605----------------------------- 606 607You can download Org latest release from Org’s website 608(https://orgmode.org/). In this case, make sure you set the load path 609correctly in your Emacs init file: 610 611 (add-to-list 'load-path "~/path/to/orgdir/lisp") 612 613 The downloaded archive contains contributed libraries that are not 614included in Emacs. If you want to use them, add the ‘contrib/’ 615directory to your load path: 616 617 (add-to-list 'load-path "~/path/to/orgdir/contrib/lisp" t) 618 619 Optionally, you can compile the files and/or install them in your 620system. Run ‘make help’ to list compilation and installation options. 621 622Using Org’s git repository 623-------------------------- 624 625You can clone Org’s repository and install Org like this: 626 627 $ cd ~/src/ 628 $ git clone https://code.orgmode.org/bzg/org-mode.git 629 $ cd org-mode/ 630 $ make autoloads 631 632 Note that in this case, ‘make autoloads’ is mandatory: it defines 633Org’s version in ‘org-version.el’ and Org’s autoloads in 634‘org-loaddefs.el’. 635 636 Remember to add the correct load path as described in the method 637above. 638 639 You can also compile with ‘make’, generate the documentation with 640‘make doc’, create a local configuration with ‘make config’ and install 641Org with ‘make install’. Please run ‘make help’ to get the list of 642compilation/installation options. 643 644 For more detailed explanations on Org’s build system, please check 645the Org Build System page on Worg 646(https://orgmode.org/worg/dev/org-build-system.html). 647 648 649File: org.info, Node: Activation, Next: Feedback, Prev: Installation, Up: Introduction 650 6511.3 Activation 652============== 653 654Org mode buffers need Font Lock to be turned on: this is the default in 655Emacs(1). 656 657 There are compatibility issues between Org mode and some other Elisp 658packages (see *note Conflicts::). Please take the time to check the 659list. 660 661 For a better experience, the three Org commands ‘org-store-link’, 662‘org-capture’ and ‘org-agenda’ ought to be accessible anywhere in Emacs, 663not just in Org buffers. To that effect, you need to bind them to 664globally available keys, like the ones reserved for users (see *note 665(elisp)Key Binding Conventions::). Here are suggested bindings, please 666modify the keys to your own liking. 667 668 (global-set-key (kbd "C-c l") 'org-store-link) 669 (global-set-key (kbd "C-c a") 'org-agenda) 670 (global-set-key (kbd "C-c c") 'org-capture) 671 672 Files with the ‘.org’ extension use Org mode by default. To turn on 673Org mode in a file that does not have the extension ‘.org’, make the 674first line of a file look like this: 675 676 MY PROJECTS -*- mode: org; -*- 677 678which selects Org mode for this buffer no matter what the file’s name 679is. See also the variable ‘org-insert-mode-line-in-empty-file’. 680 681 Many commands in Org work on the region if the region is _active_. 682To make use of this, you need to have Transient Mark mode turned on, 683which is the default. If you do not like it, you can create an active 684region by using the mouse to select a region, or pressing ‘C-<SPC>’ 685twice before moving point. 686 687 ---------- Footnotes ---------- 688 689 (1) If you do not use Font Lock globally turn it on in Org buffer 690with ‘(add-hook 'org-mode-hook 'turn-on-font-lock)’. 691 692 693File: org.info, Node: Feedback, Next: Conventions, Prev: Activation, Up: Introduction 694 6951.4 Feedback 696============ 697 698If you find problems with Org, or if you have questions, remarks, or 699ideas about it, please send an email to the Org mailing list 700<emacs-orgmode@gnu.org>. You can subscribe to the list from this web 701page (https://lists.gnu.org/mailman/listinfo/emacs-orgmode). If you are 702not a member of the mailing list, your mail will be passed to the list 703after a moderator has approved it(1). We ask you to read and respect 704the GNU Kind Communications Guidelines 705(https://www.gnu.org/philosophy/kind-communication.html) when sending 706messages on this mailing list. 707 708 For bug reports, please first try to reproduce the bug with the 709latest version of Org available—if you are running an outdated version, 710it is quite possible that the bug has been fixed already. If the bug 711persists, prepare a report and provide as much information as possible, 712including the version information of Emacs (‘M-x emacs-version’) and Org 713(‘M-x org-version’), as well as the Org related setup in the Emacs init 714file. The easiest way to do this is to use the command 715 716 M-x org-submit-bug-report <RET> 717 718which puts all this information into an Emacs mail buffer so that you 719only need to add your description. If you are not sending the Email 720from within Emacs, please copy and paste the content into your Email 721program. 722 723 Sometimes you might face a problem due to an error in your Emacs or 724Org mode setup. Before reporting a bug, it is very helpful to start 725Emacs with minimal customizations and reproduce the problem. Doing so 726often helps you determine if the problem is with your customization or 727with Org mode itself. You can start a typical minimal session with a 728command like the example below. 729 730 $ emacs -Q -l /path/to/minimal-org.el 731 732 However if you are using Org mode as distributed with Emacs, a 733minimal setup is not necessary. In that case it is sufficient to start 734Emacs as ‘emacs -Q’. The ‘minimal-org.el’ setup file can have contents 735as shown below. 736 737 ;;; Minimal setup to load latest `org-mode'. 738 739 ;; Activate debugging. 740 (setq debug-on-error t 741 debug-on-signal nil 742 debug-on-quit nil) 743 744 ;; Add latest Org mode to load path. 745 (add-to-list 'load-path (expand-file-name "/path/to/org-mode/lisp")) 746 (add-to-list 'load-path (expand-file-name "/path/to/org-mode/contrib/lisp" t)) 747 748 If an error occurs, a “backtrace” can be very useful—see below on how 749to create one. Often a small example file helps, along with clear 750information about: 751 752 1. What exactly did you do? 753 2. What did you expect to happen? 754 3. What happened instead? 755 756 Thank you for helping to improve this program. 757 758How to create a useful backtrace 759-------------------------------- 760 761If working with Org produces an error with a message you do not 762understand, you may have hit a bug. The best way to report this is by 763providing, in addition to what was mentioned above, a backtrace. This 764is information from the built-in debugger about where and how the error 765occurred. Here is how to produce a useful backtrace: 766 767 1. Reload uncompiled versions of all Org mode Lisp files. The 768 backtrace contains much more information if it is produced with 769 uncompiled code. To do this, use 770 771 C-u M-x org-reload <RET> 772 773 or, from the menu: Org → Refresh/Reload → Reload Org uncompiled. 774 775 2. Then, activate the debugger: 776 777 M-x toggle-debug-on-error <RET> 778 779 or, from the menu: Options → Enter Debugger on Error. 780 781 3. Do whatever you have to do to hit the error. Do not forget to 782 document the steps you take. 783 784 4. When you hit the error, a ‘*Backtrace*’ buffer appears on the 785 screen. Save this buffer to a file—for example using ‘C-x C-w’—and 786 attach it to your bug report. 787 788 ---------- Footnotes ---------- 789 790 (1) Please consider subscribing to the mailing list in order to 791minimize the work the mailing list moderators have to do. 792 793 794File: org.info, Node: Conventions, Prev: Feedback, Up: Introduction 795 7961.5 Typesetting Conventions Used in this Manual 797=============================================== 798 799TODO keywords, tags, properties, etc. 800------------------------------------- 801 802Org uses various syntactical elements: TODO keywords, tags, property 803names, keywords, blocks, etc. In this manual we use the following 804conventions: 805 806‘TODO’ 807‘WAITING’ 808 TODO keywords are written with all capitals, even if they are 809 user-defined. 810 811‘boss’ 812‘ARCHIVE’ 813 Tags are case-sensitive. User-defined tags are written in 814 lowercase; built-in tags with special meaning are written as they 815 should appear in the document, usually with all capitals. 816 817‘Release’ 818‘PRIORITY’ 819 User-defined properties are capitalized; built-in properties with 820 special meaning are written with all capitals. 821 822‘TITLE’ 823‘BEGIN’ ... ‘END’ 824 Keywords and blocks are written in uppercase to enhance their 825 readability, but you can use lowercase in your Org files. 826 827Key bindings and commands 828------------------------- 829 830The manual lists both the keys and the corresponding commands for 831accessing a functionality. Org mode often uses the same key for 832different functions, depending on context. The command that is bound to 833such keys has a generic name, like ‘org-metaright’. In the manual we 834will, wherever possible, give the function that is internally called by 835the generic command. For example, in the chapter on document structure, 836‘M-<RIGHT>’ will be listed to call ‘org-do-demote’, while in the chapter 837on tables, it will be listed to call ‘org-table-move-column-right’. 838 839 840File: org.info, Node: Document Structure, Next: Tables, Prev: Introduction, Up: Top 841 8422 Document Structure 843******************** 844 845Org is an outliner. Outlines allow a document to be organized in a 846hierarchical structure, which, least for me, is the best representation 847of notes and thoughts. An overview of this structure is achieved by 848folding, i.e., hiding large parts of the document to show only the 849general document structure and the parts currently being worked on. Org 850greatly simplifies the use of outlines by compressing the entire show 851and hide functionalities into a single command, ‘org-cycle’, which is 852bound to the ‘<TAB>’ key. 853 854* Menu: 855 856* Headlines:: How to typeset Org tree headlines. 857* Visibility Cycling:: Show and hide, much simplified. 858* Motion:: Jumping to other headlines. 859* Structure Editing:: Changing sequence and level of headlines. 860* Sparse Trees:: Matches embedded in context. 861* Plain Lists:: Additional structure within an entry. 862* Drawers:: Tucking stuff away. 863* Blocks:: Folding blocks. 864 865 866File: org.info, Node: Headlines, Next: Visibility Cycling, Up: Document Structure 867 8682.1 Headlines 869============= 870 871Headlines define the structure of an outline tree. Org headlines start 872on the left margin(1) with one or more stars followed by a space. For 873example: 874 875 * Top level headline 876 ** Second level 877 *** Third level 878 some text 879 *** Third level 880 more text 881 * Another top level headline 882 883 The name defined in ‘org-footnote-section’ is reserved. Do not use 884it as a title for your own headings. 885 886 Some people find the many stars too noisy and would prefer an outline 887that has whitespace followed by a single star as headline starters. 888This can be achieved using a Org Indent minor mode. See *note Clean 889View:: for more information. 890 891 Headlines are not numbered. However, you may want to dynamically 892number some, or all, of them. See *note Dynamic Headline Numbering::. 893 894 An empty line after the end of a subtree is considered part of it and 895is hidden when the subtree is folded. However, if you leave at least 896two empty lines, one empty line remains visible after folding the 897subtree, in order to structure the collapsed view. See the variable 898‘org-cycle-separator-lines’ to modify this behavior. 899 900 ---------- Footnotes ---------- 901 902 (1) See the variables ‘org-special-ctrl-a/e’, ‘org-special-ctrl-k’, 903and ‘org-ctrl-k-protect-subtree’ to configure special behavior of ‘C-a’, 904‘C-e’, and ‘C-k’ in headlines. Note also that clocking only works with 905headings indented less than 30 stars. 906 907 908File: org.info, Node: Visibility Cycling, Next: Motion, Prev: Headlines, Up: Document Structure 909 9102.2 Visibility Cycling 911====================== 912 913* Menu: 914 915* Global and local cycling:: Cycling through various visibility states. 916* Initial visibility:: Setting the initial visibility state. 917* Catching invisible edits:: Preventing mistakes when editing invisible parts. 918 919 920File: org.info, Node: Global and local cycling, Next: Initial visibility, Up: Visibility Cycling 921 9222.2.1 Global and local cycling 923------------------------------ 924 925Outlines make it possible to hide parts of the text in the buffer. Org 926uses just two commands, bound to ‘<TAB>’ and ‘S-<TAB>’ to change the 927visibility in the buffer. 928 929‘<TAB>’ (‘org-cycle’) 930 _Subtree cycling_: Rotate current subtree among the states 931 932 ,-> FOLDED -> CHILDREN -> SUBTREE --. 933 '-----------------------------------' 934 935 Point must be on a headline for this to work(1). 936 937‘S-<TAB>’ (‘org-global-cycle’) 938‘C-u <TAB>’ 939 _Global cycling_: Rotate the entire buffer among the states 940 941 ,-> OVERVIEW -> CONTENTS -> SHOW ALL --. 942 '--------------------------------------' 943 944 When ‘S-<TAB>’ is called with a numeric prefix argument N, view 945 contents only up to headlines of level N. 946 947 Note that inside tables (see *note Tables::), ‘S-<TAB>’ jumps to 948 the previous field instead. 949 950 You can run global cycling using ‘<TAB>’ only if point is at the 951 very beginning of the buffer, but not on a headline, and 952 ‘org-cycle-global-at-bob’ is set to a non-‘nil’ value. 953 954‘C-u C-u <TAB>’ (‘org-set-startup-visibility’) 955 Switch back to the startup visibility of the buffer (see *note 956 Initial visibility::). 957 958‘C-u C-u C-u <TAB>’ (‘outline-show-all’) 959 Show all, including drawers. 960 961‘C-c C-r’ (‘org-reveal’) 962 Reveal context around point, showing the current entry, the 963 following heading and the hierarchy above. It is useful for 964 working near a location that has been exposed by a sparse tree 965 command (see *note Sparse Trees::) or an agenda command (see *note 966 Agenda Commands::). With a prefix argument, show, on each level, 967 all sibling headings. With a double prefix argument, also show the 968 entire subtree of the parent. 969 970‘C-c C-k’ (‘outline-show-branches’) 971 Expose all the headings of the subtree, but not their bodies. 972 973‘C-c <TAB>’ (‘outline-show-children’) 974 Expose all direct children of the subtree. With a numeric prefix 975 argument N, expose all children down to level N. 976 977‘C-c C-x b’ (‘org-tree-to-indirect-buffer’) 978 Show the current subtree in an indirect buffer(2). With a numeric 979 prefix argument N, go up to level N and then take that tree. If N 980 is negative then go up that many levels. With a ‘C-u’ prefix, do 981 not remove the previously used indirect buffer. 982 983‘C-c C-x v’ (‘org-copy-visible’) 984 Copy the _visible_ text in the region into the kill ring. 985 986 ---------- Footnotes ---------- 987 988 (1) See, however, the option ‘org-cycle-emulate-tab’. 989 990 (2) The indirect buffer contains the entire buffer, but is narrowed 991to the current tree. Editing the indirect buffer also changes the 992original buffer, but without affecting visibility in that buffer. For 993more information about indirect buffers, see *note GNU Emacs Manual: 994(emacs)Indirect Buffers. 995 996 997File: org.info, Node: Initial visibility, Next: Catching invisible edits, Prev: Global and local cycling, Up: Visibility Cycling 998 9992.2.2 Initial visibility 1000------------------------ 1001 1002When Emacs first visits an Org file, the global state is set to 1003‘showeverything’, i.e., all file content is visible(1). This can be 1004configured through the variable ‘org-startup-folded’, or on a per-file 1005basis by adding one of the following lines anywhere in the buffer: 1006 1007 #+STARTUP: overview 1008 #+STARTUP: content 1009 #+STARTUP: showall 1010 #+STARTUP: showeverything 1011 1012 Furthermore, any entries with a ‘VISIBILITY’ property (see *note 1013Properties and Columns::) get their visibility adapted accordingly. 1014Allowed values for this property are ‘folded’, ‘children’, ‘content’, 1015and ‘all’. 1016 1017‘C-u C-u <TAB>’ (‘org-set-startup-visibility’) 1018 Switch back to the startup visibility of the buffer, i.e., whatever 1019 is requested by startup options and ‘VISIBILITY’ properties in 1020 individual entries. 1021 1022 ---------- Footnotes ---------- 1023 1024 (1) When ‘org-agenda-inhibit-startup’ is non-‘nil’, Org does not 1025honor the default visibility state when first opening a file for the 1026agenda (see *note Speeding Up Your Agendas::). 1027 1028 1029File: org.info, Node: Catching invisible edits, Prev: Initial visibility, Up: Visibility Cycling 1030 10312.2.3 Catching invisible edits 1032------------------------------ 1033 1034Sometimes you may inadvertently edit an invisible part of the buffer and 1035be confused on what has been edited and how to undo the mistake. 1036Setting ‘org-catch-invisible-edits’ to non-‘nil’ helps preventing this. 1037See the docstring of this option on how Org should catch invisible edits 1038and process them. 1039 1040 1041File: org.info, Node: Motion, Next: Structure Editing, Prev: Visibility Cycling, Up: Document Structure 1042 10432.3 Motion 1044========== 1045 1046The following commands jump to other headlines in the buffer. 1047 1048‘C-c C-n’ (‘org-next-visible-heading’) 1049 Next heading. 1050 1051‘C-c C-p’ (‘org-previous-visible-heading’) 1052 Previous heading. 1053 1054‘C-c C-f’ (‘org-forward-heading-same-level’) 1055 Next heading same level. 1056 1057‘C-c C-b’ (‘org-backward-heading-same-level’) 1058 Previous heading same level. 1059 1060‘C-c C-u’ (‘outline-up-heading’) 1061 Backward to higher level heading. 1062 1063‘C-c C-j’ (‘org-goto’) 1064 Jump to a different place without changing the current outline 1065 visibility. Shows the document structure in a temporary buffer, 1066 where you can use the following keys to find your destination: 1067 1068 ‘<TAB>’ Cycle visibility. 1069 ‘<DOWN>’ / ‘<UP>’ Next/previous visible headline. 1070 ‘<RET>’ Select this location. 1071 ‘/’ Do a Sparse-tree search 1072 1073 The following keys work if you turn off ‘org-goto-auto-isearch’ 1074 1075 ‘n’ / ‘p’ Next/previous visible headline. 1076 ‘f’ / ‘b’ Next/previous headline same level. 1077 ‘u’ One level up. 1078 ‘0’ ... ‘9’ Digit argument. 1079 ‘q’ Quit. 1080 1081 See also the variable ‘org-goto-interface’. 1082 1083 1084File: org.info, Node: Structure Editing, Next: Sparse Trees, Prev: Motion, Up: Document Structure 1085 10862.4 Structure Editing 1087===================== 1088 1089‘M-<RET>’ (‘org-meta-return’) 1090 Insert a new heading, item or row. 1091 1092 If the command is used at the _beginning_ of a line, and if there 1093 is a heading or a plain list item (see *note Plain Lists::) at 1094 point, the new heading/item is created _before_ the current line. 1095 When used at the beginning of a regular line of text, turn that 1096 line into a heading. 1097 1098 When this command is used in the middle of a line, the line is 1099 split and the rest of the line becomes the new item or headline. 1100 If you do not want the line to be split, customize 1101 ‘org-M-RET-may-split-line’. 1102 1103 Calling the command with a ‘C-u’ prefix unconditionally inserts a 1104 new heading at the end of the current subtree, thus preserving its 1105 contents. With a double ‘C-u C-u’ prefix, the new heading is 1106 created at the end of the parent subtree instead. 1107 1108‘C-<RET>’ (‘org-insert-heading-respect-content’) 1109 Insert a new heading at the end of the current subtree. 1110 1111‘M-S-<RET>’ (‘org-insert-todo-heading’) 1112 Insert new TODO entry with same level as current heading. See also 1113 the variable ‘org-treat-insert-todo-heading-as-state-change’. 1114 1115‘C-S-<RET>’ (‘org-insert-todo-heading-respect-content’) 1116 Insert new TODO entry with same level as current heading. Like 1117 ‘C-<RET>’, the new headline is inserted after the current subtree. 1118 1119‘<TAB>’ (‘org-cycle’) 1120 In a new entry with no text yet, the first ‘<TAB>’ demotes the 1121 entry to become a child of the previous one. The next ‘<TAB>’ 1122 makes it a parent, and so on, all the way to top level. Yet 1123 another ‘<TAB>’, and you are back to the initial level. 1124 1125‘M-<LEFT>’ (‘org-do-promote’) 1126‘M-<RIGHT>’ (‘org-do-demote’) 1127 Promote or demote current heading by one level. 1128 1129 When there is an active region—i.e., when Transient Mark mode is 1130 active—promotion and demotion work on all headlines in the region. 1131 To select a region of headlines, it is best to place both point and 1132 mark at the beginning of a line, mark at the beginning of the first 1133 headline, and point at the line just after the last headline to 1134 change. 1135 1136‘M-S-<LEFT>’ (‘org-promote-subtree’) 1137 Promote the current subtree by one level. 1138 1139‘M-S-<RIGHT>’ (‘org-demote-subtree’) 1140 Demote the current subtree by one level. 1141 1142‘M-<UP>’ (‘org-move-subtree-up’) 1143 Move subtree up, i.e., swap with previous subtree of same level. 1144 1145‘M-<DOWN>’ (‘org-move-subtree-down’) 1146 Move subtree down, i.e., swap with next subtree of same level. 1147 1148‘C-c @’ (‘org-mark-subtree’) 1149 Mark the subtree at point. Hitting repeatedly marks subsequent 1150 subtrees of the same level as the marked subtree. 1151 1152‘C-c C-x C-w’ (‘org-cut-subtree’) 1153 Kill subtree, i.e., remove it from buffer but save in kill ring. 1154 With a numeric prefix argument N, kill N sequential subtrees. 1155 1156‘C-c C-x M-w’ (‘org-copy-subtree’) 1157 Copy subtree to kill ring. With a numeric prefix argument N, copy 1158 the N sequential subtrees. 1159 1160‘C-c C-x C-y’ (‘org-paste-subtree’) 1161 Yank subtree from kill ring. This does modify the level of the 1162 subtree to make sure the tree fits in nicely at the yank position. 1163 The yank level can also be specified with a numeric prefix 1164 argument, or by yanking after a headline marker like ‘****’. 1165 1166‘C-y’ (‘org-yank’) 1167 Depending on the variables ‘org-yank-adjusted-subtrees’ and 1168 ‘org-yank-folded-subtrees’, Org’s internal ‘yank’ command pastes 1169 subtrees folded and in a clever way, using the same command as ‘C-c 1170 C-x C-y’. With the default settings, no level adjustment takes 1171 place, but the yanked tree is folded unless doing so would swallow 1172 text previously visible. Any prefix argument to this command 1173 forces a normal ‘yank’ to be executed, with the prefix passed 1174 along. A good way to force a normal yank is ‘C-u C-y’. If you use 1175 ‘yank-pop’ after a yank, it yanks previous kill items plainly, 1176 without adjustment and folding. 1177 1178‘C-c C-x c’ (‘org-clone-subtree-with-time-shift’) 1179 Clone a subtree by making a number of sibling copies of it. You 1180 are prompted for the number of copies to make, and you can also 1181 specify if any timestamps in the entry should be shifted. This can 1182 be useful, for example, to create a number of tasks related to a 1183 series of lectures to prepare. For more details, see the docstring 1184 of the command ‘org-clone-subtree-with-time-shift’. 1185 1186‘C-c C-w’ (‘org-refile’) 1187 Refile entry or region to a different location. See *note Refile 1188 and Copy::. 1189 1190‘C-c ^’ (‘org-sort’) 1191 Sort same-level entries. When there is an active region, all 1192 entries in the region are sorted. Otherwise the children of the 1193 current headline are sorted. The command prompts for the sorting 1194 method, which can be alphabetically, numerically, by time—first 1195 timestamp with active preferred, creation time, scheduled time, 1196 deadline time—by priority, by TODO keyword—in the sequence the 1197 keywords have been defined in the setup—or by the value of a 1198 property. Reverse sorting is possible as well. You can also 1199 supply your own function to extract the sorting key. With a ‘C-u’ 1200 prefix, sorting is case-sensitive. 1201 1202‘C-x n s’ (‘org-narrow-to-subtree’) 1203 Narrow buffer to current subtree. 1204 1205‘C-x n b’ (‘org-narrow-to-block’) 1206 Narrow buffer to current block. 1207 1208‘C-x n w’ (‘widen’) 1209 Widen buffer to remove narrowing. 1210 1211‘C-c *’ (‘org-toggle-heading’) 1212 Turn a normal line or plain list item into a headline—so that it 1213 becomes a subheading at its location. Also turn a headline into a 1214 normal line by removing the stars. If there is an active region, 1215 turn all lines in the region into headlines. If the first line in 1216 the region was an item, turn only the item lines into headlines. 1217 Finally, if the first line is a headline, remove the stars from all 1218 headlines in the region. 1219 1220 Note that when point is inside a table (see *note Tables::), the 1221Meta-Cursor keys have different functionality. 1222 1223 1224File: org.info, Node: Sparse Trees, Next: Plain Lists, Prev: Structure Editing, Up: Document Structure 1225 12262.5 Sparse Trees 1227================ 1228 1229An important feature of Org mode is the ability to construct _sparse 1230trees_ for selected information in an outline tree, so that the entire 1231document is folded as much as possible, but the selected information is 1232made visible along with the headline structure above it(1). Just try it 1233out and you will see immediately how it works. 1234 1235 Org mode contains several commands creating such trees, all these 1236commands can be accessed through a dispatcher: 1237 1238‘C-c /’ (‘org-sparse-tree’) 1239 This prompts for an extra key to select a sparse-tree creating 1240 command. 1241 1242‘C-c / r’ or ‘C-c / /’ (‘org-occur’) 1243 Prompts for a regexp and shows a sparse tree with all matches. If 1244 the match is in a headline, the headline is made visible. If the 1245 match is in the body of an entry, headline and body are made 1246 visible. In order to provide minimal context, also the full 1247 hierarchy of headlines above the match is shown, as well as the 1248 headline following the match. Each match is also highlighted; the 1249 highlights disappear when the buffer is changed by an editing 1250 command, or by pressing ‘C-c C-c’(2). When called with a ‘C-u’ 1251 prefix argument, previous highlights are kept, so several calls to 1252 this command can be stacked. 1253 1254‘M-g n’ or ‘M-g M-n’ (‘next-error’) 1255 Jump to the next sparse tree match in this buffer. 1256 1257‘M-g p’ or ‘M-g M-p’ (‘previous-error’) 1258 Jump to the previous sparse tree match in this buffer. 1259 1260 For frequently used sparse trees of specific search strings, you can 1261use the variable ‘org-agenda-custom-commands’ to define fast keyboard 1262access to specific sparse trees. These commands will then be accessible 1263through the agenda dispatcher (see *note Agenda Dispatcher::). For 1264example: 1265 1266 (setq org-agenda-custom-commands 1267 '(("f" occur-tree "FIXME"))) 1268 1269defines the key ‘f’ as a shortcut for creating a sparse tree matching 1270the string ‘FIXME’. 1271 1272 The other sparse tree commands select headings based on TODO 1273keywords, tags, or properties and are discussed later in this manual. 1274 1275 To print a sparse tree, you can use the Emacs command 1276‘ps-print-buffer-with-faces’ which does not print invisible parts of the 1277document. Or you can use the command ‘C-c C-e C-v’ to export only the 1278visible part of the document and print the resulting file. 1279 1280 ---------- Footnotes ---------- 1281 1282 (1) See also the variable ‘org-show-context-detail’ to decide how 1283much context is shown around each match. 1284 1285 (2) This depends on the option ‘org-remove-highlights-with-change’. 1286 1287 1288File: org.info, Node: Plain Lists, Next: Drawers, Prev: Sparse Trees, Up: Document Structure 1289 12902.6 Plain Lists 1291=============== 1292 1293Within an entry of the outline tree, hand-formatted lists can provide 1294additional structure. They also provide a way to create lists of 1295checkboxes (see *note Checkboxes::). Org supports editing such lists, 1296and every exporter (see *note Exporting::) can parse and format them. 1297 1298 Org knows ordered lists, unordered lists, and description lists. 1299 1300 • _Unordered_ list items start with ‘-’, ‘+’, or ‘*’(1) as bullets. 1301 1302 • _Ordered_ list items start with a numeral followed by either a 1303 period or a right parenthesis(2), such as ‘1.’ or ‘1)’(3) If you 1304 want a list to start with a different value—e.g., 20—start the text 1305 of the item with ‘[@20]’(4). Those constructs can be used in any 1306 item of the list in order to enforce a particular numbering. 1307 1308 • _Description_ list items are unordered list items, and contain the 1309 separator ‘::’ to distinguish the description _term_ from the 1310 description. 1311 1312 Items belonging to the same list must have the same indentation on 1313the first line. In particular, if an ordered list reaches number ‘10.’, 1314then the 2-digit numbers must be written left-aligned with the other 1315numbers in the list. An item ends before the next line that is less or 1316equally indented than its bullet/number. 1317 1318 A list ends whenever every item has ended, which means before any 1319line less or equally indented than items at top level. It also ends 1320before two blank lines. In that case, all items are closed. Here is an 1321example: 1322 1323 * Lord of the Rings 1324 My favorite scenes are (in this order) 1325 1. The attack of the Rohirrim 1326 2. Eowyn's fight with the witch king 1327 + this was already my favorite scene in the book 1328 + I really like Miranda Otto. 1329 3. Peter Jackson being shot by Legolas 1330 - on DVD only 1331 He makes a really funny face when it happens. 1332 But in the end, no individual scenes matter but the film as a whole. 1333 Important actors in this film are: 1334 - Elijah Wood :: He plays Frodo 1335 - Sean Astin :: He plays Sam, Frodo's friend. I still remember him 1336 very well from his role as Mikey Walsh in /The Goonies/. 1337 1338 Org supports these lists by tuning filling and wrapping commands to 1339deal with them correctly, and by exporting them properly (see *note 1340Exporting::). Since indentation is what governs the structure of these 1341lists, many structural constructs like ‘#+BEGIN_’ blocks can be indented 1342to signal that they belong to a particular item. 1343 1344 If you find that using a different bullet for a sub-list—than that 1345used for the current list-level—improves readability, customize the 1346variable ‘org-list-demote-modify-bullet’. To get a greater difference 1347of indentation between items and theirs sub-items, customize 1348‘org-list-indent-offset’. 1349 1350 The following commands act on items when point is in the first line 1351of an item—the line with the bullet or number. Some of them imply the 1352application of automatic rules to keep list structure intact. If some 1353of these actions get in your way, configure ‘org-list-automatic-rules’ 1354to disable them individually. 1355 1356‘<TAB>’ (‘org-cycle’) 1357 Items can be folded just like headline levels. Normally this works 1358 only if point is on a plain list item. For more details, see the 1359 variable ‘org-cycle-include-plain-lists’. If this variable is set 1360 to ‘integrate’, plain list items are treated like low-level 1361 headlines. The level of an item is then given by the indentation 1362 of the bullet/number. Items are always subordinate to real 1363 headlines, however; the hierarchies remain completely separated. 1364 In a new item with no text yet, the first ‘<TAB>’ demotes the item 1365 to become a child of the previous one. Subsequent ‘<TAB>’s move 1366 the item to meaningful levels in the list and eventually get it 1367 back to its initial position. 1368 1369‘M-<RET>’ (‘org-insert-heading’) 1370 Insert new item at current level. With a prefix argument, force a 1371 new heading (see *note Structure Editing::). If this command is 1372 used in the middle of an item, that item is _split_ in two, and the 1373 second part becomes the new item(5). If this command is executed 1374 _before item’s body_, the new item is created _before_ the current 1375 one. 1376 1377‘M-S-<RET>’ 1378 Insert a new item with a checkbox (see *note Checkboxes::). 1379 1380‘S-<UP>’ 1381‘S-<DOWN>’ 1382 Jump to the previous/next item in the current list, but only if 1383 ‘org-support-shift-select’ is off(6). If not, you can still use 1384 paragraph jumping commands like ‘C-<UP>’ and ‘C-<DOWN>’ to quite 1385 similar effect. 1386 1387‘M-<UP>’ 1388‘M-<DOWN>’ 1389 Move the item including subitems up/down(7), i.e., swap with 1390 previous/next item of same indentation. If the list is ordered, 1391 renumbering is automatic. 1392 1393‘M-<LEFT>’ 1394‘M-<RIGHT>’ 1395 Decrease/increase the indentation of an item, leaving children 1396 alone. 1397 1398‘M-S-<LEFT>’ 1399‘M-S-<RIGHT>’ 1400 Decrease/increase the indentation of the item, including subitems. 1401 Initially, the item tree is selected based on current indentation. 1402 When these commands are executed several times in direct 1403 succession, the initially selected region is used, even if the new 1404 indentation would imply a different hierarchy. To use the new 1405 hierarchy, break the command chain by moving point. 1406 1407 As a special case, using this command on the very first item of a 1408 list moves the whole list. This behavior can be disabled by 1409 configuring ‘org-list-automatic-rules’. The global indentation of 1410 a list has no influence on the text _after_ the list. 1411 1412‘C-c C-c’ 1413 If there is a checkbox (see *note Checkboxes::) in the item line, 1414 toggle the state of the checkbox. In any case, verify bullets and 1415 indentation consistency in the whole list. 1416 1417‘C-c -’ 1418 Cycle the entire list level through the different itemize/enumerate 1419 bullets (‘-’, ‘+’, ‘*’, ‘1.’, ‘1)’) or a subset of them, depending 1420 on ‘org-plain-list-ordered-item-terminator’, the type of list, and 1421 its indentation. With a numeric prefix argument N, select the Nth 1422 bullet from this list. If there is an active region when calling 1423 this, all lines are converted to list items. With a prefix 1424 argument, the selected text is changed into a single item. If the 1425 first line already was a list item, any item marker is removed from 1426 the list. Finally, even without an active region, a normal line is 1427 converted into a list item. 1428 1429‘C-c *’ 1430 Turn a plain list item into a headline—so that it becomes a 1431 subheading at its location. See *note Structure Editing::, for a 1432 detailed explanation. 1433 1434‘C-c C-*’ 1435 Turn the whole plain list into a subtree of the current heading. 1436 Checkboxes (see *note Checkboxes::) become ‘TODO’, respectively 1437 ‘DONE’, keywords when unchecked, respectively checked. 1438 1439‘S-<LEFT>’ 1440‘S-<RIGHT>’ 1441 This command also cycles bullet styles when point is in on the 1442 bullet or anywhere in an item line, details depending on 1443 ‘org-support-shift-select’. 1444 1445‘C-c ^’ 1446 Sort the plain list. Prompt for the sorting method: numerically, 1447 alphabetically, by time, or by custom function. 1448 1449 ---------- Footnotes ---------- 1450 1451 (1) When using ‘*’ as a bullet, lines must be indented so that they 1452are not interpreted as headlines. Also, when you are hiding leading 1453stars to get a clean outline view, plain list items starting with a star 1454may be hard to distinguish from true headlines. In short: even though 1455‘*’ is supported, it may be better to not use it for plain list items. 1456 1457 (2) You can filter out any of them by configuring 1458‘org-plain-list-ordered-item-terminator’. 1459 1460 (3) You can also get ‘a.’, ‘A.’, ‘a)’ and ‘A)’ by configuring 1461‘org-list-allow-alphabetical’. To minimize confusion with normal text, 1462those are limited to one character only. Beyond that limit, bullets 1463automatically become numbers. 1464 1465 (4) If there’s a checkbox in the item, the cookie must be put 1466_before_ the checkbox. If you have activated alphabetical lists, you 1467can also use counters like ‘[@b]’. 1468 1469 (5) If you do not want the item to be split, customize the variable 1470‘org-M-RET-may-split-line’. 1471 1472 (6) If you want to cycle around items that way, you may customize 1473‘org-list-use-circular-motion’. 1474 1475 (7) See ‘org-list-use-circular-motion’ for a cyclic behavior. 1476 1477 1478File: org.info, Node: Drawers, Next: Blocks, Prev: Plain Lists, Up: Document Structure 1479 14802.7 Drawers 1481=========== 1482 1483Sometimes you want to keep information associated with an entry, but you 1484normally do not want to see it. For this, Org mode has _drawers_. They 1485can contain anything but a headline and another drawer. Drawers look 1486like this: 1487 1488 ** This is a headline 1489 Still outside the drawer 1490 :DRAWERNAME: 1491 This is inside the drawer. 1492 :END: 1493 After the drawer. 1494 1495 You can interactively insert a drawer at point by calling 1496‘org-insert-drawer’, which is bound to ‘C-c C-x d’. With an active 1497region, this command puts the region inside the drawer. With a prefix 1498argument, this command calls ‘org-insert-property-drawer’, which creates 1499a ‘PROPERTIES’ drawer right below the current headline. Org mode uses 1500this special drawer for storing properties (see *note Properties and 1501Columns::). You cannot use it for anything else. 1502 1503 Completion over drawer keywords is also possible using ‘M-<TAB>’(1). 1504 1505 Visibility cycling (see *note Visibility Cycling::) on the headline 1506hides and shows the entry, but keep the drawer collapsed to a single 1507line. In order to look inside the drawer, you need to move point to the 1508drawer line and press ‘<TAB>’ there. 1509 1510 You can also arrange for state change notes (see *note Tracking TODO 1511state changes::) and clock times (see *note Clocking Work Time::) to be 1512stored in a ‘LOGBOOK’ drawer. If you want to store a quick note there, 1513in a similar way to state changes, use 1514 1515‘C-c C-z’ 1516 Add a time-stamped note to the ‘LOGBOOK’ drawer. 1517 1518 ---------- Footnotes ---------- 1519 1520 (1) Many desktops intercept ‘M-<TAB>’ to switch windows. Use ‘C-M-i’ 1521or ‘<ESC> <TAB>’ instead. 1522 1523 1524File: org.info, Node: Blocks, Prev: Drawers, Up: Document Structure 1525 15262.8 Blocks 1527========== 1528 1529Org mode uses ‘#+BEGIN’ ... ‘#+END’ blocks for various purposes from 1530including source code examples (see *note Literal Examples::) to 1531capturing time logging information (see *note Clocking Work Time::). 1532These blocks can be folded and unfolded by pressing ‘<TAB>’ in the 1533‘#+BEGIN’ line. You can also get all blocks folded at startup by 1534configuring the variable ‘org-hide-block-startup’ or on a per-file basis 1535by using 1536 1537 #+STARTUP: hideblocks 1538 #+STARTUP: nohideblocks 1539 1540 1541File: org.info, Node: Tables, Next: Hyperlinks, Prev: Document Structure, Up: Top 1542 15433 Tables 1544******** 1545 1546Org comes with a fast and intuitive table editor. Spreadsheet-like 1547calculations are supported using the Emacs Calc package (see *note GNU 1548Emacs Calculator Manual: (calc)Top.). 1549 1550* Menu: 1551 1552* Built-in Table Editor:: Simple tables. 1553* Column Width and Alignment:: Overrule the automatic settings. 1554* Column Groups:: Grouping to trigger vertical lines. 1555* Orgtbl Mode:: The table editor as minor mode. 1556* The Spreadsheet:: The table editor has spreadsheet capabilities. 1557* Org Plot:: Plotting from Org tables. 1558 1559 1560File: org.info, Node: Built-in Table Editor, Next: Column Width and Alignment, Up: Tables 1561 15623.1 Built-in Table Editor 1563========================= 1564 1565Org makes it easy to format tables in plain ASCII. Any line with ‘|’ as 1566the first non-whitespace character is considered part of a table. ‘|’ 1567is also the column separator(1). Moreover, a line starting with ‘|-’ is 1568a horizontal rule. It separates rows explicitly. Rows before the first 1569horizontal rule are header lines. A table might look like this: 1570 1571 | Name | Phone | Age | 1572 |-------+-------+-----| 1573 | Peter | 1234 | 17 | 1574 | Anna | 4321 | 25 | 1575 1576 A table is re-aligned automatically each time you press ‘<TAB>’, 1577‘<RET>’ or ‘C-c C-c’ inside the table. ‘<TAB>’ also moves to the next 1578field—‘<RET>’ to the next row—and creates new table rows at the end of 1579the table or before horizontal lines. The indentation of the table is 1580set by the first line. Horizontal rules are automatically expanded on 1581every re-align to span the whole table width. So, to create the above 1582table, you would only type 1583 1584 |Name|Phone|Age| 1585 |- 1586 1587and then press ‘<TAB>’ to align the table and start filling in fields. 1588Even faster would be to type ‘|Name|Phone|Age’ followed by ‘C-c <RET>’. 1589 1590 When typing text into a field, Org treats ‘DEL’, ‘Backspace’, and all 1591character keys in a special way, so that inserting and deleting avoids 1592shifting other fields. Also, when typing _immediately_ after point was 1593moved into a new field with ‘<TAB>’, ‘S-<TAB>’ or ‘<RET>’, the field is 1594automatically made blank. If this behavior is too unpredictable for 1595you, configure the option ‘org-table-auto-blank-field’. 1596 1597Creation and conversion 1598----------------------- 1599 1600‘C-c |’ (‘org-table-create-or-convert-from-region’) 1601 Convert the active region to table. If every line contains at 1602 least one ‘<TAB>’ character, the function assumes that the material 1603 is tab separated. If every line contains a comma, comma-separated 1604 values (CSV) are assumed. If not, lines are split at whitespace 1605 into fields. You can use a prefix argument to force a specific 1606 separator: ‘C-u’ forces CSV, ‘C-u C-u’ forces ‘<TAB>’, ‘C-u C-u 1607 C-u’ prompts for a regular expression to match the separator, and a 1608 numeric argument N indicates that at least N consecutive spaces, or 1609 alternatively a ‘<TAB>’ will be the separator. 1610 1611 If there is no active region, this command creates an empty Org 1612 table. But it is easier just to start typing, like ‘| N a m e | P 1613 h o n e | A g e <RET> | - <TAB>’. 1614 1615Re-aligning and field motion 1616---------------------------- 1617 1618‘C-c C-c’ (‘org-table-align’) 1619 Re-align the table without moving point. 1620 1621‘<TAB>’ (‘org-table-next-field’) 1622 Re-align the table, move to the next field. Creates a new row if 1623 necessary. 1624 1625‘C-c <SPC>’ (‘org-table-blank-field’) 1626 Blank the field at point. 1627 1628‘S-<TAB>’ (‘org-table-previous-field’) 1629 Re-align, move to previous field. 1630 1631‘<RET>’ (‘org-table-next-row’) 1632 Re-align the table and move down to next row. Creates a new row if 1633 necessary. At the beginning or end of a line, ‘<RET>’ still 1634 inserts a new line, so it can be used to split a table. 1635 1636‘M-a’ (‘org-table-beginning-of-field’) 1637 Move to beginning of the current table field, or on to the previous 1638 field. 1639 1640‘M-e’ (‘org-table-end-of-field’) 1641 Move to end of the current table field, or on to the next field. 1642 1643Column and row editing 1644---------------------- 1645 1646‘M-<LEFT>’ (‘org-table-move-column-left’) 1647 Move the current column left. 1648 1649‘M-<RIGHT>’ (‘org-table-move-column-right’) 1650 Move the current column right. 1651 1652‘M-S-<LEFT>’ (‘org-table-delete-column’) 1653 Kill the current column. 1654 1655‘M-S-<RIGHT>’ (‘org-table-insert-column’) 1656 Insert a new column at point position. Move the recent column and 1657 all cells to the right of this column to the right. 1658 1659‘M-<UP>’ (‘org-table-move-row-up’) 1660 Move the current row up. 1661 1662‘M-<DOWN>’ (‘org-table-move-row-down’) 1663 Move the current row down. 1664 1665‘M-S-<UP>’ (‘org-table-kill-row’) 1666 Kill the current row or horizontal line. 1667 1668‘S-<UP>’ (‘org-table-move-cell-up’) 1669 Move cell up by swapping with adjacent cell. 1670 1671‘S-<DOWN>’ (‘org-table-move-cell-down’) 1672 Move cell down by swapping with adjacent cell. 1673 1674‘S-<LEFT>’ (‘org-table-move-cell-left’) 1675 Move cell left by swapping with adjacent cell. 1676 1677‘S-<RIGHT>’ (‘org-table-move-cell-right’) 1678 Move cell right by swapping with adjacent cell. 1679 1680‘M-S-<DOWN>’ (‘org-table-insert-row’) 1681 Insert a new row above the current row. With a prefix argument, 1682 the line is created below the current one. 1683 1684‘C-c -’ (‘org-table-insert-hline’) 1685 Insert a horizontal line below current row. With a prefix 1686 argument, the line is created above the current line. 1687 1688‘C-c <RET>’ (‘org-table-hline-and-move’) 1689 Insert a horizontal line below current row, and move point into the 1690 row below that line. 1691 1692‘C-c ^’ (‘org-table-sort-lines’) 1693 Sort the table lines in the region. The position of point 1694 indicates the column to be used for sorting, and the range of lines 1695 is the range between the nearest horizontal separator lines, or the 1696 entire table. If point is before the first column, you are 1697 prompted for the sorting column. If there is an active region, the 1698 mark specifies the first line and the sorting column, while point 1699 should be in the last line to be included into the sorting. The 1700 command prompts for the sorting type, alphabetically, numerically, 1701 or by time. You can sort in normal or reverse order. You can also 1702 supply your own key extraction and comparison functions. When 1703 called with a prefix argument, alphabetic sorting is 1704 case-sensitive. 1705 1706Regions 1707------- 1708 1709‘C-c C-x M-w’ (‘org-table-copy-region’) 1710 Copy a rectangular region from a table to a special clipboard. 1711 Point and mark determine edge fields of the rectangle. If there is 1712 no active region, copy just the current field. The process ignores 1713 horizontal separator lines. 1714 1715‘C-c C-x C-w’ (‘org-table-cut-region’) 1716 Copy a rectangular region from a table to a special clipboard, and 1717 blank all fields in the rectangle. So this is the “cut” operation. 1718 1719‘C-c C-x C-y’ (‘org-table-paste-rectangle’) 1720 Paste a rectangular region into a table. The upper left corner 1721 ends up in the current field. All involved fields are overwritten. 1722 If the rectangle does not fit into the present table, the table is 1723 enlarged as needed. The process ignores horizontal separator 1724 lines. 1725 1726‘M-<RET>’ (‘org-table-wrap-region’) 1727 Split the current field at point position and move the rest to the 1728 line below. If there is an active region, and both point and mark 1729 are in the same column, the text in the column is wrapped to 1730 minimum width for the given number of lines. A numeric prefix 1731 argument may be used to change the number of desired lines. If 1732 there is no region, but you specify a prefix argument, the current 1733 field is made blank, and the content is appended to the field 1734 above. 1735 1736Calculations 1737------------ 1738 1739‘C-c +’ (‘org-table-sum’) 1740 Sum the numbers in the current column, or in the rectangle defined 1741 by the active region. The result is shown in the echo area and can 1742 be inserted with ‘C-y’. 1743 1744‘S-<RET>’ (‘org-table-copy-down’) 1745 When current field is empty, copy from first non-empty field above. 1746 When not empty, copy current field down to next row and move point 1747 along with it. 1748 1749 Depending on the variable ‘org-table-copy-increment’, integer and 1750 time stamp field values, and fields prefixed or suffixed with a 1751 whole number, can be incremented during copy. Also, a ‘0’ prefix 1752 argument temporarily disables the increment. 1753 1754 This key is also used by shift-selection and related modes (see 1755 *note Conflicts::). 1756 1757Miscellaneous 1758------------- 1759 1760‘C-c `’ (‘org-table-edit-field’) 1761 Edit the current field in a separate window. This is useful for 1762 fields that are not fully visible (see *note Column Width and 1763 Alignment::). When called with a ‘C-u’ prefix, just make the full 1764 field visible, so that it can be edited in place. When called with 1765 two ‘C-u’ prefixes, make the editor window follow point through the 1766 table and always show the current field. The follow mode exits 1767 automatically when point leaves the table, or when you repeat this 1768 command with ‘C-u C-u C-c `’. 1769 1770‘M-x org-table-import’ 1771 Import a file as a table. The table should be TAB or whitespace 1772 separated. Use, for example, to import a spreadsheet table or data 1773 from a database, because these programs generally can write 1774 TAB-separated text files. This command works by inserting the file 1775 into the buffer and then converting the region to a table. Any 1776 prefix argument is passed on to the converter, which uses it to 1777 determine the separator. 1778 1779‘C-c |’ (‘org-table-create-or-convert-from-region’) 1780 Tables can also be imported by pasting tabular text into the Org 1781 buffer, selecting the pasted text with ‘C-x C-x’ and then using the 1782 ‘C-c |’ command (see *note Creation and conversion::). 1783 1784‘M-x org-table-export’ 1785 Export the table, by default as a TAB-separated file. Use for data 1786 exchange with, for example, spreadsheet or database programs. The 1787 format used to export the file can be configured in the variable 1788 ‘org-table-export-default-format’. You may also use properties 1789 ‘TABLE_EXPORT_FILE’ and ‘TABLE_EXPORT_FORMAT’ to specify the file 1790 name and the format for table export in a subtree. Org supports 1791 quite general formats for exported tables. The exporter format is 1792 the same as the format used by Orgtbl radio tables, see *note 1793 Translator functions::, for a detailed description. 1794 1795‘M-x org-table-header-line-mode’ 1796 Turn on the display of the first data row of the table at point in 1797 the window header line when this first row is not visible anymore 1798 in the buffer. You can activate this minor mode by default by 1799 setting the option ‘org-table-header-line-p’ to ‘t’. 1800 1801‘M-x org-table-transpose-table-at-point’ 1802 Transpose the table at point and eliminate hlines. 1803 1804 ---------- Footnotes ---------- 1805 1806 (1) To insert a vertical bar into a table field, use ‘\vert’ or, 1807inside a word ‘abc\vert{}def’. 1808 1809 1810File: org.info, Node: Column Width and Alignment, Next: Column Groups, Prev: Built-in Table Editor, Up: Tables 1811 18123.2 Column Width and Alignment 1813============================== 1814 1815The width of columns is automatically determined by the table editor. 1816The alignment of a column is determined automatically from the fraction 1817of number-like versus non-number fields in the column. 1818 1819 Editing a field may modify alignment of the table. Moving a 1820contiguous row or column—i.e., using ‘<TAB>’ or ‘<RET>’—automatically 1821re-aligns it. If you want to disable this behavior, set 1822‘org-table-automatic-realign’ to ‘nil’. In any case, you can always 1823align manually a table: 1824 1825‘C-c C-c’ (‘org-table-align’) 1826 Align the current table. 1827 1828 Setting the option ‘org-startup-align-all-tables’ re-aligns all 1829tables in a file upon visiting it. You can also set this option on a 1830per-file basis with: 1831 1832 #+STARTUP: align 1833 #+STARTUP: noalign 1834 1835 Sometimes a single field or a few fields need to carry more text, 1836leading to inconveniently wide columns. Maybe you want to hide away 1837several columns or display them with a fixed width, regardless of 1838content, as shown in the following example. 1839 1840 |---+---------------------+--------| |---+-------…+…| 1841 | | <6> | | | | <6> …|…| 1842 | 1 | one | some | ----\ | 1 | one …|…| 1843 | 2 | two | boring | ----/ | 2 | two …|…| 1844 | 3 | This is a long text | column | | 3 | This i…|…| 1845 |---+---------------------+--------| |---+-------…+…| 1846 1847 To set the width of a column, one field anywhere in the column may 1848contain just the string ‘<N>’ where N specifies the width as a number of 1849characters. You control displayed width of columns with the following 1850tools: 1851 1852‘C-c <TAB>’ (‘org-table-toggle-column-width’) 1853 Shrink or expand current column. 1854 1855 If a width cookie specifies a width W for the column, shrinking it 1856 displays the first W visible characters only. Otherwise, the 1857 column is shrunk to a single character. 1858 1859 When called before the first column or after the last one, ask for 1860 a list of column ranges to operate on. 1861 1862‘C-u C-c <TAB>’ (‘org-table-shrink’) 1863 Shrink all columns with a column width. Expand the others. 1864 1865‘C-u C-u C-c <TAB>’ (‘org-table-expand’) 1866 Expand all columns. 1867 1868 To see the full text of a shrunk field, hold the mouse over it: a 1869tool-tip window then shows the full contents of the field. 1870Alternatively, ‘C-h .’ (‘display-local-help’) reveals them, too. For 1871convenience, any change near the shrunk part of a column expands it. 1872 1873 Setting the option ‘org-startup-shrink-all-tables’ shrinks all 1874columns containing a width cookie in a file the moment it is visited. 1875You can also set this option on a per-file basis with: 1876 1877 #+STARTUP: shrink 1878 1879 If you would like to overrule the automatic alignment of number-rich 1880columns to the right and of string-rich columns to the left, you can use 1881‘<r>’, ‘<c>’ or ‘<l>’ in a similar fashion. You may also combine 1882alignment and field width like this: ‘<r10>’. 1883 1884 Lines which only contain these formatting cookies are removed 1885automatically upon exporting the document. 1886 1887 1888File: org.info, Node: Column Groups, Next: Orgtbl Mode, Prev: Column Width and Alignment, Up: Tables 1889 18903.3 Column Groups 1891================= 1892 1893When Org exports tables, it does so by default without vertical lines 1894because that is visually more satisfying in general. Occasionally 1895however, vertical lines can be useful to structure a table into groups 1896of columns, much like horizontal lines can do for groups of rows. In 1897order to specify column groups, you can use a special row where the 1898first field contains only ‘/’. The further fields can either contain 1899‘<’ to indicate that this column should start a group, ‘>’ to indicate 1900the end of a column, or ‘<>’ (no space between ‘<’ and ‘>’) to make a 1901column a group of its own. Upon export, boundaries between column 1902groups are marked with vertical lines. Here is an example: 1903 1904 | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) | 1905 |---+-----+-----+-----+---------+------------| 1906 | / | < | | > | < | > | 1907 | 1 | 1 | 1 | 1 | 1 | 1 | 1908 | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 | 1909 | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 | 1910 |---+-----+-----+-----+---------+------------| 1911 #+TBLFM: $2=$1^2::$3=$1^3::$4=$1^4::$5=sqrt($1)::$6=sqrt(sqrt(($1))) 1912 1913 It is also sufficient to just insert the column group starters after 1914every vertical line you would like to have: 1915 1916 | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) | 1917 |---+-----+-----+-----+---------+------------| 1918 | / | < | | | < | | 1919 1920 1921File: org.info, Node: Orgtbl Mode, Next: The Spreadsheet, Prev: Column Groups, Up: Tables 1922 19233.4 The Orgtbl Minor Mode 1924========================= 1925 1926If you like the intuitive way the Org table editor works, you might also 1927want to use it in other modes like Text mode or Mail mode. The minor 1928mode Orgtbl mode makes this possible. You can always toggle the mode 1929with ‘M-x orgtbl-mode’. To turn it on by default, for example in 1930Message mode, use 1931 1932 (add-hook 'message-mode-hook 'turn-on-orgtbl) 1933 1934 Furthermore, with some special setup, it is possible to maintain 1935tables in arbitrary syntax with Orgtbl mode. For example, it is 1936possible to construct LaTeX tables with the underlying ease and power of 1937Orgtbl mode, including spreadsheet capabilities. For details, see *note 1938Tables in Arbitrary Syntax::. 1939 1940 1941File: org.info, Node: The Spreadsheet, Next: Org Plot, Prev: Orgtbl Mode, Up: Tables 1942 19433.5 The Spreadsheet 1944=================== 1945 1946The table editor makes use of the Emacs Calc package to implement 1947spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to 1948derive fields from other fields. While fully featured, Org’s 1949implementation is not identical to other spreadsheets. For example, Org 1950knows the concept of a _column formula_ that will be applied to all 1951non-header fields in a column without having to copy the formula to each 1952relevant field. There is also a formula debugger, and a formula editor 1953with features for highlighting fields in the table corresponding to the 1954references at point in the formula, moving these references by arrow 1955keys. 1956 1957* Menu: 1958 1959* References:: How to refer to another field or range. 1960* Formula syntax for Calc:: Using Calc to compute stuff. 1961* Formula syntax for Lisp:: Writing formulas in Emacs Lisp. 1962* Durations and time values:: How to compute durations and time values. 1963* Field and range formulas:: Formula for specific (ranges of) fields. 1964* Column formulas:: Formulas valid for an entire column. 1965* Lookup functions:: Lookup functions for searching tables. 1966* Editing and debugging formulas:: Fixing formulas. 1967* Updating the table:: Recomputing all dependent fields. 1968* Advanced features:: Field and column names, automatic recalculation... 1969 1970 1971File: org.info, Node: References, Next: Formula syntax for Calc, Up: The Spreadsheet 1972 19733.5.1 References 1974---------------- 1975 1976To compute fields in the table from other fields, formulas must 1977reference other fields or ranges. In Org, fields can be referenced by 1978name, by absolute coordinates, and by relative coordinates. To find out 1979what the coordinates of a field are, press ‘C-c ?’ in that field, or 1980press ‘C-c }’ to toggle the display of a grid. 1981 1982Field references 1983................ 1984 1985Formulas can reference the value of another field in two ways. Like in 1986any other spreadsheet, you may reference fields with a letter/number 1987combination like ‘B3’, meaning the second field in the third row. 1988However, Org prefers to use another, more general representation that 1989looks like this:(1) 1990 1991 @ROW$COLUMN 1992 1993 Column specifications can be absolute like ‘$1’, ‘$2’, ..., ‘$N’, or 1994relative to the current column, i.e., the column of the field which is 1995being computed, like ‘$+1’ or ‘$-2’. ‘$<’ and ‘$>’ are immutable 1996references to the first and last column, respectively, and you can use 1997‘$>>>’ to indicate the third column from the right. 1998 1999 The row specification only counts data lines and ignores horizontal 2000separator lines, or “hlines”. Like with columns, you can use absolute 2001row numbers ‘@1’, ‘@2’, ..., ‘@N’, and row numbers relative to the 2002current row like ‘@+3’ or ‘@-1’. ‘@<’ and ‘@>’ are immutable references 2003the first and last row in the table, respectively. You may also specify 2004the row relative to one of the hlines: ‘@I’ refers to the first hline, 2005‘@II’ to the second, etc. ‘@-I’ refers to the first such line above the 2006current line, ‘@+I’ to the first such line below the current line. You 2007can also write ‘@III+2’ which is the second data line after the third 2008hline in the table. 2009 2010 ‘@0’ and ‘$0’ refer to the current row and column, respectively, 2011i.e., to the row/column for the field being computed. Also, if you omit 2012either the column or the row part of the reference, the current 2013row/column is implied. 2014 2015 Org’s references with _unsigned_ numbers are fixed references in the 2016sense that if you use the same reference in the formula for two 2017different fields, the same field is referenced each time. Org’s 2018references with _signed_ numbers are floating references because the 2019same reference operator can reference different fields depending on the 2020field being calculated by the formula. 2021 2022 Here are a few examples: 2023 2024‘@2$3’ 2nd row, 3rd column (same as ‘C2’) 2025‘$5’ column 5 in the current row (same as ‘E&’) 2026‘@2’ current column, row 2 2027‘@-1$-3’ field one row up, three columns to the left 2028‘@-I$2’ field just under hline above current row, column 2 2029‘@>$5’ field in the last row, in column 5 2030 2031Range references 2032................ 2033 2034You may reference a rectangular range of fields by specifying two field 2035references connected by two dots ‘..’. The ends are included in the 2036range. If both fields are in the current row, you may simply use 2037‘$2..$7’, but if at least one field is in a different row, you need to 2038use the general ‘@ROW$COLUMN’ format at least for the first field, i.e., 2039the reference must start with ‘@’ in order to be interpreted correctly. 2040Examples: 2041 2042‘$1..$3’ first three fields in the current row 2043‘$P..$Q’ range, using column names (see 2044 *note Advanced features::) 2045‘$<<<..$>>’ start in third column, continue to the last but one 2046‘@2$1..@4$3’ nine fields between these two fields (same as ‘A2..C4’) 2047‘@-1$-2..@-1’ 3 fields in the row above, starting from 2 columns on 2048 the left 2049‘@I..II’ between first and second hline, short for ‘@I..@II’ 2050 2051Range references return a vector of values that can be fed into Calc 2052vector functions. Empty fields in ranges are normally suppressed, so 2053that the vector contains only the non-empty fields. For other options 2054with the mode switches ‘E’, ‘N’ and examples, see *note Formula syntax 2055for Calc::. 2056 2057Field coordinates in formulas 2058............................. 2059 2060One of the very first actions during evaluation of Calc formulas and 2061Lisp formulas is to substitute ‘@#’ and ‘$#’ in the formula with the row 2062or column number of the field where the current result will go to. The 2063traditional Lisp formula equivalents are ‘org-table-current-dline’ and 2064‘org-table-current-column’. Examples: 2065 2066‘if(@# % 2, $#, string(""))’ 2067 Insert column number on odd rows, set field to empty on even rows. 2068 2069‘$2 = '(identity remote(FOO, @@#$1))’ 2070 Copy text or values of each row of column 1 of the table named FOO 2071 into column 2 of the current table. 2072 2073‘@3 = 2 * remote(FOO, @1$$#)’ 2074 Insert the doubled value of each column of row 1 of the table named 2075 FOO into row 3 of the current table. 2076 2077For the second and third examples, table FOO must have at least as many 2078rows or columns as the current table. Note that this is inefficient(2) 2079for large number of rows. 2080 2081Named references 2082................ 2083 2084‘$name’ is interpreted as the name of a column, parameter or constant. 2085Constants are defined globally through the variable 2086‘org-table-formula-constants’, and locally—for the file—through a line 2087like this example: 2088 2089 #+CONSTANTS: c=299792458. pi=3.14 eps=2.4e-6 2090 2091 Also, properties (see *note Properties and Columns::) can be used as 2092constants in table formulas: for a property ‘Xyz’ use the name 2093‘$PROP_Xyz’, and the property will be searched in the current outline 2094entry and in the hierarchy above it. If you have the ‘constants.el’ 2095package, it will also be used to resolve constants, including natural 2096constants like ‘$h’ for Planck’s constant, and units like ‘$km’ for 2097kilometers(3). Column names and parameters can be specified in special 2098table lines. These are described below, see *note Advanced features::. 2099All names must start with a letter, and further consist of letters and 2100numbers. 2101 2102Remote references 2103................. 2104 2105You may also reference constants, fields and ranges from a different 2106table, either in the current file or even in a different file. The 2107syntax is 2108 2109 remote(NAME,REF) 2110 2111where NAME can be the name of a table in the current file as set by a 2112‘#+NAME:’ line before the table. It can also be the ID of an entry, 2113even in a different file, and the reference then refers to the first 2114table in that entry. REF is an absolute field or range reference as 2115described above for example ‘@3$3’ or ‘$somename’, valid in the 2116referenced table. 2117 2118 When NAME has the format ‘@ROW$COLUMN’, it is substituted with the 2119name or ID found in this field of the current table. For example 2120‘remote($1, @@>$2)’ ⇒ ‘remote(year_2013, @@>$1)’. The format ‘B3’ is 2121not supported because it can not be distinguished from a plain table 2122name or ID. 2123 2124 ---------- Footnotes ---------- 2125 2126 (1) Org understands references typed by the user as ‘B4’, but it does 2127not use this syntax when offering a formula for editing. You can 2128customize this behavior using the variable 2129‘org-table-use-standard-references’. 2130 2131 (2) The computation time scales as O(N^2) because table FOO is parsed 2132for each field to be copied. 2133 2134 (3) The file ‘constants.el’ can supply the values of constants in two 2135different unit systems, ‘SI’ and ‘cgs’. Which one is used depends on 2136the value of the variable ‘constants-unit-system’. You can use the 2137‘STARTUP’ options ‘constSI’ and ‘constcgs’ to set this value for the 2138current buffer. 2139 2140 2141File: org.info, Node: Formula syntax for Calc, Next: Formula syntax for Lisp, Prev: References, Up: The Spreadsheet 2142 21433.5.2 Formula syntax for Calc 2144----------------------------- 2145 2146A formula can be any algebraic expression understood by the Emacs Calc 2147package. Note that Calc has the non-standard convention that ‘/’ has 2148lower precedence than ‘*’, so that ‘a/b*c’ is interpreted as 2149‘(a/(b*c))’. Before evaluation by ‘calc-eval’ (see *note Calling Calc 2150from Your Lisp Programs: (calc)Calling Calc from Your Programs.), 2151variable substitution takes place according to the rules described 2152above. 2153 2154 The range vectors can be directly fed into the Calc vector functions 2155like ‘vmean’ and ‘vsum’. 2156 2157 A formula can contain an optional mode string after a semicolon. 2158This string consists of flags to influence Calc and other modes during 2159execution. By default, Org uses the standard Calc modes (precision 12, 2160angular units degrees, fraction and symbolic modes off). The display 2161format, however, has been changed to ‘(float 8)’ to keep tables compact. 2162The default settings can be configured using the variable 2163‘org-calc-default-modes’. 2164 2165‘p20’ 2166 Set the internal Calc calculation precision to 20 digits. 2167 2168‘n3’, ‘s3’, ‘e2’, ‘f4’ 2169 Normal, scientific, engineering or fixed format of the result of 2170 Calc passed back to Org. Calc formatting is unlimited in precision 2171 as long as the Calc calculation precision is greater. 2172 2173‘D’, ‘R’ 2174 Degree and radian angle modes of Calc. 2175 2176‘F’, ‘S’ 2177 Fraction and symbolic modes of Calc. 2178 2179‘T’, ‘t’, ‘U’ 2180 Duration computations in Calc or Lisp, *note Durations and time 2181 values::. 2182 2183‘E’ 2184 If and how to consider empty fields. Without ‘E’ empty fields in 2185 range references are suppressed so that the Calc vector or Lisp 2186 list contains only the non-empty fields. With ‘E’ the empty fields 2187 are kept. For empty fields in ranges or empty field references the 2188 value ‘nan’ (not a number) is used in Calc formulas and the empty 2189 string is used for Lisp formulas. Add ‘N’ to use 0 instead for 2190 both formula types. For the value of a field the mode ‘N’ has 2191 higher precedence than ‘E’. 2192 2193‘N’ 2194 Interpret all fields as numbers, use 0 for non-numbers. See the 2195 next section to see how this is essential for computations with 2196 Lisp formulas. In Calc formulas it is used only occasionally 2197 because there number strings are already interpreted as numbers 2198 without ‘N’. 2199 2200‘L’ 2201 Literal, for Lisp formulas only. See the next section. 2202 2203 Unless you use large integer numbers or high-precision calculation 2204and display for floating point numbers you may alternatively provide a 2205‘printf’ format specifier to reformat the Calc result after it has been 2206passed back to Org instead of letting Calc already do the formatting(1). 2207A few examples: 2208 2209‘$1+$2’ Sum of first and second field 2210‘$1+$2;%.2f’ Same, format result to two decimals 2211‘exp($2)+exp($1)’ Math functions can be used 2212‘$0;%.1f’ Reformat current cell to 1 decimal 2213‘($3-32)*5/9’ Degrees F → C conversion 2214‘$c/$1/$cm’ Hz → cm conversion, using ‘constants.el’ 2215‘tan($1);Dp3s1’ Compute in degrees, precision 3, display SCI 1 2216‘sin($1);Dp3%.1e’ Same, but use ‘printf’ specifier for display 2217‘vmean($2..$7)’ Compute column range mean, using vector function 2218‘vmean($2..$7);EN’ Same, but treat empty fields as 0 2219‘taylor($3,x=7,2)’ Taylor series of $3, at x=7, second degree 2220 2221 Calc also contains a complete set of logical operations (see *note 2222Logical Operations: (calc)Logical Operations.). For example 2223 2224‘if($1 < 20, teen, string(""))’ 2225 ‘"teen"’ if age ‘$1’ is less than 20, else the Org table result 2226 field is set to empty with the empty string. 2227 2228‘if("$1" == "nan" || "$2" == "nan", string(""), $1 + $2); E f-1’ 2229 Sum of the first two columns. When at least one of the input 2230 fields is empty the Org table result field is set to empty. ‘E’ is 2231 required to not convert empty fields to 0. ‘f-1’ is an optional 2232 Calc format string similar to ‘%.1f’ but leaves empty results 2233 empty. 2234 2235‘if(typeof(vmean($1..$7)) == 12, string(""), vmean($1..$7); E’ 2236 Mean value of a range unless there is any empty field. Every field 2237 in the range that is empty is replaced by ‘nan’ which lets ‘vmean’ 2238 result in ‘nan’. Then ‘typeof =’ 12= detects the ‘nan’ from 2239 ‘vmean’ and the Org table result field is set to empty. Use this 2240 when the sample set is expected to never have missing values. 2241 2242‘if("$1..$7" == "[]", string(""), vmean($1..$7))’ 2243 Mean value of a range with empty fields skipped. Every field in 2244 the range that is empty is skipped. When all fields in the range 2245 are empty the mean value is not defined and the Org table result 2246 field is set to empty. Use this when the sample set can have a 2247 variable size. 2248 2249‘vmean($1..$7); EN’ 2250 To complete the example before: Mean value of a range with empty 2251 fields counting as samples with value 0. Use this only when 2252 incomplete sample sets should be padded with 0 to the full size. 2253 2254 You can add your own Calc functions defined in Emacs Lisp with 2255‘defmath’ and use them in formula syntax for Calc. 2256 2257 ---------- Footnotes ---------- 2258 2259 (1) The printf reformatting is limited in precision because the value 2260passed to it is converted into an “integer” or “double”. The “integer” 2261is limited in size by truncating the signed value to 32 bits. The 2262“double” is limited in precision to 64 bits overall which leaves 2263approximately 16 significant decimal digits. 2264 2265 2266File: org.info, Node: Formula syntax for Lisp, Next: Durations and time values, Prev: Formula syntax for Calc, Up: The Spreadsheet 2267 22683.5.3 Emacs Lisp forms as formulas 2269---------------------------------- 2270 2271It is also possible to write a formula in Emacs Lisp. This can be 2272useful for string manipulation and control structures, if Calc’s 2273functionality is not enough. 2274 2275 If a formula starts with a single-quote followed by an opening 2276parenthesis, then it is evaluated as a Lisp form. The evaluation should 2277return either a string or a number. Just as with Calc formulas, you can 2278specify modes and a ‘printf’ format after a semicolon. 2279 2280 With Emacs Lisp forms, you need to be conscious about the way field 2281references are interpolated into the form. By default, a reference is 2282interpolated as a Lisp string (in double-quotes) containing the field. 2283If you provide the ‘N’ mode switch, all referenced elements are 2284numbers—non-number fields will be zero—and interpolated as Lisp numbers, 2285without quotes. If you provide the ‘L’ flag, all fields are 2286interpolated literally, without quotes. For example, if you want a 2287reference to be interpreted as a string by the Lisp form, enclose the 2288reference operator itself in double-quotes, like ‘"$3"’. Ranges are 2289inserted as space-separated fields, so you can embed them in list or 2290vector syntax. 2291 2292 Here are a few examples—note how the ‘N’ mode is used when we do 2293computations in Lisp: 2294 2295‘'(concat (substring $1 1 2) (substring $1 0 1) (substring $1 2))’ 2296 Swap the first two characters of the content of column 1. 2297 2298‘'(+ $1 $2);N’ 2299 Add columns 1 and 2, equivalent to Calc’s ‘$1+$2’. 2300 2301‘'(apply '+ '($1..$4));N’ 2302 Compute the sum of columns 1 to 4, like Calc’s ‘vsum($1..$4)’. 2303 2304 2305File: org.info, Node: Durations and time values, Next: Field and range formulas, Prev: Formula syntax for Lisp, Up: The Spreadsheet 2306 23073.5.4 Durations and time values 2308------------------------------- 2309 2310If you want to compute time values use the ‘T’, ‘t’, or ‘U’ flag, either 2311in Calc formulas or Elisp formulas: 2312 2313 | Task 1 | Task 2 | Total | 2314 |---------+----------+----------| 2315 | 2:12 | 1:47 | 03:59:00 | 2316 | 2:12 | 1:47 | 03:59 | 2317 | 3:02:20 | -2:07:00 | 0.92 | 2318 #+TBLFM: @2$3=$1+$2;T::@3$3=$1+$2;U::@4$3=$1+$2;t 2319 2320 Input duration values must be of the form ‘HH:MM[:SS]’, where seconds 2321are optional. With the ‘T’ flag, computed durations are displayed as 2322‘HH:MM:SS’ (see the first formula above). With the ‘U’ flag, seconds 2323are omitted so that the result is only ‘HH:MM’ (see second formula 2324above). Zero-padding of the hours field depends upon the value of the 2325variable ‘org-table-duration-hour-zero-padding’. 2326 2327 With the ‘t’ flag, computed durations are displayed according to the 2328value of the option ‘org-table-duration-custom-format’, which defaults 2329to ‘hours’ and displays the result as a fraction of hours (see the third 2330formula in the example above). 2331 2332 Negative duration values can be manipulated as well, and integers are 2333considered as seconds in addition and subtraction. 2334 2335 2336File: org.info, Node: Field and range formulas, Next: Column formulas, Prev: Durations and time values, Up: The Spreadsheet 2337 23383.5.5 Field and range formulas 2339------------------------------ 2340 2341To assign a formula to a particular field, type it directly into the 2342field, preceded by ‘:=’, for example ‘vsum(@II..III)’. When you press 2343‘<TAB>’ or ‘<RET>’ or ‘C-c C-c’ with point still in the field, the 2344formula is stored as the formula for this field, evaluated, and the 2345current field is replaced with the result. 2346 2347 Formulas are stored in a special ‘TBLFM’ keyword located directly 2348below the table. If you type the equation in the fourth field of the 2349third data line in the table, the formula looks like ‘@3$4=$1+$2’. When 2350inserting/deleting/swapping column and rows with the appropriate 2351commands, _absolute references_ (but not relative ones) in stored 2352formulas are modified in order to still reference the same field. To 2353avoid this from happening, in particular in range references, anchor 2354ranges at the table borders (using ‘@<’, ‘@>’, ‘$<’, ‘$>’), or at hlines 2355using the ‘@I’ notation. Automatic adaptation of field references does 2356not happen if you edit the table structure with normal editing 2357commands—you must fix the formulas yourself. 2358 2359 Instead of typing an equation into the field, you may also use the 2360following command 2361 2362‘C-u C-c =’ (‘org-table-eval-formula’) 2363 Install a new formula for the current field. The command prompts 2364 for a formula with default taken from the ‘TBLFM’ keyword, applies 2365 it to the current field, and stores it. 2366 2367 The left-hand side of a formula can also be a special expression in 2368order to assign the formula to a number of different fields. There is 2369no keyboard shortcut to enter such range formulas. To add them, use the 2370formula editor (see *note Editing and debugging formulas::) or edit the 2371‘TBLFM’ keyword directly. 2372 2373‘$2=’ 2374 Column formula, valid for the entire column. This is so common 2375 that Org treats these formulas in a special way, see *note Column 2376 formulas::. 2377 2378‘@3=’ 2379 Row formula, applies to all fields in the specified row. ‘@>=’ 2380 means the last row. 2381 2382‘@1$2..@4$3=’ 2383 Range formula, applies to all fields in the given rectangular 2384 range. This can also be used to assign a formula to some but not 2385 all fields in a row. 2386 2387‘$NAME=’ 2388 Named field, see *note Advanced features::. 2389 2390 2391File: org.info, Node: Column formulas, Next: Lookup functions, Prev: Field and range formulas, Up: The Spreadsheet 2392 23933.5.6 Column formulas 2394--------------------- 2395 2396When you assign a formula to a simple column reference like ‘$3=’, the 2397same formula is used in all fields of that column, with the following 2398very convenient exceptions: (i) If the table contains horizontal 2399separator hlines with rows above and below, everything before the first 2400such hline is considered part of the table _header_ and is not modified 2401by column formulas. Therefore a header is mandatory when you use column 2402formulas and want to add hlines to group rows, like for example to 2403separate a total row at the bottom from the summand rows above. (ii) 2404Fields that already get a value from a field/range formula are left 2405alone by column formulas. These conditions make column formulas very 2406easy to use. 2407 2408 To assign a formula to a column, type it directly into any field in 2409the column, preceded by an equal sign, like ‘=$1+$2’. When you press 2410‘<TAB>’ or ‘<RET>’ or ‘C-c C-c’ with point still in the field, the 2411formula is stored as the formula for the current column, evaluated and 2412the current field replaced with the result. If the field contains only 2413‘=’, the previously stored formula for this column is used. For each 2414column, Org only remembers the most recently used formula. In the 2415‘TBLFM’ keyword, column formulas look like ‘$4=$1+$2’. The left-hand 2416side of a column formula can not be the name of column, it must be the 2417numeric column reference or ‘$>’. 2418 2419 Instead of typing an equation into the field, you may also use the 2420following command: 2421 2422‘C-c =’ (‘org-table-eval-formula’) 2423 Install a new formula for the current column and replace current 2424 field with the result of the formula. The command prompts for a 2425 formula, with default taken from the ‘TBLFM’ keyword, applies it to 2426 the current field and stores it. With a numeric prefix argument, 2427 e.g., ‘C-5 C-c =’, the command applies it to that many consecutive 2428 fields in the current column. 2429 2430 2431File: org.info, Node: Lookup functions, Next: Editing and debugging formulas, Prev: Column formulas, Up: The Spreadsheet 2432 24333.5.7 Lookup functions 2434---------------------- 2435 2436Org has three predefined Emacs Lisp functions for lookups in tables. 2437 2438‘(org-lookup-first VAL S-LIST R-LIST &optional PREDICATE)’ 2439 Searches for the first element S in list S-LIST for which 2440 (PREDICATE VAL S) 2441 is non-‘nil’; returns the value from the corresponding position in 2442 list R-LIST. The default PREDICATE is ‘equal’. Note that the 2443 parameters VAL and S are passed to PREDICATE in the same order as 2444 the corresponding parameters are in the call to ‘org-lookup-first’, 2445 where VAL precedes S-LIST. If R-LIST is ‘nil’, the matching 2446 element S of S-LIST is returned. 2447 2448‘(org-lookup-last VAL S-LIST R-LIST &optional PREDICATE)’ 2449 Similar to ‘org-lookup-first’ above, but searches for the _last_ 2450 element for which PREDICATE is non-‘nil’. 2451 2452‘(org-lookup-all VAL S-LIST R-LIST &optional PREDICATE)’ 2453 Similar to ‘org-lookup-first’, but searches for _all_ elements for 2454 which PREDICATE is non-‘nil’, and returns _all_ corresponding 2455 values. This function can not be used by itself in a formula, 2456 because it returns a list of values. However, powerful lookups can 2457 be built when this function is combined with other Emacs Lisp 2458 functions. 2459 2460 If the ranges used in these functions contain empty fields, the ‘E’ 2461mode for the formula should usually be specified: otherwise empty fields 2462are not included in S-LIST and/or R-LIST which can, for example, result 2463in an incorrect mapping from an element of S-LIST to the corresponding 2464element of R-LIST. 2465 2466 These three functions can be used to implement associative arrays, 2467count matching cells, rank results, group data, etc. For practical 2468examples see this tutorial on Worg 2469(https://orgmode.org/worg/org-tutorials/org-lookups.html). 2470 2471 2472File: org.info, Node: Editing and debugging formulas, Next: Updating the table, Prev: Lookup functions, Up: The Spreadsheet 2473 24743.5.8 Editing and debugging formulas 2475------------------------------------ 2476 2477You can edit individual formulas in the minibuffer or directly in the 2478field. Org can also prepare a special buffer with all active formulas 2479of a table. When offering a formula for editing, Org converts 2480references to the standard format (like ‘B3’ or ‘D&’) if possible. If 2481you prefer to only work with the internal format (like ‘@3$2’ or ‘$4’), 2482configure the variable ‘org-table-use-standard-references’. 2483 2484‘C-c =’ or ‘C-u C-c =’ (‘org-table-eval-formula’) 2485 Edit the formula associated with the current column/field in the 2486 minibuffer. See *note Column formulas::, and *note Field and range 2487 formulas::. 2488 2489‘C-u C-u C-c =’ (‘org-table-eval-formula’) 2490 Re-insert the active formula (either a field formula, or a column 2491 formula) into the current field, so that you can edit it directly 2492 in the field. The advantage over editing in the minibuffer is that 2493 you can use the command ‘C-c ?’. 2494 2495‘C-c ?’ (‘org-table-field-info’) 2496 While editing a formula in a table field, highlight the field(s) 2497 referenced by the reference at point position in the formula. 2498 2499‘C-c }’ (‘org-table-toggle-coordinate-overlays’) 2500 Toggle the display of row and column numbers for a table, using 2501 overlays. These are updated each time the table is aligned; you 2502 can force it with ‘C-c C-c’. 2503 2504‘C-c {’ (‘org-table-toggle-formula-debugger’) 2505 Toggle the formula debugger on and off. See below. 2506 2507‘C-c '’ (‘org-table-edit-formulas’) 2508 Edit all formulas for the current table in a special buffer, where 2509 the formulas are displayed one per line. If the current field has 2510 an active formula, point in the formula editor marks it. While 2511 inside the special buffer, Org automatically highlights any field 2512 or range reference at point position. You may edit, remove and add 2513 formulas, and use the following commands: 2514 2515 ‘C-c C-c’ or ‘C-x C-s’ (‘org-table-fedit-finish’) 2516 Exit the formula editor and store the modified formulas. With 2517 ‘C-u’ prefix, also apply the new formulas to the entire table. 2518 2519 ‘C-c C-q’ (‘org-table-fedit-abort’) 2520 Exit the formula editor without installing changes. 2521 2522 ‘C-c C-r’ (‘org-table-fedit-toggle-ref-type’) 2523 Toggle all references in the formula editor between standard 2524 (like ‘B3’) and internal (like ‘@3$2’). 2525 2526 ‘<TAB>’ (‘org-table-fedit-lisp-indent’) 2527 Pretty-print or indent Lisp formula at point. When in a line 2528 containing a Lisp formula, format the formula according to 2529 Emacs Lisp rules. Another ‘<TAB>’ collapses the formula back 2530 again. In the open formula, ‘<TAB>’ re-indents just like in 2531 Emacs Lisp mode. 2532 2533 ‘M-<TAB>’ (‘lisp-complete-symbol’) 2534 Complete Lisp symbols, just like in Emacs Lisp mode. 2535 2536 ‘S-<UP>’, ‘S-<DOWN>’, ‘S-<LEFT>’, ‘S-<RIGHT>’ 2537 Shift the reference at point. For example, if the reference 2538 is ‘B3’ and you press ‘S-<RIGHT>’, it becomes ‘C3’. This also 2539 works for relative references and for hline references. 2540 2541 ‘M-S-<UP>’ (‘org-table-fedit-line-up’) 2542 Move the test line for column formulas up in the Org buffer. 2543 2544 ‘M-S-<DOWN>’ (‘org-table-fedit-line-down’) 2545 Move the test line for column formulas down in the Org buffer. 2546 2547 ‘M-<UP>’ (‘org-table-fedit-scroll-up’) 2548 Scroll up the window displaying the table. 2549 2550 ‘M-<DOWN>’ (‘org-table-fedit-scroll-down’) 2551 Scroll down the window displaying the table. 2552 2553 ‘C-c }’ 2554 Turn the coordinate grid in the table on and off. 2555 2556 Making a table field blank does not remove the formula associated 2557with the field, because that is stored in a different line—the ‘TBLFM’ 2558keyword line. During the next recalculation, the field will be filled 2559again. To remove a formula from a field, you have to give an empty 2560reply when prompted for the formula, or to edit the ‘TBLFM’ keyword. 2561 2562 You may edit the ‘TBLFM’ keyword directly and re-apply the changed 2563equations with ‘C-c C-c’ in that line or with the normal recalculation 2564commands in the table. 2565 2566Using multiple ‘TBLFM’ lines 2567............................ 2568 2569You may apply the formula temporarily. This is useful when you want to 2570switch the formula applied to the table. Place multiple ‘TBLFM’ 2571keywords right after the table, and then press ‘C-c C-c’ on the formula 2572to apply. Here is an example: 2573 2574 | x | y | 2575 |---+---| 2576 | 1 | | 2577 | 2 | | 2578 #+TBLFM: $2=$1*1 2579 #+TBLFM: $2=$1*2 2580 2581Pressing ‘C-c C-c’ in the line of ‘#+TBLFM: $2=$1*2’ yields: 2582 2583 | x | y | 2584 |---+---| 2585 | 1 | 2 | 2586 | 2 | 4 | 2587 #+TBLFM: $2=$1*1 2588 #+TBLFM: $2=$1*2 2589 2590If you recalculate this table, with ‘C-u C-c *’, for example, you get 2591the following result from applying only the first ‘TBLFM’ keyword. 2592 2593 | x | y | 2594 |---+---| 2595 | 1 | 1 | 2596 | 2 | 2 | 2597 #+TBLFM: $2=$1*1 2598 #+TBLFM: $2=$1*2 2599 2600Debugging formulas 2601.................. 2602 2603When the evaluation of a formula leads to an error, the field content 2604becomes the string ‘#ERROR’. If you would like to see what is going on 2605during variable substitution and calculation in order to find a bug, 2606turn on formula debugging in the Tbl menu and repeat the calculation, 2607for example by pressing ‘C-u C-u C-c = <RET>’ in a field. Detailed 2608information are displayed. 2609 2610 2611File: org.info, Node: Updating the table, Next: Advanced features, Prev: Editing and debugging formulas, Up: The Spreadsheet 2612 26133.5.9 Updating the table 2614------------------------ 2615 2616Recalculation of a table is normally not automatic, but needs to be 2617triggered by a command. To make recalculation at least semi-automatic, 2618see *note Advanced features::. 2619 2620 In order to recalculate a line of a table or the entire table, use 2621the following commands: 2622 2623‘C-c *’ (‘org-table-recalculate’) 2624 Recalculate the current row by first applying the stored column 2625 formulas from left to right, and all field/range formulas in the 2626 current row. 2627 2628‘C-u C-c *’ or ‘C-u C-c C-c’ 2629 Recompute the entire table, line by line. Any lines before the 2630 first hline are left alone, assuming that these are part of the 2631 table header. 2632 2633‘C-u C-u C-c *’ or ‘C-u C-u C-c C-c’ (‘org-table-iterate’) 2634 Iterate the table by recomputing it until no further changes occur. 2635 This may be necessary if some computed fields use the value of 2636 other fields that are computed _later_ in the calculation sequence. 2637 2638‘M-x org-table-recalculate-buffer-tables’ 2639 Recompute all tables in the current buffer. 2640 2641‘M-x org-table-iterate-buffer-tables’ 2642 Iterate all tables in the current buffer, in order to converge 2643 table-to-table dependencies. 2644 2645 2646File: org.info, Node: Advanced features, Prev: Updating the table, Up: The Spreadsheet 2647 26483.5.10 Advanced features 2649------------------------ 2650 2651If you want the recalculation of fields to happen automatically, or if 2652you want to be able to assign _names_(1) to fields and columns, you need 2653to reserve the first column of the table for special marking characters. 2654 2655‘C-#’ (‘org-table-rotate-recalc-marks’) 2656 Rotate the calculation mark in first column through the states ‘#’, 2657 ‘*’, ‘!’, ‘$’. When there is an active region, change all marks in 2658 the region. 2659 2660 Here is an example of a table that collects exam results of students 2661and makes use of these features: 2662 2663 |---+---------+--------+--------+--------+-------+------| 2664 | | Student | Prob 1 | Prob 2 | Prob 3 | Total | Note | 2665 |---+---------+--------+--------+--------+-------+------| 2666 | ! | | P1 | P2 | P3 | Tot | | 2667 | # | Maximum | 10 | 15 | 25 | 50 | 10.0 | 2668 | ^ | | m1 | m2 | m3 | mt | | 2669 |---+---------+--------+--------+--------+-------+------| 2670 | # | Peter | 10 | 8 | 23 | 41 | 8.2 | 2671 | # | Sam | 2 | 4 | 3 | 9 | 1.8 | 2672 |---+---------+--------+--------+--------+-------+------| 2673 | | Average | | | | 25.0 | | 2674 | ^ | | | | | at | | 2675 | $ | max=50 | | | | | | 2676 |---+---------+--------+--------+--------+-------+------| 2677 #+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f::$at=vmean(@-II..@-I);%.1f 2678 2679 Important: Please note that for these special tables, recalculating 2680 the table with ‘C-u C-c *’ only affects rows that are marked ‘#’ or 2681 ‘*’, and fields that have a formula assigned to the field itself. 2682 The column formulas are not applied in rows with empty first field. 2683 2684 The marking characters have the following meaning: 2685 2686‘!’ 2687 The fields in this line define names for the columns, so that you 2688 may refer to a column as ‘$Tot’ instead of ‘$6’. 2689 2690‘^’ 2691 This row defines names for the fields _above_ the row. With such a 2692 definition, any formula in the table may use ‘$m1’ to refer to the 2693 value ‘10’. Also, if you assign a formula to a names field, it is 2694 stored as ‘$name = ...’. 2695 2696‘_’ 2697 Similar to ‘^’, but defines names for the fields in the row 2698 _below_. 2699 2700‘$’ 2701 Fields in this row can define _parameters_ for formulas. For 2702 example, if a field in a ‘$’ row contains ‘max=50’, then formulas 2703 in this table can refer to the value 50 using ‘$max’. Parameters 2704 work exactly like constants, only that they can be defined on a 2705 per-table basis. 2706 2707‘#’ 2708 Fields in this row are automatically recalculated when pressing 2709 ‘<TAB>’ or ‘<RET>’ or ‘S-<TAB>’ in this row. Also, this row is 2710 selected for a global recalculation with ‘C-u C-c *’. Unmarked 2711 lines are left alone by this command. 2712 2713‘*’ 2714 Selects this line for global recalculation with ‘C-u C-c *’, but 2715 not for automatic recalculation. Use this when automatic 2716 recalculation slows down editing too much. 2717 2718‘/’ 2719 Do not export this line. Useful for lines that contain the 2720 narrowing ‘<N>’ markers or column group markers. 2721 2722 Finally, just to whet your appetite for what can be done with the 2723fantastic Calc package, here is a table that computes the Taylor series 2724of degree n at location x for a couple of functions. 2725 2726 |---+-------------+---+-----+--------------------------------------| 2727 | | Func | n | x | Result | 2728 |---+-------------+---+-----+--------------------------------------| 2729 | # | exp(x) | 1 | x | 1 + x | 2730 | # | exp(x) | 2 | x | 1 + x + x^2 / 2 | 2731 | # | exp(x) | 3 | x | 1 + x + x^2 / 2 + x^3 / 6 | 2732 | # | x^2+sqrt(x) | 2 | x=0 | x*(0.5 / 0) + x^2 (2 - 0.25 / 0) / 2 | 2733 | # | x^2+sqrt(x) | 2 | x=1 | 2 + 2.5 x - 2.5 + 0.875 (x - 1)^2 | 2734 | * | tan(x) | 3 | x | 0.0175 x + 1.77e-6 x^3 | 2735 |---+-------------+---+-----+--------------------------------------| 2736 #+TBLFM: $5=taylor($2,$4,$3);n3 2737 2738 ---------- Footnotes ---------- 2739 2740 (1) Such names must start with an alphabetic character and use only 2741alphanumeric/underscore characters. 2742 2743 2744File: org.info, Node: Org Plot, Prev: The Spreadsheet, Up: Tables 2745 27463.6 Org Plot 2747============ 2748 2749Org Plot can produce graphs of information stored in Org tables, either 2750graphically or in ASCII art. 2751 2752Graphical plots using Gnuplot 2753----------------------------- 2754 2755Org Plot can produce 2D and 3D graphs of information stored in Org 2756tables using Gnuplot (http://www.gnuplot.info/) and Gnuplot mode 2757(http://cars9.uchicago.edu/~ravel/software/gnuplot-mode.html). To see 2758this in action, ensure that you have both Gnuplot and Gnuplot mode 2759installed on your system, then call ‘C-c " g’ or ‘M-x org-plot/gnuplot’ 2760on the following table. 2761 2762 #+PLOT: title:"Citas" ind:1 deps:(3) type:2d with:histograms set:"yrange [0:]" 2763 | Sede | Max cites | H-index | 2764 |-----------+-----------+---------| 2765 | Chile | 257.72 | 21.39 | 2766 | Leeds | 165.77 | 19.68 | 2767 | Sao Paolo | 71.00 | 11.50 | 2768 | Stockholm | 134.19 | 14.33 | 2769 | Morelia | 257.56 | 17.67 | 2770 2771 Notice that Org Plot is smart enough to apply the table’s headers as 2772labels. Further control over the labels, type, content, and appearance 2773of plots can be exercised through the ‘PLOT’ keyword preceding a table. 2774See below for a complete list of Org Plot options. For more information 2775and examples see the Org Plot tutorial 2776(https://orgmode.org/worg/org-tutorials/org-plot.html). 2777 2778Plot options 2779............ 2780 2781‘set’ 2782 Specify any Gnuplot option to be set when graphing. 2783 2784‘title’ 2785 Specify the title of the plot. 2786 2787‘ind’ 2788 Specify which column of the table to use as the ‘x’ axis. 2789 2790‘deps’ 2791 Specify the columns to graph as a Lisp style list, surrounded by 2792 parentheses and separated by spaces for example ‘dep:(3 4)’ to 2793 graph the third and fourth columns. Defaults to graphing all other 2794 columns aside from the ‘ind’ column. 2795 2796‘type’ 2797 Specify whether the plot is ‘2d’, ‘3d’, or ‘grid’. 2798 2799‘with’ 2800 Specify a ‘with’ option to be inserted for every column being 2801 plotted, e.g., ‘lines’, ‘points’, ‘boxes’, ‘impulses’. Defaults to 2802 ‘lines’. 2803 2804‘file’ 2805 If you want to plot to a file, specify 2806 ‘"path/to/desired/output-file"’. 2807 2808‘labels’ 2809 List of labels to be used for the ‘deps’. Defaults to the column 2810 headers if they exist. 2811 2812‘line’ 2813 Specify an entire line to be inserted in the Gnuplot script. 2814 2815‘map’ 2816 When plotting ‘3d’ or ‘grid’ types, set this to ‘t’ to graph a flat 2817 mapping rather than a ‘3d’ slope. 2818 2819‘timefmt’ 2820 Specify format of Org mode timestamps as they will be parsed by 2821 Gnuplot. Defaults to ‘%Y-%m-%d-%H:%M:%S’. 2822 2823‘script’ 2824 If you want total control, you can specify a script file—place the 2825 file name between double-quotes—which will be used to plot. Before 2826 plotting, every instance of ‘$datafile’ in the specified script 2827 will be replaced with the path to the generated data file. Note: 2828 even if you set this option, you may still want to specify the plot 2829 type, as that can impact the content of the data file. 2830 2831ASCII bar plots 2832--------------- 2833 2834While point is on a column, typing ‘C-c `` a’ or ‘M-x orgtbl-ascii-plot’ 2835create a new column containing an ASCII-art bars plot. The plot is 2836implemented through a regular column formula. When the source column 2837changes, the bar plot may be updated by refreshing the table, for 2838example typing ‘C-u C-c *’. 2839 2840 | Sede | Max cites | | 2841 |---------------+-----------+--------------| 2842 | Chile | 257.72 | WWWWWWWWWWWW | 2843 | Leeds | 165.77 | WWWWWWWh | 2844 | Sao Paolo | 71.00 | WWW; | 2845 | Stockholm | 134.19 | WWWWWW: | 2846 | Morelia | 257.56 | WWWWWWWWWWWH | 2847 | Rochefourchat | 0.00 | | 2848 #+TBLFM: $3='(orgtbl-ascii-draw $2 0.0 257.72 12) 2849 2850 The formula is an Elisp call. 2851 2852 -- Function: orgtbl-ascii-draw value min max &optional width 2853 Draw an ASCII bar in a table. 2854 2855 VALUE is the value to plot. 2856 2857 MIN is the value displayed as an empty bar. MAX is the value 2858 filling all the WIDTH. Sources values outside this range are 2859 displayed as ‘too small’ or ‘too large’. 2860 2861 WIDTH is the number of characters of the bar plot. It defaults to 2862 ‘12’. 2863 2864 2865File: org.info, Node: Hyperlinks, Next: TODO Items, Prev: Tables, Up: Top 2866 28674 Hyperlinks 2868************ 2869 2870Like HTML, Org provides support for links inside a file, external links 2871to other files, Usenet articles, emails, and much more. 2872 2873* Menu: 2874 2875* Link Format:: How links in Org are formatted. 2876* Internal Links:: Links to other places in the current file. 2877* Radio Targets:: Make targets trigger links in plain text. 2878* External Links:: URL-like links to the world. 2879* Handling Links:: Creating, inserting and following. 2880* Using Links Outside Org:: Linking from my C source code? 2881* Link Abbreviations:: Shortcuts for writing complex links. 2882* Search Options:: Linking to a specific location. 2883* Custom Searches:: When the default search is not enough. 2884 2885 2886File: org.info, Node: Link Format, Next: Internal Links, Up: Hyperlinks 2887 28884.1 Link Format 2889=============== 2890 2891Org recognizes plain URIs, possibly wrapped within angle brackets(1), 2892and activate them as clickable links. 2893 2894 The general link format, however, looks like this: 2895 2896 [[LINK][DESCRIPTION]] 2897 2898or alternatively 2899 2900 [[LINK]] 2901 2902 Some ‘\’, ‘[’ and ‘]’ characters in the LINK part need to be 2903“escaped”, i.e., preceded by another ‘\’ character. More specifically, 2904the following characters, and only them, must be escaped: 2905 2906 1. all ‘[’ and ‘]’ characters, 2907 2. every ‘\’ character preceding either ‘]’ or ‘[’, 2908 3. every ‘\’ character at the end of the link. 2909 2910 Functions inserting links (see *note Handling Links::) properly 2911escape ambiguous characters. You only need to bother about the rules 2912above when inserting directly, or yanking, a URI within square brackets. 2913When in doubt, you may use the function ‘org-link-escape’, which turns a 2914link string into its escaped form. 2915 2916 Once a link in the buffer is complete, with all brackets present, Org 2917changes the display so that ‘DESCRIPTION’ is displayed instead of 2918‘[[LINK][DESCRIPTION]]’ and ‘LINK’ is displayed instead of ‘[[LINK]]’. 2919Links are highlighted in the ‘org-link’ face, which, by default, is an 2920underlined face. 2921 2922 You can directly edit the visible part of a link. This can be either 2923the LINK part, if there is no description, or the DESCRIPTION part 2924otherwise. To also edit the invisible LINK part, use ‘C-c C-l’ with 2925point on the link (see *note Handling Links::). 2926 2927 If you place point at the beginning or just behind the end of the 2928displayed text and press ‘<BS>’, you remove the—invisible—bracket at 2929that location(2). This makes the link incomplete and the internals are 2930again displayed as plain text. Inserting the missing bracket hides the 2931link internals again. To show the internal structure of all links, use 2932the menu: Org → Hyperlinks → Literal links. 2933 2934 ---------- Footnotes ---------- 2935 2936 (1) Plain URIs are recognized only for a well-defined set of schemes. 2937See *note External Links::. Unlike URI syntax, they cannot contain 2938parenthesis or white spaces, either. URIs within angle brackets have no 2939such limitation. 2940 2941 (2) More accurately, the precise behavior depends on how point 2942arrived there—see *note Invisible Text: (elisp)Invisible Text. 2943 2944 2945File: org.info, Node: Internal Links, Next: Radio Targets, Prev: Link Format, Up: Hyperlinks 2946 29474.2 Internal Links 2948================== 2949 2950A link that does not look like a URL—i.e., does not start with a known 2951scheme or a file name—refers to the current document. You can follow it 2952with ‘C-c C-o’ when point is on the link, or with a mouse click (see 2953*note Handling Links::). 2954 2955 Org provides several refinements to internal navigation within a 2956document. Most notably, a construct like ‘[[#my-custom-id]]’ 2957specifically targets the entry with the ‘CUSTOM_ID’ property set to 2958‘my-custom-id’. Also, an internal link looking like ‘[[*Some section]]’ 2959points to a headline with the name ‘Some section’(1). 2960 2961 When the link does not belong to any of the cases above, Org looks 2962for a _dedicated target_: the same string in double angular brackets, 2963like ‘<<My Target>>’. 2964 2965 If no dedicated target exists, the link tries to match the exact name 2966of an element within the buffer. Naming is done, unsurprisingly, with 2967the ‘NAME’ keyword, which has to be put in the line before the element 2968it refers to, as in the following example 2969 2970 #+NAME: My Target 2971 | a | table | 2972 |----+------------| 2973 | of | four cells | 2974 2975 Ultimately, if none of the above succeeds, Org searches for a 2976headline that is exactly the link text but may also include a TODO 2977keyword and tags, or initiates a plain text search, according to the 2978value of ‘org-link-search-must-match-exact-headline’. 2979 2980 Note that you must make sure custom IDs, dedicated targets, and names 2981are unique throughout the document. Org provides a linter to assist you 2982in the process, if needed. See *note Org Syntax::. 2983 2984 During export, internal links are used to mark objects and assign 2985them a number. Marked objects are then referenced by links pointing to 2986them. In particular, links without a description appear as the number 2987assigned to the marked object(2). In the following excerpt from an Org 2988buffer 2989 2990 1. one item 2991 2. <<target>>another item 2992 Here we refer to item [[target]]. 2993 2994The last sentence will appear as ‘Here we refer to item 2’ when 2995exported. 2996 2997 In non-Org files, the search looks for the words in the link text. 2998In the above example the search would be for ‘target’. 2999 3000 Following a link pushes a mark onto Org’s own mark ring. You can 3001return to the previous position with ‘C-c &’. Using this command 3002several times in direct succession goes back to positions recorded 3003earlier. 3004 3005 ---------- Footnotes ---------- 3006 3007 (1) To insert a link targeting a headline, in-buffer completion can 3008be used. Just type a star followed by a few optional letters into the 3009buffer and press ‘M-<TAB>’. All headlines in the current buffer are 3010offered as completions. 3011 3012 (2) When targeting a ‘NAME’ keyword, the ‘CAPTION’ keyword is 3013mandatory in order to get proper numbering (see *note Captions::). 3014 3015 3016File: org.info, Node: Radio Targets, Next: External Links, Prev: Internal Links, Up: Hyperlinks 3017 30184.3 Radio Targets 3019================= 3020 3021Org can automatically turn any occurrences of certain target names in 3022normal text into a link. So without explicitly creating a link, the 3023text connects to the target radioing its position. Radio targets are 3024enclosed by triple angular brackets. For example, a target ‘<<<My 3025Target>>>’ causes each occurrence of ‘my target’ in normal text to 3026become activated as a link. The Org file is scanned automatically for 3027radio targets only when the file is first loaded into Emacs. To update 3028the target list during editing, press ‘C-c C-c’ with point on or at a 3029target. 3030 3031 3032File: org.info, Node: External Links, Next: Handling Links, Prev: Radio Targets, Up: Hyperlinks 3033 30344.4 External Links 3035================== 3036 3037Org supports links to files, websites, Usenet and email messages, BBDB 3038database entries and links to both IRC conversations and their logs. 3039External links are URL-like locators. They start with a short 3040identifying string followed by a colon. There can be no space after the 3041colon. 3042 3043 Here is the full set of built-in link types: 3044 3045‘file’ 3046 File links. File name may be remote, absolute, or relative. 3047 3048 Additionally, you can specify a line number, or a text search. In 3049 Org files, you may link to a headline name, a custom ID, or a code 3050 reference instead. 3051 3052 As a special case, “file” prefix may be omitted if the file name is 3053 complete, e.g., it starts with ‘./’, or ‘/’. 3054 3055‘attachment’ 3056 Same as file links but for files and folders attached to the 3057 current node (see *note Attachments::). Attachment links are 3058 intended to behave exactly as file links but for files relative to 3059 the attachment directory. 3060 3061‘bbdb’ 3062 Link to a BBDB record, with possible regexp completion. 3063 3064‘docview’ 3065 Link to a document opened with DocView mode. You may specify a 3066 page number. 3067 3068‘doi’ 3069 Link to an electronic resource, through its handle. 3070 3071‘elisp’ 3072 Execute an Elisp command upon activation. 3073 3074‘gnus’, ‘rmail’, ‘mhe’ 3075 Link to messages or folders from a given Emacs’ MUA. 3076 3077‘help’ 3078 Display documentation of a symbol in ‘*Help*’ buffer. 3079 3080‘http’, ‘https’ 3081 Web links. 3082 3083‘id’ 3084 Link to a specific headline by its ID property, in an Org file. 3085 3086‘info’ 3087 Link to an Info manual, or to a specific node. 3088 3089‘irc’ 3090 Link to an IRC channel. 3091 3092‘mailto’ 3093 Link to message composition. 3094 3095‘news’ 3096 Usenet links. 3097 3098‘shell’ 3099 Execute a shell command upon activation. 3100 3101 The following table illustrates the link types above, along with 3102their options: 3103 3104Link Type Example 3105------------------------------------------------------------------------ 3106http ‘http://staff.science.uva.nl/c.dominik/’ 3107https ‘https://orgmode.org/’ 3108doi ‘doi:10.1000/182’ 3109file ‘file:/home/dominik/images/jupiter.jpg’ 3110 ‘/home/dominik/images/jupiter.jpg’ (same as above) 3111 ‘file:papers/last.pdf’ 3112 ‘./papers/last.pdf’ (same as above) 3113 ‘file:/ssh:me@some.where:papers/last.pdf’ (remote) 3114 ‘/ssh:me@some.where:papers/last.pdf’ (same as above) 3115 ‘file:sometextfile::NNN’ (jump to line number) 3116 ‘file:projects.org’ 3117 ‘file:projects.org::some words’ (text search)(1) 3118 ‘file:projects.org::*task title’ (headline search) 3119 ‘file:projects.org::#custom-id’ (headline search) 3120attachment ‘attachment:projects.org’ 3121 ‘attachment:projects.org::some words’ (text search) 3122docview ‘docview:papers/last.pdf::NNN’ 3123id ‘id:B7423F4D-2E8A-471B-8810-C40F074717E9’ 3124news ‘news:comp.emacs’ 3125mailto ‘mailto:adent@galaxy.net’ 3126mhe ‘mhe:folder’ (folder link) 3127 ‘mhe:folder#id’ (message link) 3128rmail ‘rmail:folder’ (folder link) 3129 ‘rmail:folder#id’ (message link) 3130gnus ‘gnus:group’ (group link) 3131 ‘gnus:group#id’ (article link) 3132bbdb ‘bbdb:R.*Stallman’ (record with regexp) 3133irc ‘irc:/irc.com/#emacs/bob’ 3134help ‘help:org-store-link’ 3135info ‘info:org#External links’ 3136shell ‘shell:ls *.org’ 3137elisp ‘elisp:(find-file "Elisp.org")’ (Elisp form to evaluate) 3138 ‘elisp:org-agenda’ (interactive Elisp command) 3139 3140 On top of these built-in link types, additional ones are available 3141through the ‘contrib/’ directory (see *note Installation::). For 3142example, these links to VM or Wanderlust messages are available when you 3143load the corresponding libraries from the ‘contrib/’ directory: 3144 3145‘vm:folder’ VM folder link 3146‘vm:folder#id’ VM message link 3147‘vm://myself@some.where.org/folder#id’ VM on remote machine 3148‘vm-imap:account:folder’ VM IMAP folder link 3149‘vm-imap:account:folder#id’ VM IMAP message link 3150‘wl:folder’ Wanderlust folder link 3151‘wl:folder#id’ Wanderlust message link 3152 3153 For information on customizing Org to add new link types, see *note 3154Adding Hyperlink Types::. 3155 3156 A link should be enclosed in double brackets and may contain 3157descriptive text to be displayed instead of the URL (see *note Link 3158Format::), for example: 3159 3160 [[http://www.gnu.org/software/emacs/][GNU Emacs]] 3161 3162 If the description is a file name or URL that points to an image, 3163HTML export (see *note HTML Export::) inlines the image as a clickable 3164button. If there is no description at all and the link points to an 3165image, that image is inlined into the exported HTML file. 3166 3167 Org also recognizes external links amid normal text and activates 3168them as links. If spaces must be part of the link (for example in 3169‘bbdb:R.*Stallman’), or if you need to remove ambiguities about the end 3170of the link, enclose the link in square or angular brackets. 3171 3172 ---------- Footnotes ---------- 3173 3174 (1) The actual behavior of the search depends on the value of the 3175variable ‘org-link-search-must-match-exact-headline’. If its value is 3176‘nil’, then a fuzzy text search is done. If it is ‘t’, then only the 3177exact headline is matched, ignoring spaces and statistic cookies. If 3178the value is ‘query-to-create’, then an exact headline is searched; if 3179it is not found, then the user is queried to create it. 3180 3181 3182File: org.info, Node: Handling Links, Next: Using Links Outside Org, Prev: External Links, Up: Hyperlinks 3183 31844.5 Handling Links 3185================== 3186 3187Org provides methods to create a link in the correct syntax, to insert 3188it into an Org file, and to follow the link. 3189 3190 The main function is ‘org-store-link’, called with ‘M-x 3191org-store-link’. Because of its importance, we suggest to bind it to a 3192widely available key (see *note Activation::). It stores a link to the 3193current location. The link is stored for later insertion into an Org 3194buffer—see below. The kind of link that is created depends on the 3195current buffer: 3196 3197_Org mode buffers_ 3198 For Org files, if there is a ‘<<target>>’ at point, the link points 3199 to the target. Otherwise it points to the current headline, which 3200 is also the description(1). 3201 3202 If the headline has a ‘CUSTOM_ID’ property, store a link to this 3203 custom ID. In addition or alternatively, depending on the value of 3204 ‘org-id-link-to-org-use-id’, create and/or use a globally unique 3205 ‘ID’ property for the link(2). So using this command in Org 3206 buffers potentially creates two links: a human-readable link from 3207 the custom ID, and one that is globally unique and works even if 3208 the entry is moved from file to file. Later, when inserting the 3209 link, you need to decide which one to use. 3210 3211_Email/News clients: VM, Rmail, Wanderlust, MH-E, Gnus_ 3212 Pretty much all Emacs mail clients are supported. The link points 3213 to the current article, or, in some Gnus buffers, to the group. 3214 The description is constructed according to the variable 3215 ‘org-link-email-description-format’. By default, it refers to the 3216 addressee and the subject. 3217 3218_Web browsers: W3, W3M and EWW_ 3219 Here the link is the current URL, with the page title as the 3220 description. 3221 3222_Contacts: BBDB_ 3223 Links created in a BBDB buffer point to the current entry. 3224 3225_Chat: IRC_ 3226 For IRC links, if the variable ‘org-irc-link-to-logs’ is non-‘nil’, 3227 create a ‘file’ style link to the relevant point in the logs for 3228 the current conversation. Otherwise store an ‘irc’ style link to 3229 the user/channel/server under the point. 3230 3231_Other files_ 3232 For any other file, the link points to the file, with a search 3233 string (see *note Search Options::) pointing to the contents of the 3234 current line. If there is an active region, the selected words 3235 form the basis of the search string. You can write custom Lisp 3236 functions to select the search string and perform the search for 3237 particular file types (see *note Custom Searches::). 3238 3239 You can also define dedicated links to other files. See *note 3240 Adding Hyperlink Types::. 3241 3242_Agenda view_ 3243 When point is in an agenda view, the created link points to the 3244 entry referenced by the current line. 3245 3246 From an Org buffer, the following commands create, navigate or, more 3247generally, act on links. 3248 3249‘C-c C-l’ (‘org-insert-link’) 3250 Insert a link(3). This prompts for a link to be inserted into the 3251 buffer. You can just type a link, using text for an internal link, 3252 or one of the link type prefixes mentioned in the examples above. 3253 The link is inserted into the buffer, along with a descriptive 3254 text(4). If some text was selected at this time, it becomes the 3255 default description. 3256 3257 _Inserting stored links_ 3258 All links stored during the current session are part of the 3259 history for this prompt, so you can access them with ‘<UP>’ 3260 and ‘<DOWN>’ (or ‘M-p’, ‘M-n’). 3261 3262 _Completion support_ 3263 Completion with ‘<TAB>’ helps you to insert valid link 3264 prefixes like ‘http’ or ‘ftp’, including the prefixes defined 3265 through link abbreviations (see *note Link Abbreviations::). 3266 If you press ‘<RET>’ after inserting only the prefix, Org 3267 offers specific completion support for some link types(5). 3268 For example, if you type ‘f i l e <RET>’—alternative access: 3269 ‘C-u C-c C-l’, see below—Org offers file name completion, and 3270 after ‘b b d b <RET>’ you can complete contact names. 3271 3272‘C-u C-c C-l’ 3273 When ‘C-c C-l’ is called with a ‘C-u’ prefix argument, insert a 3274 link to a file. You may use file name completion to select the 3275 name of the file. The path to the file is inserted relative to the 3276 directory of the current Org file, if the linked file is in the 3277 current directory or in a sub-directory of it, or if the path is 3278 written relative to the current directory using ‘../’. Otherwise 3279 an absolute path is used, if possible with ‘~/’ for your home 3280 directory. You can force an absolute path with two ‘C-u’ prefixes. 3281 3282‘C-c C-l’ (with point on existing link) 3283 When point is on an existing link, ‘C-c C-l’ allows you to edit the 3284 link and description parts of the link. 3285 3286‘C-c C-o’ (‘org-open-at-point’) 3287 Open link at point. This launches a web browser for URL (using 3288 ‘browse-url-at-point’), run VM/MH-E/Wanderlust/Rmail/Gnus/BBDB for 3289 the corresponding links, and execute the command in a shell link. 3290 When point is on an internal link, this command runs the 3291 corresponding search. When point is on the tags part of a 3292 headline, it creates the corresponding tags view (see *note 3293 Matching tags and properties::). If point is on a timestamp, it 3294 compiles the agenda for that date. Furthermore, it visits text and 3295 remote files in ‘file’ links with Emacs and select a suitable 3296 application for local non-text files. Classification of files is 3297 based on file extension only. See option ‘org-file-apps’. If you 3298 want to override the default application and visit the file with 3299 Emacs, use a ‘C-u’ prefix. If you want to avoid opening in Emacs, 3300 use a ‘C-u C-u’ prefix. 3301 3302 If point is on a headline, but not on a link, offer all links in 3303 the headline and entry text. If you want to setup the frame 3304 configuration for following links, customize 3305 ‘org-link-frame-setup’. 3306 3307‘<RET>’ 3308 When ‘org-return-follows-link’ is set, ‘<RET>’ also follows the 3309 link at point. 3310 3311‘mouse-2’ or ‘mouse-1’ 3312 On links, ‘mouse-1’ and ‘mouse-2’ opens the link just as ‘C-c C-o’ 3313 does. 3314 3315‘mouse-3’ 3316 Like ‘mouse-2’, but force file links to be opened with Emacs, and 3317 internal links to be displayed in another window(6). 3318 3319‘C-c %’ (‘org-mark-ring-push’) 3320 Push the current position onto the Org mark ring, to be able to 3321 return easily. Commands following an internal link do this 3322 automatically. 3323 3324‘C-c &’ (‘org-mark-ring-goto’) 3325 Jump back to a recorded position. A position is recorded by the 3326 commands following internal links, and by ‘C-c %’. Using this 3327 command several times in direct succession moves through a ring of 3328 previously recorded positions. 3329 3330‘C-c C-x C-n’ (‘org-next-link’) 3331‘C-c C-x C-p’ (‘org-previous-link’) 3332 Move forward/backward to the next link in the buffer. At the limit 3333 of the buffer, the search fails once, and then wraps around. The 3334 key bindings for this are really too long; you might want to bind 3335 this also to ‘M-n’ and ‘M-p’. 3336 3337 (with-eval-after-load 'org 3338 (define-key org-mode-map (kbd "M-n") 'org-next-link) 3339 (define-key org-mode-map (kbd "M-p") 'org-previous-link)) 3340 3341 ---------- Footnotes ---------- 3342 3343 (1) If the headline contains a timestamp, it is removed from the 3344link, which results in a wrong link—you should avoid putting a timestamp 3345in the headline. 3346 3347 (2) The Org Id library must first be loaded, either through 3348‘org-customize’, by enabling ‘id’ in ‘org-modules’, or by adding 3349‘(require 'org-id)’ in your Emacs init file. 3350 3351 (3) Note that you do not have to use this command to insert a link. 3352Links in Org are plain text, and you can type or paste them straight 3353into the buffer. By using this command, the links are automatically 3354enclosed in double brackets, and you will be asked for the optional 3355descriptive text. 3356 3357 (4) After insertion of a stored link, the link will be removed from 3358the list of stored links. To keep it in the list for later use, use a 3359triple ‘C-u’ prefix argument to ‘C-c C-l’, or configure the option 3360‘org-link-keep-stored-after-insertion’. 3361 3362 (5) This works if a function has been defined in the ‘:complete’ 3363property of a link in ‘org-link-parameters’. 3364 3365 (6) See the variable ‘org-link-use-indirect-buffer-for-internals’. 3366 3367 3368File: org.info, Node: Using Links Outside Org, Next: Link Abbreviations, Prev: Handling Links, Up: Hyperlinks 3369 33704.6 Using Links Outside Org 3371=========================== 3372 3373You can insert and follow links that have Org syntax not only in Org, 3374but in any Emacs buffer. For this, Org provides two functions: 3375‘org-insert-link-global’ and ‘org-open-at-point-global’. 3376 3377 You might want to bind them to globally available keys. See *note 3378Activation:: for some advice. 3379 3380 3381File: org.info, Node: Link Abbreviations, Next: Search Options, Prev: Using Links Outside Org, Up: Hyperlinks 3382 33834.7 Link Abbreviations 3384====================== 3385 3386Long URL can be cumbersome to type, and often many similar links are 3387needed in a document. For this you can use link abbreviations. An 3388abbreviated link looks like this 3389 3390 [[linkword:tag][description]] 3391 3392where the tag is optional. The _linkword_ must be a word, starting with 3393a letter, followed by letters, numbers, ‘-’, and ‘_’. Abbreviations are 3394resolved according to the information in the variable 3395‘org-link-abbrev-alist’ that relates the linkwords to replacement text. 3396Here is an example: 3397 3398 (setq org-link-abbrev-alist 3399 '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=") 3400 ("Nu Html Checker" . "https://validator.w3.org/nu/?doc=%h") 3401 ("duckduckgo" . "https://duckduckgo.com/?q=%s") 3402 ("omap" . "http://nominatim.openstreetmap.org/search?q=%s&polygon=1") 3403 ("ads" . "https://ui.adsabs.harvard.edu/search/q=%20author%3A\"%s\""))) 3404 3405 If the replacement text contains the string ‘%s’, it is replaced with 3406the tag. Using ‘%h’ instead of ‘%s’ percent-encodes the tag (see the 3407example above, where we need to encode the URL parameter). Using 3408‘%(my-function)’ passes the tag to a custom Lisp function, and replace 3409it by the resulting string. 3410 3411 If the replacement text do not contain any specifier, it is simply 3412appended to the string in order to create the link. 3413 3414 Instead of a string, you may also specify a Lisp function to create 3415the link. Such a function will be called with the tag as the only 3416argument. 3417 3418 With the above setting, you could link to a specific bug with 3419‘[[bugzilla:129]]’, search the web for ‘OrgMode’ with 3420‘[[google:OrgMode]]’, show the map location of the Free Software 3421Foundation ‘[[gmap:51 Franklin Street, Boston]]’ or of Carsten office 3422‘[[omap:Science Park 904, Amsterdam, The Netherlands]]’ and find out 3423what the Org author is doing besides Emacs hacking with 3424‘[[ads:Dominik,C]]’. 3425 3426 If you need special abbreviations just for a single Org buffer, you 3427can define them in the file with 3428 3429 #+LINK: bugzilla http://10.1.2.9/bugzilla/show_bug.cgi?id= 3430 #+LINK: google http://www.google.com/search?q=%s 3431 3432 In-buffer completion (see *note Completion::) can be used after ‘[’ 3433to complete link abbreviations. You may also define a Lisp function 3434that implements special (e.g., completion) support for inserting such a 3435link with ‘C-c C-l’. Such a function should not accept any arguments, 3436and should return the full link with a prefix. You can set the link 3437completion function like this: 3438 3439 (org-link-set-parameter "type" :complete #'some-completion-function) 3440 3441 3442File: org.info, Node: Search Options, Next: Custom Searches, Prev: Link Abbreviations, Up: Hyperlinks 3443 34444.8 Search Options in File Links 3445================================ 3446 3447File links can contain additional information to make Emacs jump to a 3448particular location in the file when following a link. This can be a 3449line number or a search option after a double colon(1). For example, 3450when the command ‘org-store-link’ creates a link (see *note Handling 3451Links::) to a file, it encodes the words in the current line as a search 3452string that can be used to find this line back later when following the 3453link with ‘C-c C-o’. 3454 3455 Note that all search options apply for Attachment links in the same 3456way that they apply for File links. 3457 3458 Here is the syntax of the different ways to attach a search to a file 3459link, together with explanations for each: 3460 3461 [[file:~/code/main.c::255]] 3462 [[file:~/xx.org::My Target]] 3463 [[file:~/xx.org::*My Target]] 3464 [[file:~/xx.org::#my-custom-id]] 3465 [[file:~/xx.org::/regexp/]] 3466 [[attachment:main.c::255]] 3467 3468‘255’ 3469 Jump to line 255. 3470 3471‘My Target’ 3472 Search for a link target ‘<<My Target>>’, or do a text search for 3473 ‘my target’, similar to the search in internal links, see *note 3474 Internal Links::. In HTML export (see *note HTML Export::), such a 3475 file link becomes a HTML reference to the corresponding named 3476 anchor in the linked file. 3477 3478‘*My Target’ 3479 In an Org file, restrict search to headlines. 3480 3481‘#my-custom-id’ 3482 Link to a heading with a ‘CUSTOM_ID’ property 3483 3484‘/REGEXP/’ 3485 Do a regular expression search for REGEXP. This uses the Emacs 3486 command ‘occur’ to list all matches in a separate window. If the 3487 target file is in Org mode, ‘org-occur’ is used to create a sparse 3488 tree with the matches. 3489 3490 As a degenerate case, a file link with an empty file name can be used 3491to search the current file. For example, ‘[[file:::find me]]’ does a 3492search for ‘find me’ in the current file, just as ‘[[find me]]’ would. 3493 3494 ---------- Footnotes ---------- 3495 3496 (1) For backward compatibility, line numbers can also follow a single 3497colon. 3498 3499 3500File: org.info, Node: Custom Searches, Prev: Search Options, Up: Hyperlinks 3501 35024.9 Custom Searches 3503=================== 3504 3505The default mechanism for creating search strings and for doing the 3506actual search related to a file link may not work correctly in all 3507cases. For example, BibTeX database files have many entries like 3508‘year="1993"’ which would not result in good search strings, because the 3509only unique identification for a BibTeX entry is the citation key. 3510 3511 If you come across such a problem, you can write custom functions to 3512set the right search string for a particular file type, and to do the 3513search for the string in the file. Using ‘add-hook’, these functions 3514need to be added to the hook variables 3515‘org-create-file-search-functions’ and 3516‘org-execute-file-search-functions’. See the docstring for these 3517variables for more information. Org actually uses this mechanism for 3518BibTeX database files, and you can use the corresponding code as an 3519implementation example. See the file ‘ol-bibtex.el’. 3520 3521 3522File: org.info, Node: TODO Items, Next: Tags, Prev: Hyperlinks, Up: Top 3523 35245 TODO Items 3525************ 3526 3527Org mode does not maintain TODO lists as separate documents(1). 3528Instead, TODO items are an integral part of the notes file, because TODO 3529items usually come up while taking notes! With Org mode, simply mark 3530any entry in a tree as being a TODO item. In this way, information is 3531not duplicated, and the entire context from which the TODO item emerged 3532is always present. 3533 3534 Of course, this technique for managing TODO items scatters them 3535throughout your notes file. Org mode compensates for this by providing 3536methods to give you an overview of all the things that you have to do. 3537 3538* Menu: 3539 3540* TODO Basics:: Marking and displaying TODO entries. 3541* TODO Extensions:: Workflow and assignments. 3542* Progress Logging:: Dates and notes for progress. 3543* Priorities:: Some things are more important than others. 3544* Breaking Down Tasks:: Splitting a task into manageable pieces. 3545* Checkboxes:: Tick-off lists. 3546 3547 ---------- Footnotes ---------- 3548 3549 (1) Of course, you can make a document that contains only long lists 3550of TODO items, but this is not required. 3551 3552 3553File: org.info, Node: TODO Basics, Next: TODO Extensions, Up: TODO Items 3554 35555.1 Basic TODO Functionality 3556============================ 3557 3558Any headline becomes a TODO item when it starts with the word ‘TODO’, 3559for example: 3560 3561 *** TODO Write letter to Sam Fortune 3562 3563 The most important commands to work with TODO entries are: 3564 3565‘C-c C-t’ (‘org-todo’) 3566 Rotate the TODO state of the current item among 3567 3568 ,-> (unmarked) -> TODO -> DONE --. 3569 '--------------------------------' 3570 3571 If TODO keywords have fast access keys (see *note Fast access to 3572 TODO states::), prompt for a TODO keyword through the fast 3573 selection interface; this is the default behavior when 3574 ‘org-use-fast-todo-selection’ is non-‘nil’. 3575 3576 The same state changing can also be done “remotely” from the agenda 3577 buffer with the ‘t’ command key (see *note Agenda Commands::). 3578 3579‘S-<RIGHT>’ ‘S-<LEFT>’ 3580 Select the following/preceding TODO state, similar to cycling. 3581 Useful mostly if more than two TODO states are possible (see *note 3582 TODO Extensions::). See also *note Conflicts::, for a discussion 3583 of the interaction with shift-selection. See also the variable 3584 ‘org-treat-S-cursor-todo-selection-as-state-change’. 3585 3586‘C-c / t’ (‘org-show-todo-tree’) 3587 View TODO items in a _sparse tree_ (see *note Sparse Trees::). 3588 Folds the entire buffer, but shows all TODO items—with not-DONE 3589 state—and the headings hierarchy above them. With a prefix 3590 argument, or by using ‘C-c / T’, search for a specific TODO. You 3591 are prompted for the keyword, and you can also give a list of 3592 keywords like ‘KWD1|KWD2|...’ to list entries that match any one of 3593 these keywords. With a numeric prefix argument N, show the tree 3594 for the Nth keyword in the variable ‘org-todo-keywords’. With two 3595 prefix arguments, find all TODO states, both un-done and done. 3596 3597‘M-x org-agenda t’ (‘org-todo-list’) 3598 Show the global TODO list. Collects the TODO items (with not-DONE 3599 states) from all agenda files (see *note Agenda Views::) into a 3600 single buffer. The new buffer is in Org Agenda mode, which 3601 provides commands to examine and manipulate the TODO entries from 3602 the new buffer (see *note Agenda Commands::). See *note Global 3603 TODO list::, for more information. 3604 3605‘S-M-<RET>’ (‘org-insert-todo-heading’) 3606 Insert a new TODO entry below the current one. 3607 3608 Changing a TODO state can also trigger tag changes. See the 3609docstring of the option ‘org-todo-state-tags-triggers’ for details. 3610 3611 3612File: org.info, Node: TODO Extensions, Next: Progress Logging, Prev: TODO Basics, Up: TODO Items 3613 36145.2 Extended Use of TODO Keywords 3615================================= 3616 3617By default, marked TODO entries have one of only two states: TODO and 3618DONE. Org mode allows you to classify TODO items in more complex ways 3619with _TODO keywords_ (stored in ‘org-todo-keywords’). With special 3620setup, the TODO keyword system can work differently in different files. 3621 3622 Note that _tags_ are another way to classify headlines in general and 3623TODO items in particular (see *note Tags::). 3624 3625* Menu: 3626 3627* Workflow states:: From TODO to DONE in steps. 3628* TODO types:: I do this, Fred does the rest. 3629* Multiple sets in one file:: Mixing it all, still finding your way. 3630* Fast access to TODO states:: Single letter selection of state. 3631* Per-file keywords:: Different files, different requirements. 3632* Faces for TODO keywords:: Highlighting states. 3633* TODO dependencies:: When one task needs to wait for others. 3634 3635 3636File: org.info, Node: Workflow states, Next: TODO types, Up: TODO Extensions 3637 36385.2.1 TODO keywords as workflow states 3639-------------------------------------- 3640 3641You can use TODO keywords to indicate different, possibly _sequential_ 3642states in the process of working on an item, for example(1): 3643 3644 (setq org-todo-keywords 3645 '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED"))) 3646 3647 The vertical bar separates the TODO keywords (states that _need 3648action_) from the DONE states (which need _no further action_). If you 3649do not provide the separator bar, the last state is used as the DONE 3650state. 3651 3652 With this setup, the command ‘C-c C-t’ cycles an entry from ‘TODO’ to 3653‘FEEDBACK’, then to ‘VERIFY’, and finally to ‘DONE’ and ‘DELEGATED’. 3654You may also use a numeric prefix argument to quickly select a specific 3655state. For example ‘C-3 C-c C-t’ changes the state immediately to 3656‘VERIFY’. Or you can use ‘S-<RIGHT>’ and ‘S-<LEFT>’ to go forward and 3657backward through the states. If you define many keywords, you can use 3658in-buffer completion (see *note Completion::) or a special one-key 3659selection scheme (see *note Fast access to TODO states::) to insert 3660these words into the buffer. Changing a TODO state can be logged with a 3661timestamp, see *note Tracking TODO state changes::, for more 3662information. 3663 3664 ---------- Footnotes ---------- 3665 3666 (1) Changing the variable ‘org-todo-keywords’ only becomes effective 3667after restarting Org mode in a buffer. 3668 3669 3670File: org.info, Node: TODO types, Next: Multiple sets in one file, Prev: Workflow states, Up: TODO Extensions 3671 36725.2.2 TODO keywords as types 3673---------------------------- 3674 3675The second possibility is to use TODO keywords to indicate different 3676_types_ of action items. For example, you might want to indicate that 3677items are for “work” or “home”. Or, when you work with several people 3678on a single project, you might want to assign action items directly to 3679persons, by using their names as TODO keywords. This type of 3680functionality is actually much better served by using tags (see *note 3681Tags::), so the TODO implementation is kept just for backward 3682compatibility. 3683 3684 Using TODO types, it would be set up like this: 3685 3686 (setq org-todo-keywords '((type "Fred" "Sara" "Lucy" "|" "DONE"))) 3687 3688 In this case, different keywords do not indicate states, but rather 3689different types. So the normal work flow would be to assign a task to a 3690person, and later to mark it DONE. Org mode supports this style by 3691adapting the workings of the command ‘C-c C-t’(1). When used several 3692times in succession, it still cycles through all names, in order to 3693first select the right type for a task. But when you return to the item 3694after some time and execute ‘C-c C-t’ again, it will switch from any 3695name directly to ‘DONE’. Use prefix arguments or completion to quickly 3696select a specific name. You can also review the items of a specific 3697TODO type in a sparse tree by using a numeric prefix to ‘C-c / t’. For 3698example, to see all things Lucy has to do, you would use ‘C-3 C-c / t’. 3699To collect Lucy’s items from all agenda files into a single buffer, you 3700would use the numeric prefix argument as well when creating the global 3701TODO list: ‘C-3 M-x org-agenda t’. 3702 3703 ---------- Footnotes ---------- 3704 3705 (1) This is also true for the ‘t’ command in the agenda buffer. 3706 3707 3708File: org.info, Node: Multiple sets in one file, Next: Fast access to TODO states, Prev: TODO types, Up: TODO Extensions 3709 37105.2.3 Multiple keyword sets in one file 3711--------------------------------------- 3712 3713Sometimes you may want to use different sets of TODO keywords in 3714parallel. For example, you may want to have the basic TODO/DONE, but 3715also a workflow for bug fixing, and a separate state indicating that an 3716item has been canceled—so it is not DONE, but also does not require 3717action. Your setup would then look like this: 3718 3719 (setq org-todo-keywords 3720 '((sequence "TODO" "|" "DONE") 3721 (sequence "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED") 3722 (sequence "|" "CANCELED"))) 3723 3724 The keywords should all be different, this helps Org mode keep track 3725of which subsequence should be used for a given entry. In this setup, 3726‘C-c C-t’ only operates within a sub-sequence, so it switches from 3727‘DONE’ to (nothing) to ‘TODO’, and from ‘FIXED’ to (nothing) to 3728‘REPORT’. Therefore you need a mechanism to initially select the 3729correct sequence. In addition to typing a keyword or using completion 3730(see *note Completion::), you may also apply the following commands: 3731 3732‘C-u C-u C-c C-t’ 3733‘C-S-<RIGHT>’ 3734‘C-S-<LEFT>’ 3735 These keys jump from one TODO sub-sequence to the next. In the 3736 above example, ‘C-u C-u C-c C-t’ or ‘C-S-<RIGHT>’ would jump from 3737 ‘TODO’ or ‘DONE’ to ‘REPORT’, and any of the words in the second 3738 row to ‘CANCELED’. Note that the ‘C-S-’ key binding conflict with 3739 shift-selection (see *note Conflicts::). 3740 3741‘S-<RIGHT>’ 3742‘S-<LEFT>’ 3743 ‘S-<LEFT>’ and ‘S-<RIGHT>’ walk through _all_ keywords from all 3744 sub-sequences, so for example ‘S-<RIGHT>’ would switch from ‘DONE’ 3745 to ‘REPORT’ in the example above. For a discussion of the 3746 interaction with shift-selection, see *note Conflicts::. 3747 3748 3749File: org.info, Node: Fast access to TODO states, Next: Per-file keywords, Prev: Multiple sets in one file, Up: TODO Extensions 3750 37515.2.4 Fast access to TODO states 3752-------------------------------- 3753 3754If you would like to quickly change an entry to an arbitrary TODO state 3755instead of cycling through the states, you can set up keys for 3756single-letter access to the states. This is done by adding the 3757selection character after each keyword, in parentheses(1). For example: 3758 3759 (setq org-todo-keywords 3760 '((sequence "TODO(t)" "|" "DONE(d)") 3761 (sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)") 3762 (sequence "|" "CANCELED(c)"))) 3763 3764 If you then press ‘C-c C-t’ followed by the selection key, the entry 3765is switched to this state. ‘<SPC>’ can be used to remove any TODO 3766keyword from an entry(2). 3767 3768 ---------- Footnotes ---------- 3769 3770 (1) All characters are allowed except ‘@’, ‘^’ and ‘!’, which have a 3771special meaning here. 3772 3773 (2) Check also the variable ‘org-fast-tag-selection-include-todo’, it 3774allows you to change the TODO state through the tags interface (see 3775*note Setting Tags::), in case you like to mingle the two concepts. 3776Note that this means you need to come up with unique keys across both 3777sets of keywords. 3778 3779 3780File: org.info, Node: Per-file keywords, Next: Faces for TODO keywords, Prev: Fast access to TODO states, Up: TODO Extensions 3781 37825.2.5 Setting up keywords for individual files 3783---------------------------------------------- 3784 3785It can be very useful to use different aspects of the TODO mechanism in 3786different files. For file-local settings, you need to add special lines 3787to the file which set the keywords and interpretation for that file 3788only. For example, to set one of the two examples discussed above, you 3789need one of the following lines, starting in column zero anywhere in the 3790file: 3791 3792 #+TODO: TODO FEEDBACK VERIFY | DONE CANCELED 3793 3794 You may also write ‘#+SEQ_TODO’ to be explicit about the 3795interpretation, but it means the same as ‘#+TODO’, or 3796 3797 #+TYP_TODO: Fred Sara Lucy Mike | DONE 3798 3799 A setup for using several sets in parallel would be: 3800 3801 #+TODO: TODO | DONE 3802 #+TODO: REPORT BUG KNOWNCAUSE | FIXED 3803 #+TODO: | CANCELED 3804 3805 To make sure you are using the correct keyword, type ‘#+’ into the 3806buffer and then use ‘M-<TAB>’ to complete it (see *note Completion::). 3807 3808 Remember that the keywords after the vertical bar—or the last keyword 3809if no bar is there—must always mean that the item is DONE, although you 3810may use a different word. After changing one of these lines, use ‘C-c 3811C-c’ with point still in the line to make the changes known to Org 3812mode(1). 3813 3814 ---------- Footnotes ---------- 3815 3816 (1) Org mode parses these lines only when Org mode is activated after 3817visiting a file. ‘C-c C-c’ with point in a line starting with ‘#+’ is 3818simply restarting Org mode for the current buffer. 3819 3820 3821File: org.info, Node: Faces for TODO keywords, Next: TODO dependencies, Prev: Per-file keywords, Up: TODO Extensions 3822 38235.2.6 Faces for TODO keywords 3824----------------------------- 3825 3826Org mode highlights TODO keywords with special faces: ‘org-todo’ for 3827keywords indicating that an item still has to be acted upon, and 3828‘org-done’ for keywords indicating that an item is finished. If you are 3829using more than two different states, you might want to use special 3830faces for some of them. This can be done using the variable 3831‘org-todo-keyword-faces’. For example: 3832 3833 (setq org-todo-keyword-faces 3834 '(("TODO" . org-warning) ("STARTED" . "yellow") 3835 ("CANCELED" . (:foreground "blue" :weight bold)))) 3836 3837 While using a list with face properties as shown for ‘CANCELED’ 3838_should_ work, this does not always seem to be the case. If necessary, 3839define a special face and use that. A string is interpreted as a color. 3840The variable ‘org-faces-easy-properties’ determines if that color is 3841interpreted as a foreground or a background color. 3842 3843 3844File: org.info, Node: TODO dependencies, Prev: Faces for TODO keywords, Up: TODO Extensions 3845 38465.2.7 TODO dependencies 3847----------------------- 3848 3849The structure of Org files—hierarchy and lists—makes it easy to define 3850TODO dependencies. Usually, a parent TODO task should not be marked as 3851done until all TODO subtasks, or children tasks, are marked as done. 3852Sometimes there is a logical sequence to (sub)tasks, so that one subtask 3853cannot be acted upon before all siblings above it have been marked as 3854done. If you customize the variable ‘org-enforce-todo-dependencies’, 3855Org blocks entries from changing state to DONE while they have TODO 3856children that are not DONE. Furthermore, if an entry has a property 3857‘ORDERED’, each of its TODO children is blocked until all earlier 3858siblings are marked as done. Here is an example: 3859 3860 * TODO Blocked until (two) is done 3861 ** DONE one 3862 ** TODO two 3863 3864 * Parent 3865 :PROPERTIES: 3866 :ORDERED: t 3867 :END: 3868 ** TODO a 3869 ** TODO b, needs to wait for (a) 3870 ** TODO c, needs to wait for (a) and (b) 3871 3872 You can ensure an entry is never blocked by using the ‘NOBLOCKING’ 3873property (see *note Properties and Columns::): 3874 3875 * This entry is never blocked 3876 :PROPERTIES: 3877 :NOBLOCKING: t 3878 :END: 3879 3880‘C-c C-x o’ (‘org-toggle-ordered-property’) 3881 Toggle the ‘ORDERED’ property of the current entry. A property is 3882 used for this behavior because this should be local to the current 3883 entry, not inherited from entries above like a tag (see *note 3884 Tags::). However, if you would like to _track_ the value of this 3885 property with a tag for better visibility, customize the variable 3886 ‘org-track-ordered-property-with-tag’. 3887 3888‘C-u C-u C-u C-c C-t’ 3889 Change TODO state, regardless of any state blocking. 3890 3891 If you set the variable ‘org-agenda-dim-blocked-tasks’, TODO entries 3892that cannot be marked as done because of unmarked children are shown in 3893a dimmed font or even made invisible in agenda views (see *note Agenda 3894Views::). 3895 3896 You can also block changes of TODO states by using checkboxes (see 3897*note Checkboxes::). If you set the variable 3898‘org-enforce-todo-checkbox-dependencies’, an entry that has unchecked 3899checkboxes is blocked from switching to DONE. 3900 3901 If you need more complex dependency structures, for example 3902dependencies between entries in different trees or files, check out the 3903contributed module ‘org-depend.el’. 3904 3905 3906File: org.info, Node: Progress Logging, Next: Priorities, Prev: TODO Extensions, Up: TODO Items 3907 39085.3 Progress Logging 3909==================== 3910 3911To record a timestamp and a note when changing a TODO state, call the 3912command ‘org-todo’ with a prefix argument. 3913 3914‘C-u C-c C-t’ (‘org-todo’) 3915 Prompt for a note and record a the time of the TODO state change. 3916 The note is inserted as a list item below the headline, but can 3917 also be placed into a drawer, see *note Tracking TODO state 3918 changes::. 3919 3920 If you want to be more systematic, Org mode can automatically record 3921a timestamp and optionally a note when you mark a TODO item as DONE, or 3922even each time you change the state of a TODO item. This system is 3923highly configurable, settings can be on a per-keyword basis and can be 3924localized to a file or even a subtree. For information on how to clock 3925working time for a task, see *note Clocking Work Time::. 3926 3927* Menu: 3928 3929* Closing items:: When was this entry marked as done? 3930* Tracking TODO state changes:: When did the status change? 3931* Tracking your habits:: How consistent have you been? 3932 3933 3934File: org.info, Node: Closing items, Next: Tracking TODO state changes, Up: Progress Logging 3935 39365.3.1 Closing items 3937------------------- 3938 3939The most basic automatic logging is to keep track of _when_ a certain 3940TODO item was marked as done. This can be achieved with(1) 3941 3942 (setq org-log-done 'time) 3943 3944Then each time you turn an entry from a TODO (not-done) state into any 3945of the DONE states, a line ‘CLOSED: [timestamp]’ is inserted just after 3946the headline. If you turn the entry back into a TODO item through 3947further state cycling, that line is removed again. If you turn the 3948entry back to a non-TODO state (by pressing ‘C-c C-t <SPC>’ for 3949example), that line is also removed, unless you set 3950‘org-closed-keep-when-no-todo’ to non-‘nil’. If you want to record a 3951note along with the timestamp, use(2) 3952 3953 (setq org-log-done 'note) 3954 3955You are then prompted for a note, and that note is stored below the 3956entry with a ‘Closing Note’ heading. 3957 3958 ---------- Footnotes ---------- 3959 3960 (1) The corresponding in-buffer setting is: ‘#+STARTUP: logdone’. 3961 3962 (2) The corresponding in-buffer setting is: ‘#+STARTUP: lognotedone’. 3963 3964 3965File: org.info, Node: Tracking TODO state changes, Next: Tracking your habits, Prev: Closing items, Up: Progress Logging 3966 39675.3.2 Tracking TODO state changes 3968--------------------------------- 3969 3970You might want to automatically keep track of when a state change 3971occurred and maybe take a note about this change. You can either record 3972just a timestamp, or a time-stamped note. These records are inserted 3973after the headline as an itemized list, newest first(1). When taking a 3974lot of notes, you might want to get the notes out of the way into a 3975drawer (see *note Drawers::). Customize the variable 3976‘org-log-into-drawer’ to get this behavior—the recommended drawer for 3977this is called ‘LOGBOOK’(2). You can also overrule the setting of this 3978variable for a subtree by setting a ‘LOG_INTO_DRAWER’ property. 3979 3980 Since it is normally too much to record a note for every state, Org 3981mode expects configuration on a per-keyword basis for this. This is 3982achieved by adding special markers ‘!’ (for a timestamp) or ‘@’ (for a 3983note with timestamp) in parentheses after each keyword. For example, 3984with the setting 3985 3986 (setq org-todo-keywords 3987 '((sequence "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CANCELED(c@)"))) 3988 3989To record a timestamp without a note for TODO keywords configured with 3990‘@’, just type ‘C-c C-c’ to enter a blank note when prompted. 3991 3992 You not only define global TODO keywords and fast access keys, but 3993also request that a time is recorded when the entry is set to ‘DONE’, 3994and that a note is recorded when switching to ‘WAIT’ or ‘CANCELED’(3). 3995The setting for ‘WAIT’ is even more special: the ‘!’ after the slash 3996means that in addition to the note taken when entering the state, a 3997timestamp should be recorded when _leaving_ the ‘WAIT’ state, if and 3998only if the _target_ state does not configure logging for entering it. 3999So it has no effect when switching from ‘WAIT’ to ‘DONE’, because ‘DONE’ 4000is configured to record a timestamp only. But when switching from 4001‘WAIT’ back to ‘TODO’, the ‘/!’ in the ‘WAIT’ setting now triggers a 4002timestamp even though ‘TODO’ has no logging configured. 4003 4004 You can use the exact same syntax for setting logging preferences 4005local to a buffer: 4006 4007 #+TODO: TODO(t) WAIT(w@/!) | DONE(d!) CANCELED(c@) 4008 4009 In order to define logging settings that are local to a subtree or a 4010single item, define a ‘LOGGING’ property in this entry. Any non-empty 4011‘LOGGING’ property resets all logging settings to ‘nil’. You may then 4012turn on logging for this specific tree using ‘STARTUP’ keywords like 4013‘lognotedone’ or ‘logrepeat’, as well as adding state specific settings 4014like ‘TODO(!)’. For example: 4015 4016 * TODO Log each state with only a time 4017 :PROPERTIES: 4018 :LOGGING: TODO(!) WAIT(!) DONE(!) CANCELED(!) 4019 :END: 4020 * TODO Only log when switching to WAIT, and when repeating 4021 :PROPERTIES: 4022 :LOGGING: WAIT(@) logrepeat 4023 :END: 4024 * TODO No logging at all 4025 :PROPERTIES: 4026 :LOGGING: nil 4027 :END: 4028 4029 ---------- Footnotes ---------- 4030 4031 (1) See the variable ‘org-log-states-order-reversed’. 4032 4033 (2) Note that the ‘LOGBOOK’ drawer is unfolded when pressing ‘<SPC>’ 4034in the agenda to show an entry—use ‘C-u <SPC>’ to keep it folded here. 4035 4036 (3) It is possible that Org mode records two timestamps when you are 4037using both ‘org-log-done’ and state change logging. However, it never 4038prompts for two notes: if you have configured both, the state change 4039recording note takes precedence and cancel the closing note. 4040 4041 4042File: org.info, Node: Tracking your habits, Prev: Tracking TODO state changes, Up: Progress Logging 4043 40445.3.3 Tracking your habits 4045-------------------------- 4046 4047Org has the ability to track the consistency of a special category of 4048TODO, called “habits.” To use habits, you have to enable the ‘habits’ 4049module by customizing the variable ‘org-modules’. 4050 4051 A habit has the following properties: 4052 4053 1. The habit is a TODO item, with a TODO keyword representing an open 4054 state. 4055 4056 2. The property ‘STYLE’ is set to the value ‘habit’ (see *note 4057 Properties and Columns::). 4058 4059 3. The TODO has a scheduled date, usually with a ‘.+’ style repeat 4060 interval. A ‘++’ style may be appropriate for habits with time 4061 constraints, e.g., must be done on weekends, or a ‘+’ style for an 4062 unusual habit that can have a backlog, e.g., weekly reports. 4063 4064 4. The TODO may also have minimum and maximum ranges specified by 4065 using the syntax ‘.+2d/3d’, which says that you want to do the task 4066 at least every three days, but at most every two days. 4067 4068 5. State logging for the DONE state is enabled (see *note Tracking 4069 TODO state changes::), in order for historical data to be 4070 represented in the consistency graph. If it is not enabled it is 4071 not an error, but the consistency graphs are largely meaningless. 4072 4073 To give you an idea of what the above rules look like in action, 4074here’s an actual habit with some history: 4075 4076 ** TODO Shave 4077 SCHEDULED: <2009-10-17 Sat .+2d/4d> 4078 :PROPERTIES: 4079 :STYLE: habit 4080 :LAST_REPEAT: [2009-10-19 Mon 00:36] 4081 :END: 4082 - State "DONE" from "TODO" [2009-10-15 Thu] 4083 - State "DONE" from "TODO" [2009-10-12 Mon] 4084 - State "DONE" from "TODO" [2009-10-10 Sat] 4085 - State "DONE" from "TODO" [2009-10-04 Sun] 4086 - State "DONE" from "TODO" [2009-10-02 Fri] 4087 - State "DONE" from "TODO" [2009-09-29 Tue] 4088 - State "DONE" from "TODO" [2009-09-25 Fri] 4089 - State "DONE" from "TODO" [2009-09-19 Sat] 4090 - State "DONE" from "TODO" [2009-09-16 Wed] 4091 - State "DONE" from "TODO" [2009-09-12 Sat] 4092 4093 What this habit says is: I want to shave at most every 2 days—given 4094by the ‘SCHEDULED’ date and repeat interval—and at least every 4 days. 4095If today is the 15th, then the habit first appears in the agenda (see 4096*note Agenda Views::) on Oct 17, after the minimum of 2 days has 4097elapsed, and will appear overdue on Oct 19, after four days have 4098elapsed. 4099 4100 What’s really useful about habits is that they are displayed along 4101with a consistency graph, to show how consistent you’ve been at getting 4102that task done in the past. This graph shows every day that the task 4103was done over the past three weeks, with colors for each day. The 4104colors used are: 4105 4106Blue 4107 If the task was not to be done yet on that day. 4108Green 4109 If the task could have been done on that day. 4110Yellow 4111 If the task was going to be overdue the next day. 4112Red 4113 If the task was overdue on that day. 4114 4115 In addition to coloring each day, the day is also marked with an 4116asterisk if the task was actually done that day, and an exclamation mark 4117to show where the current day falls in the graph. 4118 4119 There are several configuration variables that can be used to change 4120the way habits are displayed in the agenda. 4121 4122‘org-habit-graph-column’ 4123 The buffer column at which the consistency graph should be drawn. 4124 This overwrites any text in that column, so it is a good idea to 4125 keep your habits’ titles brief and to the point. 4126 4127‘org-habit-preceding-days’ 4128 The amount of history, in days before today, to appear in 4129 consistency graphs. 4130 4131‘org-habit-following-days’ 4132 The number of days after today that appear in consistency graphs. 4133 4134‘org-habit-show-habits-only-for-today’ 4135 If non-‘nil’, only show habits in today’s agenda view. The default 4136 value is ‘t’. Pressing ‘C-u K’ in the agenda toggles this 4137 variable. 4138 4139 Lastly, pressing ‘K’ in the agenda buffer causes habits to 4140temporarily be disabled and do not appear at all. Press ‘K’ again to 4141bring them back. They are also subject to tag filtering, if you have 4142habits which should only be done in certain contexts, for example. 4143 4144 4145File: org.info, Node: Priorities, Next: Breaking Down Tasks, Prev: Progress Logging, Up: TODO Items 4146 41475.4 Priorities 4148============== 4149 4150If you use Org mode extensively, you may end up with enough TODO items 4151that it starts to make sense to prioritize them. Prioritizing can be 4152done by placing a _priority cookie_ into the headline of a TODO item 4153right after the TODO keyword, like this: 4154 4155 *** TODO [#A] Write letter to Sam Fortune 4156 4157 By default, Org mode supports three priorities: ‘A’, ‘B’, and ‘C’. 4158‘A’ is the highest priority. An entry without a cookie is treated as 4159equivalent if it had priority ‘B’. Priorities make a difference only 4160for sorting in the agenda (see *note Weekly/daily agenda::). Outside 4161the agenda, they have no inherent meaning to Org mode. The cookies are 4162displayed with the face defined by the variable ‘org-priority-faces’, 4163which can be customized. 4164 4165 You can also use numeric values for priorities, such as 4166 4167 *** TODO [#1] Write letter to Sam Fortune 4168 4169 When using numeric priorities, you need to set 4170‘org-priority-highest’, ‘org-priority-lowest’ and ‘org-priority-default’ 4171to integers, which must all be strictly inferior to 65. 4172 4173 Priorities can be attached to any outline node; they do not need to 4174be TODO items. 4175 4176‘C-c ,’ (‘org-priority’) 4177 Set the priority of the current headline. The command prompts for 4178 a priority character ‘A’, ‘B’ or ‘C’. When you press ‘<SPC>’ 4179 instead, the priority cookie, if one is set, is removed from the 4180 headline. The priorities can also be changed “remotely” from the 4181 agenda buffer with the ‘,’ command (see *note Agenda Commands::). 4182 4183‘S-<UP>’ (‘org-priority-up’) 4184‘S-<DOWN>’ (‘org-priority-down’) 4185 Increase/decrease the priority of the current headline(1). Note 4186 that these keys are also used to modify timestamps (see *note 4187 Creating Timestamps::). See also *note Conflicts::, for a 4188 discussion of the interaction with shift-selection. 4189 4190 You can change the range of allowed priorities by setting the 4191variables ‘org-priority-highest’, ‘org-priority-lowest’, and 4192‘org-priority-default’. For an individual buffer, you may set these 4193values (highest, lowest, default) like this (please make sure that the 4194highest priority is earlier in the alphabet than the lowest priority): 4195 4196 #+PRIORITIES: A C B 4197 4198 Or, using numeric values: 4199 4200 #+PRIORITIES: 1 10 5 4201 4202 ---------- Footnotes ---------- 4203 4204 (1) See also the option ‘org-priority-start-cycle-with-default’. 4205 4206 4207File: org.info, Node: Breaking Down Tasks, Next: Checkboxes, Prev: Priorities, Up: TODO Items 4208 42095.5 Breaking Down Tasks into Subtasks 4210===================================== 4211 4212It is often advisable to break down large tasks into smaller, manageable 4213subtasks. You can do this by creating an outline tree below a TODO 4214item, with detailed subtasks on the tree(1). To keep an overview of the 4215fraction of subtasks that have already been marked as done, insert 4216either ‘[/]’ or ‘[%]’ anywhere in the headline. These cookies are 4217updated each time the TODO status of a child changes, or when pressing 4218‘C-c C-c’ on the cookie. For example: 4219 4220 * Organize Party [33%] 4221 ** TODO Call people [1/2] 4222 *** TODO Peter 4223 *** DONE Sarah 4224 ** TODO Buy food 4225 ** DONE Talk to neighbor 4226 4227 If a heading has both checkboxes and TODO children below it, the 4228meaning of the statistics cookie become ambiguous. Set the property 4229‘COOKIE_DATA’ to either ‘checkbox’ or ‘todo’ to resolve this issue. 4230 4231 If you would like to have the statistics cookie count any TODO 4232entries in the subtree (not just direct children), configure the 4233variable ‘org-hierarchical-todo-statistics’. To do this for a single 4234subtree, include the word ‘recursive’ into the value of the 4235‘COOKIE_DATA’ property. 4236 4237 * Parent capturing statistics [2/20] 4238 :PROPERTIES: 4239 :COOKIE_DATA: todo recursive 4240 :END: 4241 4242 If you would like a TODO entry to automatically change to DONE when 4243all children are done, you can use the following setup: 4244 4245 (defun org-summary-todo (n-done n-not-done) 4246 "Switch entry to DONE when all subentries are done, to TODO otherwise." 4247 (let (org-log-done org-log-states) ; turn off logging 4248 (org-todo (if (= n-not-done 0) "DONE" "TODO")))) 4249 4250 (add-hook 'org-after-todo-statistics-hook 'org-summary-todo) 4251 4252 Another possibility is the use of checkboxes to identify (a hierarchy 4253of) a large number of subtasks (see *note Checkboxes::). 4254 4255 ---------- Footnotes ---------- 4256 4257 (1) To keep subtasks out of the global TODO list, see the option 4258‘org-agenda-todo-list-sublevels’. 4259 4260 4261File: org.info, Node: Checkboxes, Prev: Breaking Down Tasks, Up: TODO Items 4262 42635.6 Checkboxes 4264============== 4265 4266Every item in a plain list(1) (see *note Plain Lists::) can be made into 4267a checkbox by starting it with the string ‘[ ]’. This feature is 4268similar to TODO items (see *note TODO Items::), but is more lightweight. 4269Checkboxes are not included into the global TODO list, so they are often 4270great to split a task into a number of simple steps. Or you can use 4271them in a shopping list. 4272 4273 Here is an example of a checkbox list. 4274 4275 * TODO Organize party [2/4] 4276 - [-] call people [1/3] 4277 - [ ] Peter 4278 - [X] Sarah 4279 - [ ] Sam 4280 - [X] order food 4281 - [ ] think about what music to play 4282 - [X] talk to the neighbors 4283 4284 Checkboxes work hierarchically, so if a checkbox item has children 4285that are checkboxes, toggling one of the children checkboxes makes the 4286parent checkbox reflect if none, some, or all of the children are 4287checked. 4288 4289 The ‘[2/4]’ and ‘[1/3]’ in the first and second line are cookies 4290indicating how many checkboxes present in this entry have been checked 4291off, and the total number of checkboxes present. This can give you an 4292idea on how many checkboxes remain, even without opening a folded entry. 4293The cookies can be placed into a headline or into (the first line of) a 4294plain list item. Each cookie covers checkboxes of direct children 4295structurally below the headline/item on which the cookie appears(2). 4296You have to insert the cookie yourself by typing either ‘[/]’ or ‘[%]’. 4297With ‘[/]’ you get an ‘n out of m’ result, as in the examples above. 4298With ‘[%]’ you get information about the percentage of checkboxes 4299checked (in the above example, this would be ‘[50%]’ and ‘[33%]’, 4300respectively). In a headline, a cookie can count either checkboxes 4301below the heading or TODO states of children, and it displays whatever 4302was changed last. Set the property ‘COOKIE_DATA’ to either ‘checkbox’ 4303or ‘todo’ to resolve this issue. 4304 4305 If the current outline node has an ‘ORDERED’ property, checkboxes 4306must be checked off in sequence, and an error is thrown if you try to 4307check off a box while there are unchecked boxes above it. 4308 4309 The following commands work with checkboxes: 4310 4311‘C-c C-c’ (‘org-toggle-checkbox’) 4312 Toggle checkbox status or—with prefix argument—checkbox presence at 4313 point. With a single prefix argument, add an empty checkbox or 4314 remove the current one(3). With a double prefix argument, set it 4315 to ‘[-]’, which is considered to be an intermediate state. 4316 4317‘C-c C-x C-b’ (‘org-toggle-checkbox’) 4318 Toggle checkbox status or—with prefix argument—checkbox presence at 4319 point. With double prefix argument, set it to ‘[-]’, which is 4320 considered to be an intermediate state. 4321 4322 • If there is an active region, toggle the first checkbox in the 4323 region and set all remaining boxes to the same status as the 4324 first. With a prefix argument, add or remove the checkbox for 4325 all items in the region. 4326 4327 • If point is in a headline, toggle checkboxes in the region 4328 between this headline and the next—so _not_ the entire 4329 subtree. 4330 4331 • If there is no active region, just toggle the checkbox at 4332 point. 4333 4334‘C-c C-x C-r’ (‘org-toggle-radio-button’) 4335 Toggle checkbox status by using the checkbox of the item at point 4336 as a radio button: when the checkbox is turned on, all other 4337 checkboxes on the same level will be turned off. With a universal 4338 prefix argument, toggle the presence of the checkbox. With a 4339 double prefix argument, set it to ‘[-]’. 4340 4341 ‘C-c C-c’ can be told to consider checkboxes as radio buttons by 4342 setting ‘#+ATTR_ORG: :radio t’ right before the list or by calling 4343 ‘M-x org-list-checkbox-radio-mode’ to activate this minor mode. 4344 4345‘M-S-<RET>’ (‘org-insert-todo-heading’) 4346 Insert a new item with a checkbox. This works only if point is 4347 already in a plain list item (see *note Plain Lists::). 4348 4349‘C-c C-x o’ (‘org-toggle-ordered-property’) 4350 Toggle the ‘ORDERED’ property of the entry, to toggle if checkboxes 4351 must be checked off in sequence. A property is used for this 4352 behavior because this should be local to the current entry, not 4353 inherited like a tag. However, if you would like to _track_ the 4354 value of this property with a tag for better visibility, customize 4355 ‘org-track-ordered-property-with-tag’. 4356 4357‘C-c #’ (‘org-update-statistics-cookies’) 4358 Update the statistics cookie in the current outline entry. When 4359 called with a ‘C-u’ prefix, update the entire file. Checkbox 4360 statistic cookies are updated automatically if you toggle 4361 checkboxes with ‘C-c C-c’ and make new ones with ‘M-S-<RET>’. TODO 4362 statistics cookies update when changing TODO states. If you delete 4363 boxes/entries or add/change them by hand, use this command to get 4364 things back into sync. 4365 4366 ---------- Footnotes ---------- 4367 4368 (1) With the exception of description lists. But you can allow it by 4369modifying ‘org-list-automatic-rules’ accordingly. 4370 4371 (2) Set the variable ‘org-hierarchical-checkbox-statistics’ if you 4372want such cookies to count all checkboxes below the cookie, not just 4373those belonging to direct children. 4374 4375 (3) ‘C-u C-c C-c’ on the _first_ item of a list with no checkbox adds 4376checkboxes to the rest of the list. 4377 4378 4379File: org.info, Node: Tags, Next: Properties and Columns, Prev: TODO Items, Up: Top 4380 43816 Tags 4382****** 4383 4384An excellent way to implement labels and contexts for cross-correlating 4385information is to assign _tags_ to headlines. Org mode has extensive 4386support for tags. 4387 4388 Every headline can contain a list of tags; they occur at the end of 4389the headline. Tags are normal words containing letters, numbers, ‘_’, 4390and ‘@’. Tags must be preceded and followed by a single colon, e.g., 4391‘:work:’. Several tags can be specified, as in ‘:work:urgent:’. Tags 4392by default are in bold face with the same color as the headline. You 4393may specify special faces for specific tags using the variable 4394‘org-tag-faces’, in much the same way as you can for TODO keywords (see 4395*note Faces for TODO keywords::). 4396 4397* Menu: 4398 4399* Tag Inheritance:: Tags use the tree structure of an outline. 4400* Setting Tags:: How to assign tags to a headline. 4401* Tag Hierarchy:: Create a hierarchy of tags. 4402* Tag Searches:: Searching for combinations of tags. 4403 4404 4405File: org.info, Node: Tag Inheritance, Next: Setting Tags, Up: Tags 4406 44076.1 Tag Inheritance 4408=================== 4409 4410_Tags_ make use of the hierarchical structure of outline trees. If a 4411heading has a certain tag, all subheadings inherit the tag as well. For 4412example, in the list 4413 4414 * Meeting with the French group :work: 4415 ** Summary by Frank :boss:notes: 4416 *** TODO Prepare slides for him :action: 4417 4418the final heading has the tags ‘work’, ‘boss’, ‘notes’, and ‘action’ 4419even though the final heading is not explicitly marked with those tags. 4420You can also set tags that all entries in a file should inherit just as 4421if these tags were defined in a hypothetical level zero that surrounds 4422the entire file. Use a line like this(1) 4423 4424 #+FILETAGS: :Peter:Boss:Secret: 4425 4426 To limit tag inheritance to specific tags, or to turn it off 4427entirely, use the variables ‘org-use-tag-inheritance’ and 4428‘org-tags-exclude-from-inheritance’. 4429 4430 When a headline matches during a tags search while tag inheritance is 4431turned on, all the sublevels in the same tree—for a simple match 4432form—match as well(2). The list of matches may then become very long. 4433If you only want to see the first tags match in a subtree, configure the 4434variable ‘org-tags-match-list-sublevels’ (not recommended). 4435 4436 Tag inheritance is relevant when the agenda search tries to match a 4437tag, either in the ‘tags’ or ‘tags-todo’ agenda types. In other agenda 4438types, ‘org-use-tag-inheritance’ has no effect. Still, you may want to 4439have your tags correctly set in the agenda, so that tag filtering works 4440fine, with inherited tags. Set ‘org-agenda-use-tag-inheritance’ to 4441control this: the default value includes all agenda types, but setting 4442this to ‘nil’ can really speed up agenda generation. 4443 4444 ---------- Footnotes ---------- 4445 4446 (1) As with all these in-buffer settings, pressing ‘C-c C-c’ 4447activates any changes in the line. 4448 4449 (2) This is only true if the search does not involve more complex 4450tests including properties (see *note Property Searches::). 4451 4452 4453File: org.info, Node: Setting Tags, Next: Tag Hierarchy, Prev: Tag Inheritance, Up: Tags 4454 44556.2 Setting Tags 4456================ 4457 4458Tags can simply be typed into the buffer at the end of a headline. 4459After a colon, ‘M-<TAB>’ offers completion on tags. There is also a 4460special command for inserting tags: 4461 4462‘C-c C-q’ (‘org-set-tags-command’) 4463 Enter new tags for the current headline. Org mode either offers 4464 completion or a special single-key interface for setting tags, see 4465 below. After pressing ‘<RET>’, the tags are inserted and aligned 4466 to ‘org-tags-column’. When called with a ‘C-u’ prefix, all tags in 4467 the current buffer are aligned to that column, just to make things 4468 look nice. Tags are automatically realigned after promotion, 4469 demotion, and TODO state changes (see *note TODO Basics::). 4470 4471‘C-c C-c’ (‘org-set-tags-command’) 4472 When point is in a headline, this does the same as ‘C-c C-q’. 4473 4474 Org supports tag insertion based on a _list of tags_. By default 4475this list is constructed dynamically, containing all tags currently used 4476in the buffer(1). You may also globally specify a hard list of tags 4477with the variable ‘org-tag-alist’. Finally you can set the default tags 4478for a given file using the ‘TAGS’ keyword, like 4479 4480 #+TAGS: @work @home @tennisclub 4481 #+TAGS: laptop car pc sailboat 4482 4483 If you have globally defined your preferred set of tags using the 4484variable ‘org-tag-alist’, but would like to use a dynamic tag list in a 4485specific file, add an empty ‘TAGS’ keyword to that file: 4486 4487 #+TAGS: 4488 4489 If you have a preferred set of tags that you would like to use in 4490every file, in addition to those defined on a per-file basis by ‘TAGS’ 4491keyword, then you may specify a list of tags with the variable 4492‘org-tag-persistent-alist’. You may turn this off on a per-file basis 4493by adding a ‘STARTUP’ keyword to that file: 4494 4495 #+STARTUP: noptag 4496 4497 By default Org mode uses the standard minibuffer completion 4498facilities for entering tags. However, it also implements another, 4499quicker, tag selection method called _fast tag selection_. This allows 4500you to select and deselect tags with just a single key press. For this 4501to work well you should assign unique letters to most of your commonly 4502used tags. You can do this globally by configuring the variable 4503‘org-tag-alist’ in your Emacs init file. For example, you may find the 4504need to tag many items in different files with ‘@home’. In this case 4505you can set something like: 4506 4507 (setq org-tag-alist '(("@work" . ?w) ("@home" . ?h) ("laptop" . ?l))) 4508 4509 If the tag is only relevant to the file you are working on, then you 4510can instead set the ‘TAGS’ keyword as: 4511 4512 #+TAGS: @work(w) @home(h) @tennisclub(t) laptop(l) pc(p) 4513 4514 The tags interface shows the available tags in a splash window. If 4515you want to start a new line after a specific tag, insert ‘\n’ into the 4516tag list 4517 4518 #+TAGS: @work(w) @home(h) @tennisclub(t) \n laptop(l) pc(p) 4519 4520or write them in two lines: 4521 4522 #+TAGS: @work(w) @home(h) @tennisclub(t) 4523 #+TAGS: laptop(l) pc(p) 4524 4525 You can also group together tags that are mutually exclusive by using 4526braces, as in: 4527 4528 #+TAGS: { @work(w) @home(h) @tennisclub(t) } laptop(l) pc(p) 4529 4530you indicate that at most one of ‘@work’, ‘@home’, and ‘@tennisclub’ 4531should be selected. Multiple such groups are allowed. 4532 4533 Do not forget to press ‘C-c C-c’ with point in one of these lines to 4534activate any changes. 4535 4536 To set these mutually exclusive groups in the variable 4537‘org-tags-alist’, you must use the dummy tags ‘:startgroup’ and 4538‘:endgroup’ instead of the braces. Similarly, you can use ‘:newline’ to 4539indicate a line break. The previous example would be set globally by 4540the following configuration: 4541 4542 (setq org-tag-alist '((:startgroup . nil) 4543 ("@work" . ?w) ("@home" . ?h) 4544 ("@tennisclub" . ?t) 4545 (:endgroup . nil) 4546 ("laptop" . ?l) ("pc" . ?p))) 4547 4548 If at least one tag has a selection key then pressing ‘C-c C-c’ 4549automatically presents you with a special interface, listing inherited 4550tags, the tags of the current headline, and a list of all valid tags 4551with corresponding keys(2). 4552 4553 Pressing keys assigned to tags adds or removes them from the list of 4554tags in the current line. Selecting a tag in a group of mutually 4555exclusive tags turns off any other tag from that group. 4556 4557 In this interface, you can also use the following special keys: 4558 4559‘<TAB>’ 4560 Enter a tag in the minibuffer, even if the tag is not in the 4561 predefined list. You can complete on all tags present in the 4562 buffer. You can also add several tags: just separate them with a 4563 comma. 4564 4565‘<SPC>’ 4566 Clear all tags for this line. 4567 4568‘<RET>’ 4569 Accept the modified set. 4570 4571‘C-g’ 4572 Abort without installing changes. 4573 4574‘q’ 4575 If ‘q’ is not assigned to a tag, it aborts like ‘C-g’. 4576 4577‘!’ 4578 Turn off groups of mutually exclusive tags. Use this to (as an 4579 exception) assign several tags from such a group. 4580 4581‘C-c’ 4582 Toggle auto-exit after the next change (see below). If you are 4583 using expert mode, the first ‘C-c’ displays the selection window. 4584 4585 This method lets you assign tags to a headline with very few keys. 4586With the above setup, you could clear the current tags and set ‘@home’, 4587‘laptop’ and ‘pc’ tags with just the following keys: ‘C-c C-c <SPC> h l 4588p <RET>’. Switching from ‘@home’ to ‘@work’ would be done with ‘C-c C-c 4589w <RET>’ or alternatively with ‘C-c C-c C-c w’. Adding the 4590non-predefined tag ‘sarah’ could be done with ‘C-c C-c <TAB> s a r a h 4591<RET>’. 4592 4593 If you find that most of the time you need only a single key press to 4594modify your list of tags, set the variable 4595‘org-fast-tag-selection-single-key’. Then you no longer have to press 4596‘<RET>’ to exit fast tag selection—it exits after the first change. If 4597you then occasionally need more keys, press ‘C-c’ to turn off auto-exit 4598for the current tag selection process (in effect: start selection with 4599‘C-c C-c C-c’ instead of ‘C-c C-c’). If you set the variable to the 4600value ‘expert’, the special window is not even shown for single-key tag 4601selection, it comes up only when you press an extra ‘C-c’. 4602 4603 ---------- Footnotes ---------- 4604 4605 (1) To extend this default list to all tags used in all agenda files 4606(see *note Agenda Views::), customize the variable 4607‘org-complete-tags-always-offer-all-agenda-tags’. 4608 4609 (2) Keys are automatically assigned to tags that have no configured 4610keys. 4611 4612 4613File: org.info, Node: Tag Hierarchy, Next: Tag Searches, Prev: Setting Tags, Up: Tags 4614 46156.3 Tag Hierarchy 4616================= 4617 4618Tags can be defined in hierarchies. A tag can be defined as a _group 4619tag_ for a set of other tags. The group tag can be seen as the “broader 4620term” for its set of tags. Defining multiple group tags and nesting 4621them creates a tag hierarchy. 4622 4623 One use-case is to create a taxonomy of terms (tags) that can be used 4624to classify nodes in a document or set of documents. 4625 4626 When you search for a group tag, it return matches for all members in 4627the group and its subgroups. In an agenda view, filtering by a group 4628tag displays or hide headlines tagged with at least one of the members 4629of the group or any of its subgroups. This makes tag searches and 4630filters even more flexible. 4631 4632 You can set group tags by using brackets and inserting a colon 4633between the group tag and its related tags—beware that all whitespaces 4634are mandatory so that Org can parse this line correctly: 4635 4636 #+TAGS: [ GTD : Control Persp ] 4637 4638 In this example, ‘GTD’ is the group tag and it is related to two 4639other tags: ‘Control’, ‘Persp’. Defining ‘Control’ and ‘Persp’ as group 4640tags creates a hierarchy of tags: 4641 4642 #+TAGS: [ Control : Context Task ] 4643 #+TAGS: [ Persp : Vision Goal AOF Project ] 4644 4645 That can conceptually be seen as a hierarchy of tags: 4646 4647 • ‘GTD’ 4648 • ‘Persp’ 4649 • ‘Vision’ 4650 • ‘Goal’ 4651 • ‘AOF’ 4652 • ‘Project’ 4653 • ‘Control’ 4654 • ‘Context’ 4655 • ‘Task’ 4656 4657 You can use the ‘:startgrouptag’, ‘:grouptags’ and ‘:endgrouptag’ 4658keyword directly when setting ‘org-tag-alist’ directly: 4659 4660 (setq org-tag-alist '((:startgrouptag) 4661 ("GTD") 4662 (:grouptags) 4663 ("Control") 4664 ("Persp") 4665 (:endgrouptag) 4666 (:startgrouptag) 4667 ("Control") 4668 (:grouptags) 4669 ("Context") 4670 ("Task") 4671 (:endgrouptag))) 4672 4673 The tags in a group can be mutually exclusive if using the same group 4674syntax as is used for grouping mutually exclusive tags together; using 4675curly brackets. 4676 4677 #+TAGS: { Context : @Home @Work @Call } 4678 4679 When setting ‘org-tag-alist’ you can use ‘:startgroup’ and 4680‘:endgroup’ instead of ‘:startgrouptag’ and ‘:endgrouptag’ to make the 4681tags mutually exclusive. 4682 4683 Furthermore, the members of a group tag can also be regular 4684expressions, creating the possibility of a more dynamic and rule-based 4685tag structure. The regular expressions in the group must be specified 4686within curly brackets. Here is an expanded example: 4687 4688 #+TAGS: [ Vision : {V@.+} ] 4689 #+TAGS: [ Goal : {G@.+} ] 4690 #+TAGS: [ AOF : {AOF@.+} ] 4691 #+TAGS: [ Project : {P@.+} ] 4692 4693 Searching for the tag ‘Project’ now lists all tags also including 4694regular expression matches for ‘P@.+’, and similarly for tag searches on 4695‘Vision’, ‘Goal’ and ‘AOF’. For example, this would work well for a 4696project tagged with a common project-identifier, e.g., ‘P@2014_OrgTags’. 4697 4698 If you want to ignore group tags temporarily, toggle group tags 4699support with ‘org-toggle-tags-groups’, bound to ‘C-c C-x q’. If you 4700want to disable tag groups completely, set ‘org-group-tags’ to ‘nil’. 4701 4702 4703File: org.info, Node: Tag Searches, Prev: Tag Hierarchy, Up: Tags 4704 47056.4 Tag Searches 4706================ 4707 4708Once a system of tags has been set up, it can be used to collect related 4709information into special lists. 4710 4711‘C-c / m’ or ‘C-c \’ (‘org-match-sparse-tree’) 4712 Create a sparse tree with all headlines matching a tags search. 4713 With a ‘C-u’ prefix argument, ignore headlines that are not a TODO 4714 line. 4715 4716‘M-x org-agenda m’ (‘org-tags-view’) 4717 Create a global list of tag matches from all agenda files. See 4718 *note Matching tags and properties::. 4719 4720‘M-x org-agenda M’ (‘org-tags-view’) 4721 Create a global list of tag matches from all agenda files, but 4722 check only TODO items and force checking subitems (see the option 4723 ‘org-tags-match-list-sublevels’). 4724 4725 These commands all prompt for a match string which allows basic 4726Boolean logic like ‘+boss+urgent-project1’, to find entries with tags 4727‘boss’ and ‘urgent’, but not ‘project1’, or ‘Kathy|Sally’ to find 4728entries which are tagged, like ‘Kathy’ or ‘Sally’. The full syntax of 4729the search string is rich and allows also matching against TODO 4730keywords, entry levels and properties. For a complete description with 4731many examples, see *note Matching tags and properties::. 4732 4733 4734File: org.info, Node: Properties and Columns, Next: Dates and Times, Prev: Tags, Up: Top 4735 47367 Properties and Columns 4737************************ 4738 4739A property is a key-value pair associated with an entry. Properties can 4740be set so they are associated with a single entry, with every entry in a 4741tree, or with the whole buffer. 4742 4743 There are two main applications for properties in Org mode. First, 4744properties are like tags, but with a value. Imagine maintaining a file 4745where you document bugs and plan releases for a piece of software. 4746Instead of using tags like ‘release_1’, ‘release_2’, you can use a 4747property, say ‘Release’, that in different subtrees has different 4748values, such as ‘1.0’ or ‘2.0’. Second, you can use properties to 4749implement (very basic) database capabilities in an Org buffer. Imagine 4750keeping track of your music CDs, where properties could be things such 4751as the album, artist, date of release, number of tracks, and so on. 4752 4753 Properties can be conveniently edited and viewed in column view (see 4754*note Column View::). 4755 4756* Menu: 4757 4758* Property Syntax:: How properties are spelled out. 4759* Special Properties:: Access to other Org mode features. 4760* Property Searches:: Matching property values. 4761* Property Inheritance:: Passing values down a tree. 4762* Column View:: Tabular viewing and editing. 4763 4764 4765File: org.info, Node: Property Syntax, Next: Special Properties, Up: Properties and Columns 4766 47677.1 Property Syntax 4768=================== 4769 4770Properties are key–value pairs. When they are associated with a single 4771entry or with a tree they need to be inserted into a special drawer (see 4772*note Drawers::) with the name ‘PROPERTIES’, which has to be located 4773right below a headline, and its planning line (see *note Deadlines and 4774Scheduling::) when applicable. Each property is specified on a single 4775line, with the key—surrounded by colons—first, and the value after it. 4776Keys are case-insensitive. Here is an example: 4777 4778 * CD collection 4779 ** Classic 4780 *** Goldberg Variations 4781 :PROPERTIES: 4782 :Title: Goldberg Variations 4783 :Composer: J.S. Bach 4784 :Artist: Glenn Gould 4785 :Publisher: Deutsche Grammophon 4786 :NDisks: 1 4787 :END: 4788 4789 Depending on the value of ‘org-use-property-inheritance’, a property 4790set this way is associated either with a single entry, or with the 4791sub-tree defined by the entry, see *note Property Inheritance::. 4792 4793 You may define the allowed values for a particular property ‘Xyz’ by 4794setting a property ‘Xyz_ALL’. This special property is _inherited_, so 4795if you set it in a level 1 entry, it applies to the entire tree. When 4796allowed values are defined, setting the corresponding property becomes 4797easier and is less prone to typing errors. For the example with the CD 4798collection, we can pre-define publishers and the number of disks in a 4799box like this: 4800 4801 * CD collection 4802 :PROPERTIES: 4803 :NDisks_ALL: 1 2 3 4 4804 :Publisher_ALL: "Deutsche Grammophon" Philips EMI 4805 :END: 4806 4807 Properties can be inserted on buffer level. That means they apply 4808before the first headline and can be inherited by all entries in a file. 4809Property blocks defined before first headline needs to be located at the 4810top of the buffer, allowing only comments above. 4811 4812 Properties can also be defined using lines like: 4813 4814 #+PROPERTY: NDisks_ALL 1 2 3 4 4815 4816 If you want to add to the value of an existing property, append a ‘+’ 4817to the property name. The following results in the property ‘var’ 4818having the value ‘foo=1 bar=2’. 4819 4820 #+PROPERTY: var foo=1 4821 #+PROPERTY: var+ bar=2 4822 4823 It is also possible to add to the values of inherited properties. 4824The following results in the ‘Genres’ property having the value ‘Classic 4825Baroque’ under the ‘Goldberg Variations’ subtree. 4826 4827 * CD collection 4828 ** Classic 4829 :PROPERTIES: 4830 :Genres: Classic 4831 :END: 4832 *** Goldberg Variations 4833 :PROPERTIES: 4834 :Title: Goldberg Variations 4835 :Composer: J.S. Bach 4836 :Artist: Glenn Gould 4837 :Publisher: Deutsche Grammophon 4838 :NDisks: 1 4839 :Genres+: Baroque 4840 :END: 4841 4842 Note that a property can only have one entry per drawer. 4843 4844 Property values set with the global variable ‘org-global-properties’ 4845can be inherited by all entries in all Org files. 4846 4847 The following commands help to work with properties: 4848 4849‘M-<TAB>’ (‘pcomplete’) 4850 After an initial colon in a line, complete property keys. All keys 4851 used in the current file are offered as possible completions. 4852 4853‘C-c C-x p’ (‘org-set-property’) 4854 Set a property. This prompts for a property name and a value. If 4855 necessary, the property drawer is created as well. 4856 4857‘C-u M-x org-insert-drawer’ 4858 Insert a property drawer into the current entry. The drawer is 4859 inserted early in the entry, but after the lines with planning 4860 information like deadlines. If before first headline the drawer is 4861 inserted at the top of the drawer after any potential comments. 4862 4863‘C-c C-c’ (‘org-property-action’) 4864 With point in a property drawer, this executes property commands. 4865 4866‘C-c C-c s’ (‘org-set-property’) 4867 Set a property in the current entry. Both the property and the 4868 value can be inserted using completion. 4869 4870‘S-<RIGHT>’ (‘org-property-next-allowed-values’) 4871‘S-<LEFT>’ (‘org-property-previous-allowed-value’) 4872 Switch property at point to the next/previous allowed value. 4873 4874‘C-c C-c d’ (‘org-delete-property’) 4875 Remove a property from the current entry. 4876 4877‘C-c C-c D’ (‘org-delete-property-globally’) 4878 Globally remove a property, from all entries in the current file. 4879 4880‘C-c C-c c’ (‘org-compute-property-at-point’) 4881 Compute the property at point, using the operator and scope from 4882 the nearest column format definition. 4883 4884 4885File: org.info, Node: Special Properties, Next: Property Searches, Prev: Property Syntax, Up: Properties and Columns 4886 48877.2 Special Properties 4888====================== 4889 4890Special properties provide an alternative access method to Org mode 4891features, like the TODO state or the priority of an entry, discussed in 4892the previous chapters. This interface exists so that you can include 4893these states in a column view (see *note Column View::), or to use them 4894in queries. The following property names are special and should not be 4895used as keys in the properties drawer: 4896 4897‘ALLTAGS’ All tags, including inherited ones. 4898‘BLOCKED’ ‘t’ if task is currently blocked by children or siblings. 4899‘CATEGORY’ The category of an entry. 4900‘CLOCKSUM’ The sum of CLOCK intervals in the subtree. ‘org-clock-sum’ 4901 must be run first to compute the values in the current buffer. 4902‘CLOCKSUM_T’ The sum of CLOCK intervals in the subtree for today. 4903 ‘org-clock-sum-today’ must be run first to compute the 4904 values in the current buffer. 4905‘CLOSED’ When was this entry closed? 4906‘DEADLINE’ The deadline timestamp. 4907‘FILE’ The filename the entry is located in. 4908‘ITEM’ The headline of the entry. 4909‘PRIORITY’ The priority of the entry, a string with a single letter. 4910‘SCHEDULED’ The scheduling timestamp. 4911‘TAGS’ The tags defined directly in the headline. 4912‘TIMESTAMP’ The first keyword-less timestamp in the entry. 4913‘TIMESTAMP_IA’ The first inactive timestamp in the entry. 4914‘TODO’ The TODO keyword of the entry. 4915 4916 4917File: org.info, Node: Property Searches, Next: Property Inheritance, Prev: Special Properties, Up: Properties and Columns 4918 49197.3 Property Searches 4920===================== 4921 4922To create sparse trees and special lists with selection based on 4923properties, the same commands are used as for tag searches (see *note 4924Tag Searches::). 4925 4926‘C-c / m’ or ‘C-c \’ (‘org-match-sparse-tree’) 4927 Create a sparse tree with all matching entries. With a ‘C-u’ 4928 prefix argument, ignore headlines that are not a TODO line. 4929 4930‘M-x org-agenda m’ (‘org-tags-view’) 4931 Create a global list of tag/property matches from all agenda files. 4932 4933‘M-x org-agenda M’ (‘org-tags-view’) 4934 Create a global list of tag matches from all agenda files, but 4935 check only TODO items and force checking of subitems (see the 4936 option ‘org-tags-match-list-sublevels’). 4937 4938 The syntax for the search string is described in *note Matching tags 4939and properties::. 4940 4941 There is also a special command for creating sparse trees based on a 4942single property: 4943 4944‘C-c / p’ 4945 Create a sparse tree based on the value of a property. This first 4946 prompts for the name of a property, and then for a value. A sparse 4947 tree is created with all entries that define this property with the 4948 given value. If you enclose the value in curly braces, it is 4949 interpreted as a regular expression and matched against the 4950 property values. 4951 4952 4953File: org.info, Node: Property Inheritance, Next: Column View, Prev: Property Searches, Up: Properties and Columns 4954 49557.4 Property Inheritance 4956======================== 4957 4958The outline structure of Org documents lends itself to an inheritance 4959model of properties: if the parent in a tree has a certain property, the 4960children can inherit this property. Org mode does not turn this on by 4961default, because it can slow down property searches significantly and is 4962often not needed. However, if you find inheritance useful, you can turn 4963it on by setting the variable ‘org-use-property-inheritance’. It may be 4964set to ‘t’ to make all properties inherited from the parent, to a list 4965of properties that should be inherited, or to a regular expression that 4966matches inherited properties. If a property has the value ‘nil’, this 4967is interpreted as an explicit un-define of the property, so that 4968inheritance search stops at this value and returns ‘nil’. 4969 4970 Org mode has a few properties for which inheritance is hard-coded, at 4971least for the special applications for which they are used: 4972 4973‘COLUMNS’ 4974 The ‘COLUMNS’ property defines the format of column view (see *note 4975 Column View::). It is inherited in the sense that the level where 4976 a ‘COLUMNS’ property is defined is used as the starting point for a 4977 column view table, independently of the location in the subtree 4978 from where columns view is turned on. 4979 4980‘CATEGORY’ 4981 For agenda view, a category set through a ‘CATEGORY’ property 4982 applies to the entire subtree. 4983 4984‘ARCHIVE’ 4985 For archiving, the ‘ARCHIVE’ property may define the archive 4986 location for the entire subtree (see *note Moving subtrees::). 4987 4988‘LOGGING’ 4989 The ‘LOGGING’ property may define logging settings for an entry or 4990 a subtree (see *note Tracking TODO state changes::). 4991 4992 4993File: org.info, Node: Column View, Prev: Property Inheritance, Up: Properties and Columns 4994 49957.5 Column View 4996=============== 4997 4998A great way to view and edit properties in an outline tree is _column 4999view_. In column view, each outline node is turned into a table row. 5000Columns in this table provide access to properties of the entries. Org 5001mode implements columns by overlaying a tabular structure over the 5002headline of each item. While the headlines have been turned into a 5003table row, you can still change the visibility of the outline tree. For 5004example, you get a compact table by switching to “contents” 5005view—‘S-<TAB>’ ‘S-<TAB>’, or simply ‘c’ while column view is active—but 5006you can still open, read, and edit the entry below each headline. Or, 5007you can switch to column view after executing a sparse tree command and 5008in this way get a table only for the selected items. Column view also 5009works in agenda buffers (see *note Agenda Views::) where queries have 5010collected selected items, possibly from a number of files. 5011 5012* Menu: 5013 5014* Defining columns:: The COLUMNS format property. 5015* Using column view:: How to create and use column view. 5016* Capturing column view:: A dynamic block for column view. 5017 5018 5019File: org.info, Node: Defining columns, Next: Using column view, Up: Column View 5020 50217.5.1 Defining columns 5022---------------------- 5023 5024Setting up a column view first requires defining the columns. This is 5025done by defining a column format line. 5026 5027* Menu: 5028 5029* Scope of column definitions:: Where defined, where valid? 5030* Column attributes:: Appearance and content of a column. 5031 5032 5033File: org.info, Node: Scope of column definitions, Next: Column attributes, Up: Defining columns 5034 50357.5.1.1 Scope of column definitions 5036................................... 5037 5038To specify a format that only applies to a specific tree, add a 5039‘COLUMNS’ property to the top node of that tree, for example: 5040 5041 ** Top node for columns view 5042 :PROPERTIES: 5043 :COLUMNS: %25ITEM %TAGS %PRIORITY %TODO 5044 :END: 5045 5046 A ‘COLUMNS’ property within a property drawer before first headline 5047will apply to the entire file. As an addition to property drawers, 5048keywords can also be defined for an entire file using a line like: 5049 5050 #+COLUMNS: %25ITEM %TAGS %PRIORITY %TODO 5051 5052 If a ‘COLUMNS’ property is present in an entry, it defines columns 5053for the entry itself, and for the entire subtree below it. Since the 5054column definition is part of the hierarchical structure of the document, 5055you can define columns on level 1 that are general enough for all 5056sublevels, and more specific columns further down, when you edit a 5057deeper part of the tree. 5058 5059 5060File: org.info, Node: Column attributes, Prev: Scope of column definitions, Up: Defining columns 5061 50627.5.1.2 Column attributes 5063......................... 5064 5065A column definition sets the attributes of a column. The general 5066definition looks like this: 5067 5068 %[WIDTH]PROPERTY[(TITLE)][{SUMMARY-TYPE}] 5069 5070Except for the percent sign and the property name, all items are 5071optional. The individual parts have the following meaning: 5072 5073WIDTH 5074 An integer specifying the width of the column in characters. If 5075 omitted, the width is determined automatically. 5076 5077PROPERTY 5078 The property that should be edited in this column. Special 5079 properties representing meta data are allowed here as well (see 5080 *note Special Properties::). 5081 5082TITLE 5083 The header text for the column. If omitted, the property name is 5084 used. 5085 5086SUMMARY-TYPE 5087 The summary type. If specified, the column values for parent nodes 5088 are computed from the children(1). 5089 5090 Supported summary types are: 5091 5092 ‘+’ Sum numbers in this column. 5093 ‘+;%.1f’ Like ‘+’, but format result with ‘%.1f’. 5094 ‘$’ Currency, short for ‘+;%.2f’. 5095 ‘min’ Smallest number in column. 5096 ‘max’ Largest number. 5097 ‘mean’ Arithmetic mean of numbers. 5098 ‘X’ Checkbox status, ‘[X]’ if all children are ‘[X]’. 5099 ‘X/’ Checkbox status, ‘[n/m]’. 5100 ‘X%’ Checkbox status, ‘[n%]’. 5101 ‘:’ Sum times, HH:MM, plain numbers are minutes. 5102 ‘:min’ Smallest time value in column. 5103 ‘:max’ Largest time value. 5104 ‘:mean’ Arithmetic mean of time values. 5105 ‘@min’ Minimum age(2) (in days/hours/mins/seconds). 5106 ‘@max’ Maximum age (in days/hours/mins/seconds). 5107 ‘@mean’ Arithmetic mean of ages (in days/hours/mins/seconds). 5108 ‘est+’ Add low-high estimates. 5109 5110 You can also define custom summary types by setting 5111 ‘org-columns-summary-types’. 5112 5113 The ‘est+’ summary type requires further explanation. It is used for 5114combining estimates, expressed as low-high ranges. For example, instead 5115of estimating a particular task will take 5 days, you might estimate it 5116as 5–6 days if you’re fairly confident you know how much work is 5117required, or 1–10 days if you do not really know what needs to be done. 5118Both ranges average at 5.5 days, but the first represents a more 5119predictable delivery. 5120 5121 When combining a set of such estimates, simply adding the lows and 5122highs produces an unrealistically wide result. Instead, ‘est+’ adds the 5123statistical mean and variance of the subtasks, generating a final 5124estimate from the sum. For example, suppose you had ten tasks, each of 5125which was estimated at 0.5 to 2 days of work. Straight addition 5126produces an estimate of 5 to 20 days, representing what to expect if 5127everything goes either extremely well or extremely poorly. In contrast, 5128‘est+’ estimates the full job more realistically, at 10–15 days. 5129 5130 Here is an example for a complete columns definition, along with 5131allowed values(3). 5132 5133 :COLUMNS: %25ITEM %9Approved(Approved?){X} %Owner %11Status \ 5134 %10Time_Estimate{:} %CLOCKSUM %CLOCKSUM_T 5135 :Owner_ALL: Tammy Mark Karl Lisa Don 5136 :Status_ALL: "In progress" "Not started yet" "Finished" "" 5137 :Approved_ALL: "[ ]" "[X]" 5138 5139The first column, ‘%25ITEM’, means the first 25 characters of the item 5140itself, i.e., of the headline. You probably always should start the 5141column definition with the ‘ITEM’ specifier. The other specifiers 5142create columns ‘Owner’ with a list of names as allowed values, for 5143‘Status’ with four different possible values, and for a checkbox field 5144‘Approved’. When no width is given after the ‘%’ character, the column 5145is exactly as wide as it needs to be in order to fully display all 5146values. The ‘Approved’ column does have a modified title (‘Approved?’, 5147with a question mark). Summaries are created for the ‘Time_Estimate’ 5148column by adding time duration expressions like HH:MM, and for the 5149‘Approved’ column, by providing an ‘[X]’ status if all children have 5150been checked. The ‘CLOCKSUM’ and ‘CLOCKSUM_T’ columns are special, they 5151lists the sums of CLOCK intervals in the subtree, either for all clocks 5152or just for today. 5153 5154 ---------- Footnotes ---------- 5155 5156 (1) If more than one summary type applies to the same property, the 5157parent values are computed according to the first of them. 5158 5159 (2) An age can be defined as a duration, using units defined in 5160‘org-duration-units’, e.g., ‘3d 1h’. If any value in the column is as 5161such, the summary is also expressed as a duration. 5162 5163 (3) Please note that the ‘COLUMNS’ definition must be on a single 5164line; it is wrapped here only because of formatting constraints. 5165 5166 5167File: org.info, Node: Using column view, Next: Capturing column view, Prev: Defining columns, Up: Column View 5168 51697.5.2 Using column view 5170----------------------- 5171 5172Turning column view on or off 5173............................. 5174 5175‘C-c C-x C-c’ (‘org-columns’) 5176 Turn on column view. If point is before the first headline in the 5177 file, column view is turned on for the entire file, using the 5178 ‘#+COLUMNS’ definition. If point is somewhere inside the outline, 5179 this command searches the hierarchy, up from point, for a ‘COLUMNS’ 5180 property that defines a format. When one is found, the column view 5181 table is established for the tree starting at the entry that 5182 contains the ‘COLUMNS’ property. If no such property is found, the 5183 format is taken from the ‘#+COLUMNS’ line or from the variable 5184 ‘org-columns-default-format’, and column view is established for 5185 the current entry and its subtree. 5186 5187‘r’ or ‘g’ on a columns view line (‘org-columns-redo’) 5188 Recreate the column view, to include recent changes made in the 5189 buffer. 5190 5191‘C-c C-c’ or ‘q’ on a columns view line (‘org-columns-quit’) 5192 Exit column view. 5193 5194Editing values 5195.............. 5196 5197‘<LEFT>’, ‘<RIGHT>’, ‘<UP>’, ‘<DOWN>’ 5198 Move through the column view from field to field. 5199 5200‘1..9,0’ 5201 Directly select the Nth allowed value, ‘0’ selects the 10th value. 5202 5203‘n’ or ‘S-<RIGHT>’ (‘org-columns-next-allowed-value’) 5204‘p’ or ‘S-<LEFT>’ (‘org-columns-previous-allowed-value’) 5205 Switch to the next/previous allowed value of the field. For this, 5206 you have to have specified allowed values for a property. 5207 5208‘e’ (‘org-columns-edit-value’) 5209 Edit the property at point. For the special properties, this 5210 invokes the same interface that you normally use to change that 5211 property. For example, the tag completion or fast selection 5212 interface pops up when editing a ‘TAGS’ property. 5213 5214‘C-c C-c’ (‘org-columns-toggle-or-columns-quit’) 5215 When there is a checkbox at point, toggle it. Else exit column 5216 view. 5217 5218‘v’ (‘org-columns-show-value’) 5219 View the full value of this property. This is useful if the width 5220 of the column is smaller than that of the value. 5221 5222‘a’ (‘org-columns-edit-allowed’) 5223 Edit the list of allowed values for this property. If the list is 5224 found in the hierarchy, the modified values is stored there. If no 5225 list is found, the new value is stored in the first entry that is 5226 part of the current column view. 5227 5228Modifying column view on-the-fly 5229................................ 5230 5231‘<’ (‘org-columns-narrow’) 5232‘>’ (‘org-columns-widen’) 5233 Make the column narrower/wider by one character. 5234 5235‘S-M-<RIGHT>’ (‘org-columns-new’) 5236 Insert a new column, to the left of the current column. 5237 5238‘S-M-<LEFT>’ (‘org-columns-delete’) 5239 Delete the current column. 5240 5241 5242File: org.info, Node: Capturing column view, Prev: Using column view, Up: Column View 5243 52447.5.3 Capturing column view 5245--------------------------- 5246 5247Since column view is just an overlay over a buffer, it cannot be 5248exported or printed directly. If you want to capture a column view, use 5249a ‘columnview’ dynamic block (see *note Dynamic Blocks::). The frame of 5250this block looks like this: 5251 5252 * The column view 5253 #+BEGIN: columnview :hlines 1 :id "label" 5254 5255 #+END: 5256 5257 This dynamic block has the following parameters: 5258 5259‘:id’ 5260 This is the most important parameter. Column view is a feature 5261 that is often localized to a certain (sub)tree, and the capture 5262 block might be at a different location in the file. To identify 5263 the tree whose view to capture, you can use four values: 5264 5265 ‘local’ 5266 Use the tree in which the capture block is located. 5267 5268 ‘global’ 5269 Make a global view, including all headings in the file. 5270 5271 ‘file:FILENAME’ 5272 Run column view at the top of the FILENAME file. 5273 5274 ‘LABEL’ 5275 Call column view in the tree that has an ‘ID’ property with 5276 the value LABEL. You can use ‘M-x org-id-copy’ to create a 5277 globally unique ID for the current entry and copy it to the 5278 kill-ring. 5279 5280‘:match’ 5281 When set to a string, use this as a tags/property match filter to 5282 select only a subset of the headlines in the scope set by the ‘:id’ 5283 parameter. 5284 5285‘:hlines’ 5286 When ‘t’, insert an hline after every line. When a number N, 5287 insert an hline before each headline with level ‘<= N’. 5288 5289‘:vlines’ 5290 When non-‘nil’, force column groups to get vertical lines. 5291 5292‘:maxlevel’ 5293 When set to a number, do not capture entries below this level. 5294 5295‘:skip-empty-rows’ 5296 When non-‘nil’, skip rows where the only non-empty specifier of the 5297 column view is ‘ITEM’. 5298 5299‘:exclude-tags’ 5300 List of tags to exclude from column view table: entries with these 5301 tags will be excluded from the column view. 5302 5303‘:indent’ 5304 When non-‘nil’, indent each ‘ITEM’ field according to its level. 5305 5306‘:format’ 5307 Specify a column attribute (see *note Column attributes::) for the 5308 dynamic block. 5309 5310 The following commands insert or update the dynamic block: 5311 5312‘org-columns-insert-dblock’ 5313 Insert a dynamic block capturing a column view. Prompt for the 5314 scope or ID of the view. 5315 5316 This command can be invoked by calling 5317 ‘org-dynamic-block-insert-dblock’ (‘C-c C-x x’) and selecting 5318 “columnview” (see *note Dynamic Blocks::). 5319 5320‘C-c C-c’ ‘C-c C-x C-u’ (‘org-dblock-update’) 5321 Update dynamic block at point. point needs to be in the ‘#+BEGIN’ 5322 line of the dynamic block. 5323 5324‘C-u C-c C-x C-u’ (‘org-update-all-dblocks’) 5325 Update all dynamic blocks (see *note Dynamic Blocks::). This is 5326 useful if you have several clock table blocks, column-capturing 5327 blocks or other dynamic blocks in a buffer. 5328 5329 You can add formulas to the column view table and you may add 5330plotting instructions in front of the table—these survive an update of 5331the block. If there is a ‘TBLFM’ keyword after the table, the table is 5332recalculated automatically after an update. 5333 5334 An alternative way to capture and process property values into a 5335table is provided by Eric Schulte’s ‘org-collector.el’, which is a 5336contributed package(1). It provides a general API to collect properties 5337from entries in a certain scope, and arbitrary Lisp expressions to 5338process these values before inserting them into a table or a dynamic 5339block. 5340 5341 ---------- Footnotes ---------- 5342 5343 (1) Contributed packages are not part of Emacs, but are distributed 5344with the main distribution of Org—visit <https://orgmode.org>. 5345 5346 5347File: org.info, Node: Dates and Times, Next: Refiling and Archiving, Prev: Properties and Columns, Up: Top 5348 53498 Dates and Times 5350***************** 5351 5352To assist project planning, TODO items can be labeled with a date and/or 5353a time. The specially formatted string carrying the date and time 5354information is called a _timestamp_ in Org mode. This may be a little 5355confusing because timestamp is often used as indicating when something 5356was created or last changed. However, in Org mode this term is used in 5357a much wider sense. 5358 5359* Menu: 5360 5361* Timestamps:: Assigning a time to a tree entry. 5362* Creating Timestamps:: Commands to insert timestamps. 5363* Deadlines and Scheduling:: Planning your work. 5364* Clocking Work Time:: Tracking how long you spend on a task. 5365* Effort Estimates:: Planning work effort in advance. 5366* Timers:: Notes with a running timer. 5367 5368 5369File: org.info, Node: Timestamps, Next: Creating Timestamps, Up: Dates and Times 5370 53718.1 Timestamps 5372============== 5373 5374A timestamp is a specification of a date (possibly with a time or a 5375range of times) in a special format, either ‘<2003-09-16 Tue>’ or 5376‘<2003-09-16 Tue 09:39>’ or ‘<2003-09-16 Tue 12:00-12:30>’(1). A 5377timestamp can appear anywhere in the headline or body of an Org tree 5378entry. Its presence causes entries to be shown on specific dates in the 5379agenda (see *note Weekly/daily agenda::). We distinguish: 5380 5381Plain timestamp; Event; Appointment 5382 A simple timestamp just assigns a date/time to an item. This is 5383 just like writing down an appointment or event in a paper agenda. 5384 In the agenda display, the headline of an entry associated with a 5385 plain timestamp is shown exactly on that date. 5386 5387 * Meet Peter at the movies 5388 <2006-11-01 Wed 19:15> 5389 * Discussion on climate change 5390 <2006-11-02 Thu 20:00-22:00> 5391 5392Timestamp with repeater interval 5393 A timestamp may contain a _repeater interval_, indicating that it 5394 applies not only on the given date, but again and again after a 5395 certain interval of N days (d), weeks (w), months (m), or years 5396 (y). The following shows up in the agenda every Wednesday: 5397 5398 * Pick up Sam at school 5399 <2007-05-16 Wed 12:30 +1w> 5400 5401Diary-style expression entries 5402 For more complex date specifications, Org mode supports using the 5403 special expression diary entries implemented in the Emacs Calendar 5404 package(2). For example, with optional time: 5405 5406 * 22:00-23:00 The nerd meeting on every 2nd Thursday of the month 5407 <%%(diary-float t 4 2)> 5408 5409Time/Date range 5410 Two timestamps connected by ‘--’ denote a range. The headline is 5411 shown on the first and last day of the range, and on any dates that 5412 are displayed and fall in the range. Here is an example: 5413 5414 ** Meeting in Amsterdam 5415 <2004-08-23 Mon>--<2004-08-26 Thu> 5416 5417Inactive timestamp 5418 Just like a plain timestamp, but with square brackets instead of 5419 angular ones. These timestamps are inactive in the sense that they 5420 do _not_ trigger an entry to show up in the agenda. 5421 5422 * Gillian comes late for the fifth time 5423 [2006-11-01 Wed] 5424 5425 ---------- Footnotes ---------- 5426 5427 (1) The Org date format is inspired by the standard ISO 8601 5428date/time format. To use an alternative format, see *note Custom time 5429format::. The day name is optional when you type the date yourself. 5430However, any date inserted or modified by Org adds that day name, for 5431reading convenience. 5432 5433 (2) When working with the standard diary expression functions, you 5434need to be very careful with the order of the arguments. That order 5435depends evilly on the variable ‘calendar-date-style’. For example, to 5436specify a date December 12, 2005, the call might look like ‘(diary-date 543712 1 2005)’ or ‘(diary-date 1 12 2005)’ or ‘(diary-date 2005 12 1)’, 5438depending on the settings. This has been the source of much confusion. 5439Org mode users can resort to special versions of these functions like 5440‘org-date’ or ‘org-anniversary’. These work just like the corresponding 5441‘diary-’ functions, but with stable ISO order of arguments (year, month, 5442day) wherever applicable, independent of the value of 5443‘calendar-date-style’. 5444 5445 5446File: org.info, Node: Creating Timestamps, Next: Deadlines and Scheduling, Prev: Timestamps, Up: Dates and Times 5447 54488.2 Creating Timestamps 5449======================= 5450 5451For Org mode to recognize timestamps, they need to be in the specific 5452format. All commands listed below produce timestamps in the correct 5453format. 5454 5455‘C-c .’ (‘org-time-stamp’) 5456 Prompt for a date and insert a corresponding timestamp. When point 5457 is at an existing timestamp in the buffer, the command is used to 5458 modify this timestamp instead of inserting a new one. When this 5459 command is used twice in succession, a time range is inserted. 5460 5461 When called with a prefix argument, use the alternative format 5462 which contains date and time. The default time can be rounded to 5463 multiples of 5 minutes. See the option 5464 ‘org-time-stamp-rounding-minutes’. 5465 5466 With two prefix arguments, insert an active timestamp with the 5467 current time without prompting. 5468 5469‘C-c !’ (‘org-time-stamp-inactive’) 5470 Like ‘C-c .’, but insert an inactive timestamp that does not cause 5471 an agenda entry. 5472 5473‘C-c C-c’ 5474 Normalize timestamp, insert or fix day name if missing or wrong. 5475 5476‘C-c <’ (‘org-date-from-calendar’) 5477 Insert a timestamp corresponding to point date in the calendar. 5478 5479‘C-c >’ (‘org-goto-calendar’) 5480 Access the Emacs calendar for the current date. If there is a 5481 timestamp in the current line, go to the corresponding date 5482 instead. 5483 5484‘C-c C-o’ (‘org-open-at-point’) 5485 Access the agenda for the date given by the timestamp or -range at 5486 point (see *note Weekly/daily agenda::). 5487 5488‘S-<LEFT>’ (‘org-timestamp-down-day’) 5489‘S-<RIGHT>’ (‘org-timestamp-up-day’) 5490 Change date at point by one day. These key bindings conflict with 5491 shift-selection and related modes (see *note Conflicts::). 5492 5493‘S-<UP>’ (‘org-timestamp-up’) 5494‘S-<DOWN>’ (‘org-timestamp-down’) 5495 On the beginning or enclosing bracket of a timestamp, change its 5496 type. Within a timestamp, change the item under point. Point can 5497 be on a year, month, day, hour or minute. When the timestamp 5498 contains a time range like ‘15:30-16:30’, modifying the first time 5499 also shifts the second, shifting the time block with constant 5500 length. To change the length, modify the second time. Note that 5501 if point is in a headline and not at a timestamp, these same keys 5502 modify the priority of an item (see *note Priorities::). The key 5503 bindings also conflict with shift-selection and related modes (see 5504 *note Conflicts::). 5505 5506‘C-c C-y’ (‘org-evaluate-time-range’) 5507 Evaluate a time range by computing the difference between start and 5508 end. With a prefix argument, insert result after the time range 5509 (in a table: into the following column). 5510 5511* Menu: 5512 5513* The date/time prompt:: How Org mode helps you enter dates and times. 5514* Custom time format:: Making dates look different. 5515 5516 5517File: org.info, Node: The date/time prompt, Next: Custom time format, Up: Creating Timestamps 5518 55198.2.1 The date/time prompt 5520-------------------------- 5521 5522When Org mode prompts for a date/time, the default is shown in default 5523date/time format, and the prompt therefore seems to ask for a specific 5524format. But it in fact accepts date/time information in a variety of 5525formats. Generally, the information should start at the beginning of 5526the string. Org mode finds whatever information is in there and derives 5527anything you have not specified from the _default date and time_. The 5528default is usually the current date and time, but when modifying an 5529existing timestamp, or when entering the second stamp of a range, it is 5530taken from the stamp in the buffer. When filling in information, Org 5531mode assumes that most of the time you want to enter a date in the 5532future: if you omit the month/year and the given day/month is _before_ 5533today, it assumes that you mean a future date(1). If the date has been 5534automatically shifted into the future, the time prompt shows this with 5535‘(=>F)’. 5536 5537 For example, let’s assume that today is *June 13, 2006*. Here is how 5538various inputs are interpreted, the items filled in by Org mode are in 5539*bold*. 5540 5541‘3-2-5’ ⇒ 2003-02-05 5542‘2/5/3’ ⇒ 2003-02-05 5543‘14’ ⇒ *2006*-*06*-14 5544‘12’ ⇒ *2006*-*07*-12 5545‘2/5’ ⇒ *2007*-02-05 5546‘Fri’ ⇒ nearest Friday (default date or later) 5547‘sep 15’ ⇒ *2006*-09-15 5548‘feb 15’ ⇒ *2007*-02-15 5549‘sep 12 9’ ⇒ 2009-09-12 5550‘12:45’ ⇒ *2006*-*06*-*13* 12:45 5551‘22 sept 0:34’ ⇒ *2006*-09-22 0:34 5552‘w4’ ⇒ ISO week for of the current year *2006* 5553‘2012 w4 fri’ ⇒ Friday of ISO week 4 in 2012 5554‘2012-w04-5’ ⇒ Same as above 5555 5556 Furthermore you can specify a relative date by giving, as the _first_ 5557thing in the input: a plus/minus sign, a number and a letter—‘d’, ‘w’, 5558‘m’ or ‘y’—to indicate change in days, weeks, months, or years. With a 5559single plus or minus, the date is always relative to today. With a 5560double plus or minus, it is relative to the default date. If instead of 5561a single letter, you use the abbreviation of day name, the date is the 5562Nth such day, e.g.: 5563 5564‘+0’ ⇒ today 5565‘.’ ⇒ today 5566‘+4d’ ⇒ four days from today 5567‘+4’ ⇒ same as +4d 5568‘+2w’ ⇒ two weeks from today 5569‘++5’ ⇒ five days from default date 5570‘+2tue’ ⇒ second Tuesday from now 5571 5572 The function understands English month and weekday abbreviations. If 5573you want to use un-abbreviated names and/or other languages, configure 5574the variables ‘parse-time-months’ and ‘parse-time-weekdays’. 5575 5576 Not all dates can be represented in a given Emacs implementation. By 5577default Org mode forces dates into the compatibility range 1970–2037 5578which works on all Emacs implementations. If you want to use dates 5579outside of this range, read the docstring of the variable 5580‘org-read-date-force-compatible-dates’. 5581 5582 You can specify a time range by giving start and end times or by 5583giving a start time and a duration (in HH:MM format). Use one or two 5584dash(es) as the separator in the former case and use ‘+’ as the 5585separator in the latter case, e.g.: 5586 5587‘11am-1:15pm’ ⇒ 11:00-13:15 5588‘11am--1:15pm’ ⇒ same as above 5589‘11am+2:15’ ⇒ same as above 5590 5591 Parallel to the minibuffer prompt, a calendar is popped up(2). When 5592you exit the date prompt, either by clicking on a date in the calendar, 5593or by pressing ‘<RET>’, the date selected in the calendar is combined 5594with the information entered at the prompt. You can control the 5595calendar fully from the minibuffer: 5596 5597‘<RET>’ Choose date at point in calendar. 5598‘mouse-1’ Select date by clicking on it. 5599‘S-<RIGHT>’ One day forward. 5600‘S-<LEFT>’ One day backward. 5601‘S-<DOWN>’ One week forward. 5602‘S-<UP>’ One week backward. 5603‘M-S-<RIGHT>’ One month forward. 5604‘M-S-<LEFT>’ One month backward. 5605‘>’ Scroll calendar forward by one month. 5606‘<’ Scroll calendar backward by one month. 5607‘M-v’ Scroll calendar forward by 3 months. 5608‘C-v’ Scroll calendar backward by 3 months. 5609‘C-.’ Select today’s date(3) 5610 5611 The actions of the date/time prompt may seem complex, but I assure 5612you they will grow on you, and you will start getting annoyed by pretty 5613much any other way of entering a date/time out there. To help you 5614understand what is going on, the current interpretation of your input is 5615displayed live in the minibuffer(4). 5616 5617 ---------- Footnotes ---------- 5618 5619 (1) See the variable ‘org-read-date-prefer-future’. You may set that 5620variable to the symbol ‘time’ to even make a time before now shift the 5621date to tomorrow. 5622 5623 (2) If you do not need/want the calendar, configure the variable 5624‘org-popup-calendar-for-date-prompt’. 5625 5626 (3) You can also use the calendar command ‘.’ to jump to today’s 5627date, but if you are inserting an hour specification for your timestamp, 5628‘.’ will then insert a dot after the hour. By contrast, ‘C-.’ will 5629always jump to today’s date. 5630 5631 (4) If you find this distracting, turn off the display with 5632‘org-read-date-display-live’. 5633 5634 5635File: org.info, Node: Custom time format, Prev: The date/time prompt, Up: Creating Timestamps 5636 56378.2.2 Custom time format 5638------------------------ 5639 5640Org mode uses the standard ISO notation for dates and times as it is 5641defined in ISO 8601. If you cannot get used to this and require another 5642representation of date and time to keep you happy, you can get it by 5643customizing the variables ‘org-display-custom-times’ and 5644‘org-time-stamp-custom-formats’. 5645 5646‘C-c C-x C-t’ (‘org-toggle-time-stamp-overlays’) 5647 Toggle the display of custom formats for dates and times. 5648 5649 Org mode needs the default format for scanning, so the custom 5650date/time format does not _replace_ the default format. Instead, it is 5651put _over_ the default format using text properties. This has the 5652following consequences: 5653 5654 • You cannot place point onto a timestamp anymore, only before or 5655 after. 5656 5657 • The ‘S-<UP>’ and ‘S-<DOWN>’ keys can no longer be used to adjust 5658 each component of a timestamp. If point is at the beginning of the 5659 stamp, ‘S-<UP>’ and ‘S-<DOWN>’ change the stamp by one day, just 5660 like ‘S-<LEFT>’ ‘S-<RIGHT>’. At the end of the stamp, change the 5661 time by one minute. 5662 5663 • If the timestamp contains a range of clock times or a repeater, 5664 these are not overlaid, but remain in the buffer as they were. 5665 5666 • When you delete a timestamp character-by-character, it only 5667 disappears from the buffer after _all_ (invisible) characters 5668 belonging to the ISO timestamp have been removed. 5669 5670 • If the custom timestamp format is longer than the default and you 5671 are using dates in tables, table alignment will be messed up. If 5672 the custom format is shorter, things do work as expected. 5673 5674 5675File: org.info, Node: Deadlines and Scheduling, Next: Clocking Work Time, Prev: Creating Timestamps, Up: Dates and Times 5676 56778.3 Deadlines and Scheduling 5678============================ 5679 5680A timestamp may be preceded by special keywords to facilitate planning. 5681Both the timestamp and the keyword have to be positioned immediately 5682after the task they refer to. 5683 5684‘DEADLINE’ 5685 Meaning: the task—most likely a TODO item, though not 5686 necessarily—is supposed to be finished on that date. 5687 5688 On the deadline date, the task is listed in the agenda. In 5689 addition, the agenda for _today_ carries a warning about the 5690 approaching or missed deadline, starting 5691 ‘org-deadline-warning-days’ before the due date, and continuing 5692 until the entry is marked as done. An example: 5693 5694 *** TODO write article about the Earth for the Guide 5695 DEADLINE: <2004-02-29 Sun> 5696 The editor in charge is [[bbdb:Ford Prefect]] 5697 5698 You can specify a different lead time for warnings for a specific 5699 deadlines using the following syntax. Here is an example with a 5700 warning period of 5 days ‘DEADLINE: <2004-02-29 Sun -5d>’. This 5701 warning is deactivated if the task gets scheduled and you set 5702 ‘org-agenda-skip-deadline-prewarning-if-scheduled’ to ‘t’. 5703 5704‘SCHEDULED’ 5705 Meaning: you are planning to start working on that task on the 5706 given date. 5707 5708 The headline is listed under the given date(1). In addition, a 5709 reminder that the scheduled date has passed is present in the 5710 compilation for _today_, until the entry is marked as done, i.e., 5711 the task is automatically forwarded until completed. 5712 5713 *** TODO Call Trillian for a date on New Years Eve. 5714 SCHEDULED: <2004-12-25 Sat> 5715 5716 If you want to _delay_ the display of this task in the agenda, use 5717 ‘SCHEDULED: <2004-12-25 Sat -2d>’: the task is still scheduled on 5718 the 25th but will appear two days later. In case the task contains 5719 a repeater, the delay is considered to affect all occurrences; if 5720 you want the delay to only affect the first scheduled occurrence of 5721 the task, use ‘--2d’ instead. See ‘org-scheduled-delay-days’ and 5722 ‘org-agenda-skip-scheduled-delay-if-deadline’ for details on how to 5723 control this globally or per agenda. 5724 5725 Important: Scheduling an item in Org mode should _not_ be 5726 understood in the same way that we understand _scheduling a 5727 meeting_. Setting a date for a meeting is just a simple 5728 appointment, you should mark this entry with a simple plain 5729 timestamp, to get this item shown on the date where it 5730 applies. This is a frequent misunderstanding by Org users. 5731 In Org mode, _scheduling_ means setting a date when you want 5732 to start working on an action item. 5733 5734 You may use timestamps with repeaters in scheduling and deadline 5735entries. Org mode issues early and late warnings based on the 5736assumption that the timestamp represents the _nearest instance_ of the 5737repeater. However, the use of diary expression entries like 5738 5739 <%%(diary-float t 42)> 5740 5741in scheduling and deadline timestamps is limited. Org mode does not 5742know enough about the internals of each function to issue early and late 5743warnings. However, it shows the item on each day where the expression 5744entry matches. 5745 5746* Menu: 5747 5748* Inserting deadline/schedule:: Planning items. 5749* Repeated tasks:: Items that show up again and again. 5750 5751 ---------- Footnotes ---------- 5752 5753 (1) It will still be listed on that date after it has been marked as 5754done. If you do not like this, set the variable 5755‘org-agenda-skip-scheduled-if-done’. 5756 5757 5758File: org.info, Node: Inserting deadline/schedule, Next: Repeated tasks, Up: Deadlines and Scheduling 5759 57608.3.1 Inserting deadlines or schedules 5761-------------------------------------- 5762 5763The following commands allow you to quickly insert a deadline or to 5764schedule an item:(1) 5765 5766‘C-c C-d’ (‘org-deadline’) 5767 Insert ‘DEADLINE’ keyword along with a stamp. The insertion 5768 happens in the line directly following the headline. Remove any 5769 ‘CLOSED’ timestamp . When called with a prefix argument, also 5770 remove any existing deadline from the entry. Depending on the 5771 variable ‘org-log-redeadline’, take a note when changing an 5772 existing deadline(2). 5773 5774‘C-c C-s’ (‘org-schedule’) 5775 Insert ‘SCHEDULED’ keyword along with a stamp. The insertion 5776 happens in the line directly following the headline. Remove any 5777 ‘CLOSED’ timestamp. When called with a prefix argument, also 5778 remove the scheduling date from the entry. Depending on the 5779 variable ‘org-log-reschedule’, take a note when changing an 5780 existing scheduling time(3). 5781 5782‘C-c / d’ (‘org-check-deadlines’) 5783 Create a sparse tree with all deadlines that are either past-due, 5784 or which will become due within ‘org-deadline-warning-days’. With 5785 ‘C-u’ prefix, show all deadlines in the file. With a numeric 5786 prefix, check that many days. For example, ‘C-1 C-c / d’ shows all 5787 deadlines due tomorrow. 5788 5789‘C-c / b’ (‘org-check-before-date’) 5790 Sparse tree for deadlines and scheduled items before a given date. 5791 5792‘C-c / a’ (‘org-check-after-date’) 5793 Sparse tree for deadlines and scheduled items after a given date. 5794 5795 Note that ‘org-schedule’ and ‘org-deadline’ supports setting the date 5796by indicating a relative time e.g., ‘+1d’ sets the date to the next day 5797after today, and ‘--1w’ sets the date to the previous week before any 5798current timestamp. 5799 5800 ---------- Footnotes ---------- 5801 5802 (1) The ‘SCHEDULED’ and ‘DEADLINE’ dates are inserted on the line 5803right below the headline. Do not put any text between this line and the 5804headline. 5805 5806 (2) Note the corresponding ‘STARTUP’ options ‘logredeadline’, 5807‘lognoteredeadline’, and ‘nologredeadline’. 5808 5809 (3) Note the corresponding ‘STARTUP’ options ‘logreschedule’, 5810‘lognotereschedule’, and ‘nologreschedule’. 5811 5812 5813File: org.info, Node: Repeated tasks, Prev: Inserting deadline/schedule, Up: Deadlines and Scheduling 5814 58158.3.2 Repeated tasks 5816-------------------- 5817 5818Some tasks need to be repeated again and again. Org mode helps to 5819organize such tasks using a so-called repeater in a ‘DEADLINE’, 5820‘SCHEDULED’, or plain timestamps(1). In the following example: 5821 5822 ** TODO Pay the rent 5823 DEADLINE: <2005-10-01 Sat +1m> 5824 5825the ‘+1m’ is a repeater; the intended interpretation is that the task 5826has a deadline on ‘<2005-10-01>’ and repeats itself every (one) month 5827starting from that time. You can use yearly, monthly, weekly, daily and 5828hourly repeat cookies by using the ‘y’, ‘m’, ‘w’, ‘d’ and ‘h’ letters. 5829If you need both a repeater and a special warning period in a deadline 5830entry, the repeater should come first and the warning period last 5831 5832 DEADLINE: <2005-10-01 Sat +1m -3d> 5833 5834 Deadlines and scheduled items produce entries in the agenda when they 5835are over-due, so it is important to be able to mark such an entry as 5836done once you have done so. When you mark a ‘DEADLINE’ or a ‘SCHEDULED’ 5837with the TODO keyword ‘DONE’, it no longer produces entries in the 5838agenda. The problem with this is, however, is that then also the _next_ 5839instance of the repeated entry will not be active. Org mode deals with 5840this in the following way: when you try to mark such an entry as done, 5841using ‘C-c C-t’, it shifts the base date of the repeating timestamp by 5842the repeater interval, and immediately sets the entry state back to 5843TODO(2). In the example above, setting the state to ‘DONE’ would 5844actually switch the date like this: 5845 5846 ** TODO Pay the rent 5847 DEADLINE: <2005-11-01 Tue +1m> 5848 5849 To mark a task with a repeater as DONE, use ‘C-- 1 C-c C-t’, i.e., 5850‘org-todo’ with a numeric prefix argument of ‘-1’. 5851 5852 A timestamp(3) is added under the deadline, to keep a record that you 5853actually acted on the previous instance of this deadline. 5854 5855 As a consequence of shifting the base date, this entry is no longer 5856visible in the agenda when checking past dates, but all future instances 5857will be visible. 5858 5859 With the ‘+1m’ cookie, the date shift is always exactly one month. 5860So if you have not paid the rent for three months, marking this entry 5861DONE still keeps it as an overdue deadline. Depending on the task, this 5862may not be the best way to handle it. For example, if you forgot to 5863call your father for 3 weeks, it does not make sense to call him 3 times 5864in a single day to make up for it. Finally, there are tasks, like 5865changing batteries, which should always repeat a certain time _after_ 5866the last time you did it. For these tasks, Org mode has special 5867repeaters ‘++’ and ‘.+’. For example: 5868 5869 ** TODO Call Father 5870 DEADLINE: <2008-02-10 Sun ++1w> 5871 Marking this DONE shifts the date by at least one week, but also 5872 by as many weeks as it takes to get this date into the future. 5873 However, it stays on a Sunday, even if you called and marked it 5874 done on Saturday. 5875 5876 ** TODO Empty kitchen trash 5877 DEADLINE: <2008-02-08 Fri 20:00 ++1d> 5878 Marking this DONE shifts the date by at least one day, and also 5879 by as many days as it takes to get the timestamp into the future. 5880 Since there is a time in the timestamp, the next deadline in the 5881 future will be on today's date if you complete the task before 5882 20:00. 5883 5884 ** TODO Check the batteries in the smoke detectors 5885 DEADLINE: <2005-11-01 Tue .+1m> 5886 Marking this DONE shifts the date to one month after today. 5887 5888 ** TODO Wash my hands 5889 DEADLINE: <2019-04-05 08:00 Sun .+1h> 5890 Marking this DONE shifts the date to exactly one hour from now. 5891 5892 You may have both scheduling and deadline information for a specific 5893task. If the repeater is set for the scheduling information only, you 5894probably want the repeater to be ignored after the deadline. If so, set 5895the variable ‘org-agenda-skip-scheduled-if-deadline-is-shown’ to 5896‘repeated-after-deadline’. However, any scheduling information without 5897a repeater is no longer relevant once the task is done, and thus, 5898removed upon repeating the task. If you want both scheduling and 5899deadline information to repeat after the same interval, set the same 5900repeater for both timestamps. 5901 5902 An alternative to using a repeater is to create a number of copies of 5903a task subtree, with dates shifted in each copy. The command ‘C-c C-x 5904c’ was created for this purpose; it is described in *note Structure 5905Editing::. 5906 5907 ---------- Footnotes ---------- 5908 5909 (1) Org does not repeat inactive timestamps, however. See *note 5910Timestamps::. 5911 5912 (2) In fact, the target state is taken from, in this sequence, the 5913‘REPEAT_TO_STATE’ property, the variable ‘org-todo-repeat-to-state’ if 5914it is a string, the previous TODO state if ‘org-todo-repeat-to-state’ is 5915‘t’, or the first state of the TODO state sequence. 5916 5917 (3) You can change this using the option ‘org-log-repeat’, or the 5918‘STARTUP’ options ‘logrepeat’, ‘lognoterepeat’, and ‘nologrepeat’. With 5919‘lognoterepeat’, you will also be prompted for a note. 5920 5921 5922File: org.info, Node: Clocking Work Time, Next: Effort Estimates, Prev: Deadlines and Scheduling, Up: Dates and Times 5923 59248.4 Clocking Work Time 5925====================== 5926 5927Org mode allows you to clock the time you spend on specific tasks in a 5928project. When you start working on an item, you can start the clock. 5929When you stop working on that task, or when you mark the task done, the 5930clock is stopped and the corresponding time interval is recorded. It 5931also computes the total time spent on each subtree(1) of a project. And 5932it remembers a history or tasks recently clocked, so that you can jump 5933quickly between a number of tasks absorbing your time. 5934 5935 To save the clock history across Emacs sessions, use: 5936 5937 (setq org-clock-persist 'history) 5938 (org-clock-persistence-insinuate) 5939 5940 When you clock into a new task after resuming Emacs, the incomplete 5941clock(2) is retrieved (see *note Resolving idle time (1)::) and you are 5942prompted about what to do with it. 5943 5944* Menu: 5945 5946* Clocking commands:: Starting and stopping a clock. 5947* The clock table:: Detailed reports. 5948* Resolving idle time:: Resolving time when you’ve been idle. 5949 5950 ---------- Footnotes ---------- 5951 5952 (1) Clocking only works if all headings are indented with less than 595330 stars. This is a hard-coded limitation of ‘lmax’ in ‘org-clock-sum’. 5954 5955 (2) To resume the clock under the assumption that you have worked on 5956this task while outside Emacs, use ‘(setq org-clock-persist t)’. 5957 5958 5959File: org.info, Node: Clocking commands, Next: The clock table, Up: Clocking Work Time 5960 59618.4.1 Clocking commands 5962----------------------- 5963 5964‘C-c C-x C-i’ (‘org-clock-in’) 5965 Start the clock on the current item (clock-in). This inserts the 5966 ‘CLOCK’ keyword together with a timestamp. If this is not the 5967 first clocking of this item, the multiple ‘CLOCK’ lines are wrapped 5968 into a ‘LOGBOOK’ drawer (see also the variable 5969 ‘org-clock-into-drawer’). You can also overrule the setting of 5970 this variable for a subtree by setting a ‘CLOCK_INTO_DRAWER’ or 5971 ‘LOG_INTO_DRAWER’ property. When called with a ‘C-u’ prefix 5972 argument, select the task from a list of recently clocked tasks. 5973 With two ‘C-u C-u’ prefixes, clock into the task at point and mark 5974 it as the default task; the default task is always be available 5975 with letter ‘d’ when selecting a clocking task. With three ‘C-u 5976 C-u C-u’ prefixes, force continuous clocking by starting the clock 5977 when the last clock stopped. 5978 5979 While the clock is running, Org shows the current clocking time in 5980 the mode line, along with the title of the task. The clock time 5981 shown is all time ever clocked for this task and its children. If 5982 the task has an effort estimate (see *note Effort Estimates::), the 5983 mode line displays the current clocking time against it(1). If the 5984 task is a repeating one (see *note Repeated tasks::), show only the 5985 time since the last reset of the task(2). You can exercise more 5986 control over show time with the ‘CLOCK_MODELINE_TOTAL’ property. 5987 It may have the values ‘current’ to show only the current clocking 5988 instance, ‘today’ to show all time clocked on this tasks today—see 5989 also the variable ‘org-extend-today-until’, ‘all’ to include all 5990 time, or ‘auto’ which is the default(3). Clicking with ‘mouse-1’ 5991 onto the mode line entry pops up a menu with clocking options. 5992 5993‘C-c C-x C-o’ (‘org-clock-out’) 5994 Stop the clock (clock-out). This inserts another timestamp at the 5995 same location where the clock was last started. It also directly 5996 computes the resulting time in inserts it after the time range as 5997 ‘=>HH:MM’. See the variable ‘org-log-note-clock-out’ for the 5998 possibility to record an additional note together with the 5999 clock-out timestamp(4). 6000 6001‘C-c C-x C-x’ (‘org-clock-in-last’) 6002 Re-clock the last clocked task. With one ‘C-u’ prefix argument, 6003 select the task from the clock history. With two ‘C-u’ prefixes, 6004 force continuous clocking by starting the clock when the last clock 6005 stopped. 6006 6007‘C-c C-x C-e’ (‘org-clock-modify-effort-estimate’) 6008 Update the effort estimate for the current clock task. 6009 6010‘C-c C-c’ or ‘C-c C-y’ (‘org-evaluate-time-range’) 6011 Recompute the time interval after changing one of the timestamps. 6012 This is only necessary if you edit the timestamps directly. If you 6013 change them with ‘S-<cursor>’ keys, the update is automatic. 6014 6015‘C-S-<UP>’ (‘org-clock-timestamps-up’) 6016‘C-S-<DOWN>’ (‘org-clock-timestamps-down’) 6017 On CLOCK log lines, increase/decrease both timestamps so that the 6018 clock duration keeps the same value. 6019 6020‘S-M-<UP>’ (‘org-timestamp-up’) 6021‘S-M-<DOWN>’ (‘org-timestamp-down’) 6022 On ‘CLOCK’ log lines, increase/decrease the timestamp at point and 6023 the one of the previous, or the next, clock timestamp by the same 6024 duration. For example, if you hit ‘S-M-<UP>’ to increase a 6025 clocked-out timestamp by five minutes, then the clocked-in 6026 timestamp of the next clock is increased by five minutes. 6027 6028‘C-c C-t’ (‘org-todo’) 6029 Changing the TODO state of an item to DONE automatically stops the 6030 clock if it is running in this same item. 6031 6032‘C-c C-x C-q’ (‘org-clock-cancel’) 6033 Cancel the current clock. This is useful if a clock was started by 6034 mistake, or if you ended up working on something else. 6035 6036‘C-c C-x C-j’ (‘org-clock-goto’) 6037 Jump to the headline of the currently clocked in task. With a 6038 ‘C-u’ prefix argument, select the target task from a list of 6039 recently clocked tasks. 6040 6041‘C-c C-x C-d’ (‘org-clock-display’) 6042 Display time summaries for each subtree in the current buffer. 6043 This puts overlays at the end of each headline, showing the total 6044 time recorded under that heading, including the time of any 6045 subheadings. You can use visibility cycling to study the tree, but 6046 the overlays disappear when you change the buffer (see variable 6047 ‘org-remove-highlights-with-change’) or press ‘C-c C-c’. 6048 6049 The ‘l’ key may be used in the agenda (see *note Weekly/daily 6050agenda::) to show which tasks have been worked on or closed during a 6051day. 6052 6053 *Important:* note that both ‘org-clock-out’ and ‘org-clock-in-last’ 6054can have a global keybinding and do not modify the window disposition. 6055 6056 ---------- Footnotes ---------- 6057 6058 (1) To add an effort estimate “on the fly”, hook a function doing 6059this to ‘org-clock-in-prepare-hook’. 6060 6061 (2) The last reset of the task is recorded by the ‘LAST_REPEAT’ 6062property. 6063 6064 (3) See also the variable ‘org-clock-mode-line-total’. 6065 6066 (4) The corresponding in-buffer setting is: ‘#+STARTUP: 6067lognoteclock-out’. 6068 6069 6070File: org.info, Node: The clock table, Next: Resolving idle time, Prev: Clocking commands, Up: Clocking Work Time 6071 60728.4.2 The clock table 6073--------------------- 6074 6075Org mode can produce quite complex reports based on the time clocking 6076information. Such a report is called a _clock table_, because it is 6077formatted as one or several Org tables. 6078 6079‘org-clock-report’ 6080 Insert or update a clock table. When called with a prefix 6081 argument, jump to the first clock table in the current document and 6082 update it. The clock table includes archived trees. 6083 6084 This command can be invoked by calling 6085 ‘org-dynamic-block-insert-dblock’ (‘C-c C-x x’) and selecting 6086 “clocktable” (see *note Dynamic Blocks::). 6087 6088‘C-c C-c’ or ‘C-c C-x C-u’ (‘org-dblock-update’) 6089 Update dynamic block at point. Point needs to be in the ‘BEGIN’ 6090 line of the dynamic block. 6091 6092‘C-u C-c C-x C-u’ 6093 Update all dynamic blocks (see *note Dynamic Blocks::). This is 6094 useful if you have several clock table blocks in a buffer. 6095 6096‘S-<LEFT>’ 6097‘S-<RIGHT>’ (‘org-clocktable-try-shift’) 6098 Shift the current ‘:block’ interval and update the table. Point 6099 needs to be in the ‘#+BEGIN: clocktable’ line for this command. If 6100 ‘:block’ is ‘today’, it is shifted to ‘today-1’, etc. 6101 6102 Here is an example of the frame for a clock table as it is inserted 6103into the buffer by ‘org-clock-report’: 6104 6105 #+BEGIN: clocktable :maxlevel 2 :emphasize nil :scope file 6106 #+END: clocktable 6107 6108 The ‘#+BEGIN’ line contains options to define the scope, structure, 6109and formatting of the report. Defaults for all these options can be 6110configured in the variable ‘org-clocktable-defaults’. 6111 6112 First there are options that determine which clock entries are to be 6113selected: 6114 6115‘:maxlevel’ 6116 Maximum level depth to which times are listed in the table. Clocks 6117 at deeper levels are summed into the upper level. 6118 6119‘:scope’ 6120 The scope to consider. This can be any of the following: 6121 6122 ‘nil’ the current buffer or narrowed region 6123 ‘file’ the full current buffer 6124 ‘subtree’ the subtree where the clocktable is located 6125 ‘treeN’ the surrounding level N tree, for example ‘tree3’ 6126 ‘tree’ the surrounding level 1 tree 6127 ‘agenda’ all agenda files 6128 ‘("file" ...)’ scan these files 6129 ‘FUNCTION’ scan files returned by calling FUNCTION with no argument 6130 ‘file-with-archives’ current file and its archives 6131 ‘agenda-with-archives’ all agenda files, including archives 6132 6133‘:block’ 6134 The time block to consider. This block is specified either 6135 absolutely, or relative to the current time and may be any of these 6136 formats: 6137 6138 ‘2007-12-31’ New year eve 2007 6139 ‘2007-12’ December 2007 6140 ‘2007-W50’ ISO-week 50 in 2007 6141 ‘2007-Q2’ 2nd quarter in 2007 6142 ‘2007’ the year 2007 6143 ‘today’, ‘yesterday’, ‘today-N’ a relative day 6144 ‘thisweek’, ‘lastweek’, ‘thisweek-N’ a relative week 6145 ‘thismonth’, ‘lastmonth’, ‘thismonth-N’ a relative month 6146 ‘thisyear’, ‘lastyear’, ‘thisyear-N’ a relative year 6147 ‘untilnow’(1) all clocked time ever 6148 6149 When this option is not set, Org falls back to the value in 6150 ‘org-clock-display-default-range’, which defaults to the current 6151 year. 6152 6153 Use ‘S-<LEFT>’ or ‘S-<RIGHT>’ to shift the time interval. 6154 6155‘:tstart’ 6156 A time string specifying when to start considering times. Relative 6157 times like ‘"<-2w>"’ can also be used. See *note Matching tags and 6158 properties:: for relative time syntax. 6159 6160‘:tend’ 6161 A time string specifying when to stop considering times. Relative 6162 times like ‘"<now>"’ can also be used. See *note Matching tags and 6163 properties:: for relative time syntax. 6164 6165‘:wstart’ 6166 The starting day of the week. The default is 1 for Monday. 6167 6168‘:mstart’ 6169 The starting day of the month. The default is 1 for the first. 6170 6171‘:step’ 6172 Set to ‘day’, ‘week’, ‘semimonth’, ‘month’, or ‘year’ to split the 6173 table into chunks. To use this, either ‘:block’, or ‘:tstart’ and 6174 ‘:tend’ are required. 6175 6176‘:stepskip0’ 6177 When non-‘nil’, do not show steps that have zero time. 6178 6179‘:fileskip0’ 6180 When non-‘nil’, do not show table sections from files which did not 6181 contribute. 6182 6183‘:match’ 6184 A tags match to select entries that should contribute. See *note 6185 Matching tags and properties:: for the match syntax. 6186 6187 Then there are options that determine the formatting of the table. 6188There options are interpreted by the function 6189‘org-clocktable-write-default’, but you can specify your own function 6190using the ‘:formatter’ parameter. 6191 6192‘:emphasize’ 6193 When non-‘nil’, emphasize level one and level two items. 6194 6195‘:lang’ 6196 Language(2) to use for descriptive cells like “Task”. 6197 6198‘:link’ 6199 Link the item headlines in the table to their origins. 6200 6201‘:narrow’ 6202 An integer to limit the width of the headline column in the Org 6203 table. If you write it like ‘50!’, then the headline is also 6204 shortened in export. 6205 6206‘:indent’ 6207 Indent each headline field according to its level. 6208 6209‘:hidefiles’ 6210 Hide the file column when multiple files are used to produce the 6211 table. 6212 6213‘:tcolumns’ 6214 Number of columns to be used for times. If this is smaller than 6215 ‘:maxlevel’, lower levels are lumped into one column. 6216 6217‘:level’ 6218 Should a level number column be included? 6219 6220‘:sort’ 6221 A cons cell containing the column to sort and a sorting type. 6222 E.g., ‘:sort (1 . ?a)’ sorts the first column alphabetically. 6223 6224‘:compact’ 6225 Abbreviation for ‘:level nil :indent t :narrow 40! :tcolumns 1’. 6226 All are overwritten except if there is an explicit ‘:narrow’. 6227 6228‘:timestamp’ 6229 A timestamp for the entry, when available. Look for ‘SCHEDULED’, 6230 ‘DEADLINE’, ‘TIMESTAMP’ and ‘TIMESTAMP_IA’ special properties (see 6231 *note Special Properties::), in this order. 6232 6233‘:tags’ 6234 When this flag is non-‘nil’, show the headline’s tags. 6235 6236‘:properties’ 6237 List of properties shown in the table. Each property gets its own 6238 column. 6239 6240‘:inherit-props’ 6241 When this flag is non-‘nil’, the values for ‘:properties’ are 6242 inherited. 6243 6244‘:formula’ 6245 Content of a ‘TBLFM’ keyword to be added and evaluated. As a 6246 special case, ‘:formula %’ adds a column with % time. If you do 6247 not specify a formula here, any existing formula below the clock 6248 table survives updates and is evaluated. 6249 6250‘:formatter’ 6251 A function to format clock data and insert it into the buffer. 6252 6253 To get a clock summary of the current level 1 tree, for the current 6254day, you could write: 6255 6256 #+BEGIN: clocktable :maxlevel 2 :block today :scope tree1 :link t 6257 #+END: clocktable 6258 6259To use a specific time range you could write(3) 6260 6261 #+BEGIN: clocktable :tstart "<2006-08-10 Thu 10:00>" 6262 :tend "<2006-08-10 Thu 12:00>" 6263 #+END: clocktable 6264 6265A range starting a week ago and ending right now could be written as 6266 6267 #+BEGIN: clocktable :tstart "<-1w>" :tend "<now>" 6268 #+END: clocktable 6269 6270A summary of the current subtree with % times would be 6271 6272 #+BEGIN: clocktable :scope subtree :link t :formula % 6273 #+END: clocktable 6274 6275A horizontally compact representation of everything clocked during last 6276week would be 6277 6278 #+BEGIN: clocktable :scope agenda :block lastweek :compact t 6279 #+END: clocktable 6280 6281 ---------- Footnotes ---------- 6282 6283 (1) When using ‘:step’, ‘untilnow’ starts from the beginning of 2003, 6284not the beginning of time. 6285 6286 (2) Language terms can be set through the variable 6287‘org-clock-clocktable-language-setup’. 6288 6289 (3) Note that all parameters must be specified in a single line—the 6290line is broken here only to fit it into the manual. 6291 6292 6293File: org.info, Node: Resolving idle time, Prev: The clock table, Up: Clocking Work Time 6294 62958.4.3 Resolving idle time and continuous clocking 6296------------------------------------------------- 6297 6298Resolving idle time 6299................... 6300 6301If you clock in on a work item, and then walk away from your 6302computer—perhaps to take a phone call—you often need to “resolve” the 6303time you were away by either subtracting it from the current clock, or 6304applying it to another one. 6305 6306 By customizing the variable ‘org-clock-idle-time’ to some integer, 6307such as 10 or 15, Emacs can alert you when you get back to your computer 6308after being idle for that many minutes(1), and ask what you want to do 6309with the idle time. There will be a question waiting for you when you 6310get back, indicating how much idle time has passed constantly updated 6311with the current amount, as well as a set of choices to correct the 6312discrepancy: 6313 6314‘k’ 6315 To keep some or all of the minutes and stay clocked in, press ‘k’. 6316 Org asks how many of the minutes to keep. Press ‘<RET>’ to keep 6317 them all, effectively changing nothing, or enter a number to keep 6318 that many minutes. 6319 6320‘K’ 6321 If you use the shift key and press ‘K’, it keeps however many 6322 minutes you request and then immediately clock out of that task. 6323 If you keep all of the minutes, this is the same as just clocking 6324 out of the current task. 6325 6326‘s’ 6327 To keep none of the minutes, use ‘s’ to subtract all the away time 6328 from the clock, and then check back in from the moment you 6329 returned. 6330 6331‘S’ 6332 To keep none of the minutes and just clock out at the start of the 6333 away time, use the shift key and press ‘S’. Remember that using 6334 shift always leave you clocked out, no matter which option you 6335 choose. 6336 6337‘C’ 6338 To cancel the clock altogether, use ‘C’. Note that if instead of 6339 canceling you subtract the away time, and the resulting clock 6340 amount is less than a minute, the clock is still canceled rather 6341 than cluttering up the log with an empty entry. 6342 6343 What if you subtracted those away minutes from the current clock, and 6344now want to apply them to a new clock? Simply clock in to any task 6345immediately after the subtraction. Org will notice that you have 6346subtracted time “on the books”, so to speak, and will ask if you want to 6347apply those minutes to the next task you clock in on. 6348 6349 There is one other instance when this clock resolution magic occurs. 6350Say you were clocked in and hacking away, and suddenly your cat chased a 6351mouse who scared a hamster that crashed into your UPS’s power button! 6352You suddenly lose all your buffers, but thanks to auto-save you still 6353have your recent Org mode changes, including your last clock in. 6354 6355 If you restart Emacs and clock into any task, Org will notice that 6356you have a dangling clock which was never clocked out from your last 6357session. Using that clock’s starting time as the beginning of the 6358unaccounted-for period, Org will ask how you want to resolve that time. 6359The logic and behavior is identical to dealing with away time due to 6360idleness; it is just happening due to a recovery event rather than a set 6361amount of idle time. 6362 6363 You can also check all the files visited by your Org agenda for 6364dangling clocks at any time using ‘M-x org-resolve-clocks <RET>’ (or 6365‘C-c C-x C-z’). 6366 6367Continuous clocking 6368................... 6369 6370You may want to start clocking from the time when you clocked out the 6371previous task. To enable this systematically, set 6372‘org-clock-continuously’ to non-‘nil’. Each time you clock in, Org 6373retrieves the clock-out time of the last clocked entry for this session, 6374and start the new clock from there. 6375 6376 If you only want this from time to time, use three universal prefix 6377arguments with ‘org-clock-in’ and two ‘C-u C-u’ with 6378‘org-clock-in-last’. 6379 6380Clocking out automatically after some idle time 6381............................................... 6382 6383When you often forget to clock out before being idle and you don’t want 6384to manually set the clocking time to take into account, you can set 6385‘org-clock-auto-clockout-timer’ to a number of seconds and add 6386‘(org-clock-auto-clockout-insinuate)’ to your ‘.emacs’ file. 6387 6388 When the clock is running and Emacs is idle for more than this number 6389of seconds, the clock will be clocked out automatically. 6390 6391 Use ‘M-x org-clock-toggle-auto-clockout RET’ to temporarily turn this 6392on or off. 6393 6394 ---------- Footnotes ---------- 6395 6396 (1) On computers using macOS, idleness is based on actual user 6397idleness, not just Emacs’ idle time. For X11, you can install a utility 6398program ‘x11idle.c’, available in the ‘contrib/scripts/’ directory of 6399the Org Git distribution, or install the xprintidle package and set it 6400to the variable ‘org-clock-x11idle-program-name’ if you are running 6401Debian, to get the same general treatment of idleness. On other 6402systems, idle time refers to Emacs idle time only. 6403 6404 6405File: org.info, Node: Effort Estimates, Next: Timers, Prev: Clocking Work Time, Up: Dates and Times 6406 64078.5 Effort Estimates 6408==================== 6409 6410If you want to plan your work in a very detailed way, or if you need to 6411produce offers with quotations of the estimated work effort, you may 6412want to assign effort estimates to entries. If you are also clocking 6413your work, you may later want to compare the planned effort with the 6414actual working time, a great way to improve planning estimates. 6415 6416 Effort estimates are stored in a special property ‘EFFORT’. Multiple 6417formats are supported, such as ‘3:12’, ‘1:23:45’, or ‘1d3h5min’; see the 6418file ‘org-duration.el’ for more detailed information about the format. 6419 6420 You can set the effort for an entry with the following commands: 6421 6422‘C-c C-x e’ (‘org-set-effort’) 6423 Set the effort estimate for the current entry. With a prefix 6424 argument, set it to the next allowed value—see below. This command 6425 is also accessible from the agenda with the ‘e’ key. 6426 6427‘C-c C-x C-e’ (‘org-clock-modify-effort-estimate’) 6428 Modify the effort estimate of the item currently being clocked. 6429 6430 Clearly the best way to work with effort estimates is through column 6431view (see *note Column View::). You should start by setting up discrete 6432values for effort estimates, and a ‘COLUMNS’ format that displays these 6433values together with clock sums—if you want to clock your time. For a 6434specific buffer you can use: 6435 6436 #+PROPERTY: Effort_ALL 0 0:10 0:30 1:00 2:00 3:00 4:00 5:00 6:00 7:00 6437 #+COLUMNS: %40ITEM(Task) %17Effort(Estimated Effort){:} %CLOCKSUM 6438 6439or, even better, you can set up these values globally by customizing the 6440variables ‘org-global-properties’ and ‘org-columns-default-format’. In 6441particular if you want to use this setup also in the agenda, a global 6442setup may be advised. 6443 6444 The way to assign estimates to individual items is then to switch to 6445column mode, and to use ‘S-<RIGHT>’ and ‘S-<LEFT>’ to change the value. 6446The values you enter are immediately summed up in the hierarchy. In the 6447column next to it, any clocked time is displayed. 6448 6449 If you switch to column view in the daily/weekly agenda, the effort 6450column summarizes the estimated work effort for each day(1), and you can 6451use this to find space in your schedule. To get an overview of the 6452entire part of the day that is committed, you can set the option 6453‘org-agenda-columns-add-appointments-to-effort-sum’. The appointments 6454on a day that take place over a specified time interval are then also 6455added to the load estimate of the day. 6456 6457 Effort estimates can be used in secondary agenda filtering that is 6458triggered with the ‘/’ key in the agenda (see *note Agenda Commands::). 6459If you have these estimates defined consistently, two or three key 6460presses narrow down the list to stuff that fits into an available time 6461slot. 6462 6463 ---------- Footnotes ---------- 6464 6465 (1) Please note the pitfalls of summing hierarchical data in a flat 6466list (see *note Agenda Column View::). 6467 6468 6469File: org.info, Node: Timers, Prev: Effort Estimates, Up: Dates and Times 6470 64718.6 Taking Notes with a Relative Timer 6472====================================== 6473 6474Org provides two types of timers. There is a relative timer that counts 6475up, which can be useful when taking notes during, for example, a meeting 6476or a video viewing. There is also a countdown timer. 6477 6478 The relative and countdown are started with separate commands. 6479 6480‘C-c C-x 0’ (‘org-timer-start’) 6481 Start or reset the relative timer. By default, the timer is set to 6482 0. When called with a ‘C-u’ prefix, prompt the user for a starting 6483 offset. If there is a timer string at point, this is taken as the 6484 default, providing a convenient way to restart taking notes after a 6485 break in the process. When called with a double prefix argument 6486 ‘C-u C-u’, change all timer strings in the active region by a 6487 certain amount. This can be used to fix timer strings if the timer 6488 was not started at exactly the right moment. 6489 6490‘C-c C-x ;’ (‘org-timer-set-timer’) 6491 Start a countdown timer. The user is prompted for a duration. 6492 ‘org-timer-default-timer’ sets the default countdown value. Giving 6493 a numeric prefix argument overrides this default value. This 6494 command is available as ‘;’ in agenda buffers. 6495 6496 Once started, relative and countdown timers are controlled with the 6497same commands. 6498 6499‘C-c C-x .’ (‘org-timer’) 6500 Insert a relative time into the buffer. The first time you use 6501 this, the timer starts. Using a prefix argument restarts it. 6502 6503‘C-c C-x -’ (‘org-timer-item’) 6504 Insert a description list item with the current relative time. 6505 With a prefix argument, first reset the timer to 0. 6506 6507‘M-<RET>’ (‘org-insert-heading’) 6508 Once the timer list is started, you can also use ‘M-<RET>’ to 6509 insert new timer items. 6510 6511‘C-c C-x ,’ (‘org-timer-pause-or-continue’) 6512 Pause the timer, or continue it if it is already paused. 6513 6514‘C-c C-x _’ (‘org-timer-stop’) 6515 Stop the timer. After this, you can only start a new timer, not 6516 continue the old one. This command also removes the timer from the 6517 mode line. 6518 6519 6520File: org.info, Node: Refiling and Archiving, Next: Capture and Attachments, Prev: Dates and Times, Up: Top 6521 65229 Refiling and Archiving 6523************************ 6524 6525Once information is in the system, it may need to be moved around. Org 6526provides Refile, Copy and Archive commands for this. Refile and Copy 6527helps with moving and copying outlines. Archiving helps to keep the 6528system compact and fast. 6529 6530* Menu: 6531 6532* Refile and Copy:: Moving/copying a tree from one place to another. 6533* Archiving:: What to do with finished products. 6534 6535 6536File: org.info, Node: Refile and Copy, Next: Archiving, Up: Refiling and Archiving 6537 65389.1 Refile and Copy 6539=================== 6540 6541When reviewing the captured data, you may want to refile or to copy some 6542of the entries into a different list, for example into a project. 6543Cutting, finding the right location, and then pasting the note is 6544cumbersome. To simplify this process, you can use the following special 6545command: 6546 6547‘C-c C-w’ (‘org-refile’) 6548 Refile the entry or region at point. This command offers possible 6549 locations for refiling the entry and lets you select one with 6550 completion. The item (or all items in the region) is filed below 6551 the target heading as a subitem. Depending on 6552 ‘org-reverse-note-order’, it is either the first or last subitem. 6553 6554 By default, all level 1 headlines in the current buffer are 6555 considered to be targets, but you can have more complex definitions 6556 across a number of files. See the variable ‘org-refile-targets’ 6557 for details. If you would like to select a location via a 6558 file-path-like completion along the outline path, see the variables 6559 ‘org-refile-use-outline-path’ and 6560 ‘org-outline-path-complete-in-steps’. If you would like to be able 6561 to create new nodes as new parents for refiling on the fly, check 6562 the variable ‘org-refile-allow-creating-parent-nodes’. When the 6563 variable ‘org-log-refile’(1) is set, a timestamp or a note is 6564 recorded whenever an entry is refiled. 6565 6566‘C-u C-c C-w’ 6567 Use the refile interface to jump to a heading. 6568 6569‘C-u C-u C-c C-w’ (‘org-refile-goto-last-stored’) 6570 Jump to the location where ‘org-refile’ last moved a tree to. 6571 6572‘C-2 C-c C-w’ 6573 Refile as the child of the item currently being clocked. 6574 6575‘C-3 C-c C-w’ 6576 Refile and keep the entry in place. Also see ‘org-refile-keep’ to 6577 make this the default behavior, and beware that this may result in 6578 duplicated ‘ID’ properties. 6579 6580‘C-0 C-c C-w’ or ‘C-u C-u C-u C-c C-w’ (‘org-refile-cache-clear’) 6581 Clear the target cache. Caching of refile targets can be turned on 6582 by setting ‘org-refile-use-cache’. To make the command see new 6583 possible targets, you have to clear the cache with this command. 6584 6585‘C-c M-w’ (‘org-refile-copy’) 6586 Copying works like refiling, except that the original note is not 6587 deleted. 6588 6589 ---------- Footnotes ---------- 6590 6591 (1) Note the corresponding ‘STARTUP’ options ‘logrefile’, 6592‘lognoterefile’, and ‘nologrefile’. 6593 6594 6595File: org.info, Node: Archiving, Prev: Refile and Copy, Up: Refiling and Archiving 6596 65979.2 Archiving 6598============= 6599 6600When a project represented by a (sub)tree is finished, you may want to 6601move the tree out of the way and to stop it from contributing to the 6602agenda. Archiving is important to keep your working files compact and 6603global searches like the construction of agenda views fast. 6604 6605‘C-c C-x C-a’ (‘org-archive-subtree-default’) 6606 Archive the current entry using the command specified in the 6607 variable ‘org-archive-default-command’. 6608 6609* Menu: 6610 6611* Moving subtrees:: Moving a tree to an archive file. 6612* Internal archiving:: Switch off a tree but keep it in the file. 6613 6614 6615File: org.info, Node: Moving subtrees, Next: Internal archiving, Up: Archiving 6616 66179.2.1 Moving a tree to an archive file 6618-------------------------------------- 6619 6620The most common archiving action is to move a project tree to another 6621file, the archive file. 6622 6623‘C-c C-x C-s’ or short ‘C-c $’ (‘org-archive-subtree’) 6624 Archive the subtree starting at point position to the location 6625 given by ‘org-archive-location’. 6626 6627‘C-u C-c C-x C-s’ 6628 Check if any direct children of the current headline could be moved 6629 to the archive. To do this, check each subtree for open TODO 6630 entries. If none is found, the command offers to move it to the 6631 archive location. If point is _not_ on a headline when this 6632 command is invoked, check level 1 trees. 6633 6634‘C-u C-u C-c C-x C-s’ 6635 As above, but check subtree for timestamps instead of TODO entries. 6636 The command offers to archive the subtree if it _does_ contain a 6637 timestamp, and that timestamp is in the past. 6638 6639 The default archive location is a file in the same directory as the 6640current file, with the name derived by appending ‘_archive’ to the 6641current file name. You can also choose what heading to file archived 6642items under, with the possibility to add them to a datetree in a file. 6643For information and examples on how to specify the file and the heading, 6644see the documentation string of the variable ‘org-archive-location’. 6645 6646 There is also an in-buffer option for setting this variable, for 6647example: 6648 6649 #+ARCHIVE: %s_done:: 6650 6651 If you would like to have a special archive location for a single 6652entry or a (sub)tree, give the entry an ‘ARCHIVE’ property with the 6653location as the value (see *note Properties and Columns::). 6654 6655 When a subtree is moved, it receives a number of special properties 6656that record context information like the file from where the entry came, 6657its outline path the archiving time etc. Configure the variable 6658‘org-archive-save-context-info’ to adjust the amount of information 6659added. 6660 6661 When ‘org-archive-subtree-save-file-p’ is non-‘nil’, save the target 6662archive buffer. 6663 6664 6665File: org.info, Node: Internal archiving, Prev: Moving subtrees, Up: Archiving 6666 66679.2.2 Internal archiving 6668------------------------ 6669 6670If you want to just switch off—for agenda views—certain subtrees without 6671moving them to a different file, you can use the ‘ARCHIVE’ tag. 6672 6673 A headline that is marked with the ‘ARCHIVE’ tag (see *note Tags::) 6674stays at its location in the outline tree, but behaves in the following 6675way: 6676 6677 • It does not open when you attempt to do so with a visibility 6678 cycling command (see *note Visibility Cycling::). You can force 6679 cycling archived subtrees with ‘C-<TAB>’, or by setting the option 6680 ‘org-cycle-open-archived-trees’. Also normal outline commands, 6681 like ‘outline-show-all’, open archived subtrees. 6682 6683 • During sparse tree construction (see *note Sparse Trees::), matches 6684 in archived subtrees are not exposed, unless you configure the 6685 option ‘org-sparse-tree-open-archived-trees’. 6686 6687 • During agenda view construction (see *note Agenda Views::), the 6688 content of archived trees is ignored unless you configure the 6689 option ‘org-agenda-skip-archived-trees’, in which case these trees 6690 are always included. In the agenda you can press ‘v a’ to get 6691 archives temporarily included. 6692 6693 • Archived trees are not exported (see *note Exporting::), only the 6694 headline is. Configure the details using the variable 6695 ‘org-export-with-archived-trees’. 6696 6697 • Archived trees are excluded from column view unless the variable 6698 ‘org-columns-skip-archived-trees’ is configured to ‘nil’. 6699 6700 The following commands help manage the ‘ARCHIVE’ tag: 6701 6702‘C-c C-x a’ (‘org-toggle-archive-tag’) 6703 Toggle the archive tag for the current headline. When the tag is 6704 set, the headline changes to a shadowed face, and the subtree below 6705 it is hidden. 6706 6707‘C-u C-c C-x a’ 6708 Check if any direct children of the current headline should be 6709 archived. To do this, check each subtree for open TODO entries. 6710 If none is found, the command offers to set the ‘ARCHIVE’ tag for 6711 the child. If point is _not_ on a headline when this command is 6712 invoked, check the level 1 trees. 6713 6714‘C-c C-<TAB>’ (‘org-force-cycle-archived’) 6715 Cycle a tree even if it is tagged with ‘ARCHIVE’. 6716 6717‘C-c C-x A’ (‘org-archive-to-archive-sibling’) 6718 Move the current entry to the _Archive Sibling_. This is a sibling 6719 of the entry with the heading ‘Archive’ and the archive tag. The 6720 entry becomes a child of that sibling and in this way retains a lot 6721 of its original context, including inherited tags and approximate 6722 position in the outline. 6723 6724 6725File: org.info, Node: Capture and Attachments, Next: Agenda Views, Prev: Refiling and Archiving, Up: Top 6726 672710 Capture and Attachments 6728************************** 6729 6730An important part of any organization system is the ability to quickly 6731capture new ideas and tasks, and to associate reference material with 6732them. Org does this using a process called _capture_. It also can 6733store files related to a task (_attachments_) in a special directory. 6734Finally, it can parse RSS feeds for information. To learn how to let 6735external programs (for example a web browser) trigger Org to capture 6736material, see *note Protocols::. 6737 6738* Menu: 6739 6740* Capture:: Capturing new stuff. 6741* Attachments:: Attach files to outlines. 6742* RSS Feeds:: Getting input from RSS feeds. 6743 6744 6745File: org.info, Node: Capture, Next: Attachments, Up: Capture and Attachments 6746 674710.1 Capture 6748============ 6749 6750Capture lets you quickly store notes with little interruption of your 6751work flow. Org’s method for capturing new items is heavily inspired by 6752John Wiegley’s excellent Remember package. 6753 6754* Menu: 6755 6756* Setting up capture:: Where notes will be stored. 6757* Using capture:: Commands to invoke and terminate capture. 6758* Capture templates:: Define the outline of different note types. 6759 6760 6761File: org.info, Node: Setting up capture, Next: Using capture, Up: Capture 6762 676310.1.1 Setting up capture 6764------------------------- 6765 6766The following customization sets a default target file for notes. 6767 6768 (setq org-default-notes-file (concat org-directory "/notes.org")) 6769 6770 You may also define a global key for capturing new material (see 6771*note Activation::). 6772 6773 6774File: org.info, Node: Using capture, Next: Capture templates, Prev: Setting up capture, Up: Capture 6775 677610.1.2 Using capture 6777-------------------- 6778 6779‘M-x org-capture’ (‘org-capture’) 6780 Display the capture templates menu. If you have templates defined 6781 (see *note Capture templates::), it offers these templates for 6782 selection or use a new Org outline node as the default template. 6783 It inserts the template into the target file and switch to an 6784 indirect buffer narrowed to this new node. You may then insert the 6785 information you want. 6786 6787‘C-c C-c’ (‘org-capture-finalize’) 6788 Once you have finished entering information into the capture 6789 buffer, ‘C-c C-c’ returns you to the window configuration before 6790 the capture process, so that you can resume your work without 6791 further distraction. When called with a prefix argument, finalize 6792 and then jump to the captured item. 6793 6794‘C-c C-w’ (‘org-capture-refile’) 6795 Finalize the capture process by refiling the note to a different 6796 place (see *note Refile and Copy::). Please realize that this is a 6797 normal refiling command that will be executed—so point position at 6798 the moment you run this command is important. If you have inserted 6799 a tree with a parent and children, first move point back to the 6800 parent. Any prefix argument given to this command is passed on to 6801 the ‘org-refile’ command. 6802 6803‘C-c C-k’ (‘org-capture-kill’) 6804 Abort the capture process and return to the previous state. 6805 6806 You can also call ‘org-capture’ in a special way from the agenda, 6807using the ‘k c’ key combination. With this access, any timestamps 6808inserted by the selected capture template defaults to the date at point 6809in the agenda, rather than to the current date. 6810 6811 To find the locations of the last stored capture, use ‘org-capture’ 6812with prefix commands: 6813 6814‘C-u M-x org-capture’ 6815 Visit the target location of a capture template. You get to select 6816 the template in the usual way. 6817 6818‘C-u C-u M-x org-capture’ 6819 Visit the last stored capture item in its buffer. 6820 6821 You can also jump to the bookmark ‘org-capture-last-stored’, which is 6822automatically created unless you set ‘org-capture-bookmark’ to ‘nil’. 6823 6824 To insert the capture at point in an Org buffer, call ‘org-capture’ 6825with a ‘C-0’ prefix argument. 6826 6827 6828File: org.info, Node: Capture templates, Prev: Using capture, Up: Capture 6829 683010.1.3 Capture templates 6831------------------------ 6832 6833You can use templates for different types of capture items, and for 6834different target locations. The easiest way to create such templates is 6835through the customize interface. 6836 6837‘C’ 6838 Customize the variable ‘org-capture-templates’. 6839 6840 Before we give the formal description of template definitions, let’s 6841look at an example. Say you would like to use one template to create 6842general TODO entries, and you want to put these entries under the 6843heading ‘Tasks’ in your file ‘~/org/gtd.org’. Also, a date tree in the 6844file ‘journal.org’ should capture journal entries. A possible 6845configuration would look like: 6846 6847 (setq org-capture-templates 6848 '(("t" "Todo" entry (file+headline "~/org/gtd.org" "Tasks") 6849 "* TODO %?\n %i\n %a") 6850 ("j" "Journal" entry (file+datetree "~/org/journal.org") 6851 "* %?\nEntered on %U\n %i\n %a"))) 6852 6853 If you then press ‘t’ from the capture menu, Org will prepare the 6854template for you like this: 6855 6856 * TODO 6857 [[file:LINK TO WHERE YOU INITIATED CAPTURE]] 6858 6859During expansion of the template, ‘%a’ has been replaced by a link to 6860the location from where you called the capture command. This can be 6861extremely useful for deriving tasks from emails, for example. You fill 6862in the task definition, press ‘C-c C-c’ and Org returns you to the same 6863place where you started the capture process. 6864 6865 To define special keys to capture to a particular template without 6866going through the interactive template selection, you can create your 6867key binding like this: 6868 6869 (define-key global-map (kbd "C-c x") 6870 (lambda () (interactive) (org-capture nil "x"))) 6871 6872* Menu: 6873 6874* Template elements:: What is needed for a complete template entry. 6875* Template expansion:: Filling in information about time and context. 6876* Templates in contexts:: Only show a template in a specific context. 6877 6878 6879File: org.info, Node: Template elements, Next: Template expansion, Up: Capture templates 6880 688110.1.3.1 Template elements 6882.......................... 6883 6884Now lets look at the elements of a template definition. Each entry in 6885‘org-capture-templates’ is a list with the following items: 6886 6887keys 6888 The keys that selects the template, as a string, characters only, 6889 for example ‘"a"’, for a template to be selected with a single key, 6890 or ‘"bt"’ for selection with two keys. When using several keys, 6891 keys using the same prefix key must be sequential in the list and 6892 preceded by a 2-element entry explaining the prefix key, for 6893 example: 6894 6895 ("b" "Templates for marking stuff to buy") 6896 6897 If you do not define a template for the ‘C’ key, this key opens the 6898 Customize buffer for this complex variable. 6899 6900description 6901 A short string describing the template, shown during selection. 6902 6903type 6904 The type of entry, a symbol. Valid values are: 6905 6906 ‘entry’ 6907 An Org mode node, with a headline. Will be filed as the child 6908 of the target entry or as a top-level entry. The target file 6909 should be an Org file. 6910 6911 ‘item’ 6912 A plain list item, placed in the first plain list at the 6913 target location. Again the target file should be an Org file. 6914 6915 ‘checkitem’ 6916 A checkbox item. This only differs from the plain list item 6917 by the default template. 6918 6919 ‘table-line’ 6920 A new line in the first table at the target location. Where 6921 exactly the line will be inserted depends on the properties 6922 ‘:prepend’ and ‘:table-line-pos’ (see below). 6923 6924 ‘plain’ 6925 Text to be inserted as it is. 6926 6927target 6928 Specification of where the captured item should be placed. In Org 6929 files, targets usually define a node. Entries will become children 6930 of this node. Other types will be added to the table or list in 6931 the body of this node. Most target specifications contain a file 6932 name. If that file name is the empty string, it defaults to 6933 ‘org-default-notes-file’. A file can also be given as a variable 6934 or as a function called with no argument. When an absolute path is 6935 not specified for a target, it is taken as relative to 6936 ‘org-directory’. 6937 6938 Valid values are: 6939 6940 ‘(file "path/to/file")’ 6941 Text will be placed at the beginning or end of that file. 6942 6943 ‘(id "id of existing org entry")’ 6944 Filing as child of this entry, or in the body of the entry. 6945 6946 ‘(file+headline "filename" "node headline")’ 6947 Fast configuration if the target heading is unique in the 6948 file. 6949 6950 ‘(file+olp "filename" "Level 1 heading" "Level 2" ...)’ 6951 For non-unique headings, the full path is safer. 6952 6953 ‘(file+regexp "filename" "regexp to find location")’ 6954 Use a regular expression to position point. 6955 6956 ‘(file+olp+datetree "filename" [ "Level 1 heading" ...])’ 6957 This target(1) creates a heading in a date tree(2) for today’s 6958 date. If the optional outline path is given, the tree will be 6959 built under the node it is pointing to, instead of at top 6960 level. Check out the ‘:time-prompt’ and ‘:tree-type’ 6961 properties below for additional options. 6962 6963 ‘(file+function "filename" function-finding-location)’ 6964 A function to find the right location in the file. 6965 6966 ‘(clock)’ 6967 File to the entry that is currently being clocked. 6968 6969 ‘(function function-finding-location)’ 6970 Most general way: write your own function which both visits 6971 the file and moves point to the right location. 6972 6973template 6974 The template for creating the capture item. If you leave this 6975 empty, an appropriate default template will be used. Otherwise 6976 this is a string with escape codes, which will be replaced 6977 depending on time and context of the capture call. You may also 6978 get this template string from a file(3), or dynamically, from a 6979 function using either syntax: 6980 6981 (file "/path/to/template-file") 6982 (function FUNCTION-RETURNING-THE-TEMPLATE) 6983 6984properties 6985 The rest of the entry is a property list of additional options. 6986 Recognized properties are: 6987 6988 ‘:prepend’ 6989 Normally new captured information will be appended at the 6990 target location (last child, last table line, last list item, 6991 ...). Setting this property changes that. 6992 6993 ‘:immediate-finish’ 6994 When set, do not offer to edit the information, just file it 6995 away immediately. This makes sense if the template only needs 6996 information that can be added automatically. 6997 6998 ‘:jump-to-captured’ 6999 When set, jump to the captured entry when finished. 7000 7001 ‘:empty-lines’ 7002 Set this to the number of lines to insert before and after the 7003 new item. Default 0, and the only other common value is 1. 7004 7005 ‘:empty-lines-after’ 7006 Set this to the number of lines that should be inserted after 7007 the new item. Overrides ‘:empty-lines’ for the number of 7008 lines inserted after. 7009 7010 ‘:empty-lines-before’ 7011 Set this to the number of lines that should be inserted before 7012 the new item. Overrides ‘:empty-lines’ for the number lines 7013 inserted before. 7014 7015 ‘:clock-in’ 7016 Start the clock in this item. 7017 7018 ‘:clock-keep’ 7019 Keep the clock running when filing the captured entry. 7020 7021 ‘:clock-resume’ 7022 If starting the capture interrupted a clock, restart that 7023 clock when finished with the capture. Note that ‘:clock-keep’ 7024 has precedence over ‘:clock-resume’. When setting both to 7025 non-‘nil’, the current clock will run and the previous one 7026 will not be resumed. 7027 7028 ‘:time-prompt’ 7029 Prompt for a date/time to be used for date/week trees and when 7030 filling the template. Without this property, capture uses the 7031 current date and time. Even if this property has not been 7032 set, you can force the same behavior by calling ‘org-capture’ 7033 with a ‘C-1’ prefix argument. 7034 7035 ‘:tree-type’ 7036 Use ‘week’ to make a week tree instead of the month-day tree, 7037 i.e., place the headings for each day under a heading with the 7038 current ISO week. Use ‘month’ to group entries by month only. 7039 Default is to group entries by day. 7040 7041 ‘:unnarrowed’ 7042 Do not narrow the target buffer, simply show the full buffer. 7043 Default is to narrow it so that you only see the new material. 7044 7045 ‘:table-line-pos’ 7046 Specification of the location in the table where the new line 7047 should be inserted. It should be a string like ‘II-3’ meaning 7048 that the new line should become the third line before the 7049 second horizontal separator line. 7050 7051 ‘:kill-buffer’ 7052 If the target file was not yet visited when capture was 7053 invoked, kill the buffer again after capture is completed. 7054 7055 ‘:no-save’ 7056 Do not save the target file after finishing the capture. 7057 7058 ---------- Footnotes ---------- 7059 7060 (1) Org used to offer four different targets for date/week tree 7061capture. Now, Org automatically translates these to use 7062‘file+olp+datetree’, applying the ‘:time-prompt’ and ‘:tree-type’ 7063properties. Please rewrite your date/week-tree targets using 7064‘file+olp+datetree’ since the older targets are now deprecated. 7065 7066 (2) A date tree is an outline structure with years on the highest 7067level, months or ISO weeks as sublevels and then dates on the lowest 7068level. Tags are allowed in the tree structure. 7069 7070 (3) When the file name is not absolute, Org assumes it is relative to 7071‘org-directory’. 7072 7073 7074File: org.info, Node: Template expansion, Next: Templates in contexts, Prev: Template elements, Up: Capture templates 7075 707610.1.3.2 Template expansion 7077........................... 7078 7079In the template itself, special “%-escapes”(1) allow dynamic insertion 7080of content. The templates are expanded in the order given here: 7081 7082‘%[FILE]’ 7083 Insert the contents of the file given by FILE. 7084 7085‘%(EXP)’ 7086 Evaluate Elisp expression EXP and replace it with the result. The 7087 EXP form must return a string. Only placeholders pre-existing 7088 within the template, or introduced with ‘%[file]’, are expanded 7089 this way. Since this happens after expanding non-interactive 7090 “%-escapes”, those can be used to fill the expression. 7091 7092‘%<FORMAT>’ 7093 The result of format-time-string on the FORMAT specification. 7094 7095‘%t’ 7096 Timestamp, date only. 7097 7098‘%T’ 7099 Timestamp, with date and time. 7100 7101‘%u’, ‘%U’ 7102 Like ‘%t’, ‘%T’ above, but inactive timestamps. 7103 7104‘%i’ 7105 Initial content, the region when capture is called while the region 7106 is active. If there is text before ‘%i’ on the same line, such as 7107 indentation, and ‘%i’ is not inside a ‘%(exp)’ form, that prefix is 7108 added before every line in the inserted text. 7109 7110‘%a’ 7111 Annotation, normally the link created with ‘org-store-link’. 7112 7113‘%A’ 7114 Like ‘%a’, but prompt for the description part. 7115 7116‘%l’ 7117 Like ‘%a’, but only insert the literal link. 7118 7119‘%c’ 7120 Current kill ring head. 7121 7122‘%x’ 7123 Content of the X clipboard. 7124 7125‘%k’ 7126 Title of the currently clocked task. 7127 7128‘%K’ 7129 Link to the currently clocked task. 7130 7131‘%n’ 7132 User name (taken from ‘user-full-name’). 7133 7134‘%f’ 7135 File visited by current buffer when org-capture was called. 7136 7137‘%F’ 7138 Full path of the file or directory visited by current buffer. 7139 7140‘%:keyword’ 7141 Specific information for certain link types, see below. 7142 7143‘%^g’ 7144 Prompt for tags, with completion on tags in target file. 7145 7146‘%^G’ 7147 Prompt for tags, with completion all tags in all agenda files. 7148 7149‘%^t’ 7150 Like ‘%t’, but prompt for date. Similarly ‘%^T’, ‘%^u’, ‘%^U’. 7151 You may define a prompt like ‘%^{Birthday}t’. 7152 7153‘%^C’ 7154 Interactive selection of which kill or clip to use. 7155 7156‘%^L’ 7157 Like ‘%^C’, but insert as link. 7158 7159‘%^{PROP}p’ 7160 Prompt the user for a value for property PROP. 7161 7162‘%^{PROMPT}’ 7163 Prompt the user for a string and replace this sequence with it. 7164 You may specify a default value and a completion table with 7165 ‘%^{prompt|default|completion2|completion3...}’. The arrow keys 7166 access a prompt-specific history. 7167 7168‘%\N’ 7169 Insert the text entered at the Nth ‘%^{PROMPT}’, where N is a 7170 number, starting from 1. 7171 7172‘%?’ 7173 After completing the template, position point here. 7174 7175 For specific link types, the following keywords are defined(2): 7176 7177Link type Available keywords 7178-------------------------------------------------------------------------- 7179bbdb ‘%:name’, ‘%:company’ 7180irc ‘%:server’, ‘%:port’, ‘%:nick’ 7181mh, rmail ‘%:type’, ‘%:subject’, ‘%:message-id’ 7182 ‘%:from’, ‘%:fromname’, ‘%:fromaddress’ 7183 ‘%:to’, ‘%:toname’, ‘%:toaddress’ 7184 ‘%:date’ (message date header field) 7185 ‘%:date-timestamp’ (date as active timestamp) 7186 ‘%:date-timestamp-inactive’ (date as inactive timestamp) 7187 ‘%:fromto’ (either “to NAME” or “from NAME”)(3) 7188gnus ‘%:group’, for messages also all email fields 7189w3, w3m ‘%:url’ 7190info ‘%:file’, ‘%:node’ 7191calendar ‘%:date’ 7192org-protocol ‘%:link’, ‘%:description’, ‘%:annotation’ 7193 7194 ---------- Footnotes ---------- 7195 7196 (1) If you need one of these sequences literally, escape the ‘%’ with 7197a backslash. 7198 7199 (2) If you define your own link types (see *note Adding Hyperlink 7200Types::), any property you store with ‘org-store-link-props’ can be 7201accessed in capture templates in a similar way. 7202 7203 (3) This is always the other, not the user. See the variable 7204‘org-link-from-user-regexp’. 7205 7206 7207File: org.info, Node: Templates in contexts, Prev: Template expansion, Up: Capture templates 7208 720910.1.3.3 Templates in contexts 7210.............................. 7211 7212To control whether a capture template should be accessible from a 7213specific context, you can customize ‘org-capture-templates-contexts’. 7214Let’s say, for example, that you have a capture template “p” for storing 7215Gnus emails containing patches. Then you would configure this option 7216like this: 7217 7218 (setq org-capture-templates-contexts 7219 '(("p" (in-mode . "message-mode")))) 7220 7221 You can also tell that the command key ‘p’ should refer to another 7222template. In that case, add this command key like this: 7223 7224 (setq org-capture-templates-contexts 7225 '(("p" "q" (in-mode . "message-mode")))) 7226 7227 See the docstring of the variable for more information. 7228 7229 7230File: org.info, Node: Attachments, Next: RSS Feeds, Prev: Capture, Up: Capture and Attachments 7231 723210.2 Attachments 7233================ 7234 7235It is often useful to associate reference material with an outline node. 7236Small chunks of plain text can simply be stored in the subtree of a 7237project. Hyperlinks (see *note Hyperlinks::) can establish associations 7238with files that live elsewhere on a local, or even remote, computer, 7239like emails or source code files belonging to a project. 7240 7241 Another method is _attachments_, which are files located in a 7242directory belonging to an outline node. Org uses directories either 7243named by a unique ID of each entry, or by a ‘DIR’ property. 7244 7245* Menu: 7246 7247* Attachment defaults and dispatcher:: How to access attachment commands 7248* Attachment options:: Configuring the attachment system 7249* Attachment links:: Hyperlink access to attachments 7250* Automatic version-control with Git:: Everything safely stored away 7251* Attach from Dired:: Using dired to select an attachment 7252 7253 7254File: org.info, Node: Attachment defaults and dispatcher, Next: Attachment options, Up: Attachments 7255 725610.2.1 Attachment defaults and dispatcher 7257----------------------------------------- 7258 7259By default, Org attach uses ID properties when adding attachments to 7260outline nodes. This makes working with attachments fully automated. 7261There is no decision needed for folder-name or location. ID-based 7262directories are by default located in the ‘data/’ directory, which lives 7263in the same directory where your Org file lives(1). 7264 7265 When attachments are made using ‘org-attach’ a default tag ‘ATTACH’ 7266is added to the node that gets the attachments. 7267 7268 For more control over the setup, see *note Attachment options::. 7269 7270 The following commands deal with attachments: 7271 7272‘C-c C-a’ (‘org-attach’) 7273 The dispatcher for commands related to the attachment system. 7274 After these keys, a list of commands is displayed and you must 7275 press an additional key to select a command: 7276 7277 ‘a’ (‘org-attach-attach’) 7278 Select a file and move it into the task’s attachment 7279 directory. The file is copied, moved, or linked, depending on 7280 ‘org-attach-method’. Note that hard links are not supported 7281 on all systems. 7282 7283 ‘c’/‘m’/‘l’ 7284 Attach a file using the copy/move/link method. Note that hard 7285 links are not supported on all systems. 7286 7287 ‘b’ (‘org-attach-buffer’) 7288 Select a buffer and save it as a file in the task’s attachment 7289 directory. 7290 7291 ‘n’ (‘org-attach-new’) 7292 Create a new attachment as an Emacs buffer. 7293 7294 ‘z’ (‘org-attach-sync’) 7295 Synchronize the current task with its attachment directory, in 7296 case you added attachments yourself. 7297 7298 ‘o’ (‘org-attach-open’) 7299 Open current task’s attachment. If there is more than one, 7300 prompt for a file name first. Opening follows the rules set 7301 by ‘org-file-apps’. For more details, see the information on 7302 following hyperlinks (see *note Handling Links::). 7303 7304 ‘O’ (‘org-attach-open-in-emacs’) 7305 Also open the attachment, but force opening the file in Emacs. 7306 7307 ‘f’ (‘org-attach-reveal’) 7308 Open the current task’s attachment directory. 7309 7310 ‘F’ (‘org-attach-reveal-in-emacs’) 7311 Also open the directory, but force using Dired in Emacs. 7312 7313 ‘d’ (‘org-attach-delete-one’) 7314 Select and delete a single attachment. 7315 7316 ‘D’ (‘org-attach-delete-all’) 7317 Delete all of a task’s attachments. A safer way is to open 7318 the directory in Dired and delete from there. 7319 7320 ‘s’ (‘org-attach-set-directory’) 7321 Set a specific directory as the entry’s attachment directory. 7322 This works by putting the directory path into the ‘DIR’ 7323 property. 7324 7325 ‘S’ (‘org-attach-unset-directory’) 7326 Remove the attachment directory. This command removes the 7327 ‘DIR’ property and asks the user to either move content inside 7328 that folder, if an ‘ID’ property is set, delete the content, 7329 or to leave the attachment directory as is but no longer 7330 attached to the outline node. 7331 7332 ---------- Footnotes ---------- 7333 7334 (1) If you move entries or Org files from one directory to another, 7335you may want to configure ‘org-attach-id-dir’ to contain an absolute 7336path. 7337 7338 7339File: org.info, Node: Attachment options, Next: Attachment links, Prev: Attachment defaults and dispatcher, Up: Attachments 7340 734110.2.2 Attachment options 7342------------------------- 7343 7344There are a couple of options for attachments that are worth mentioning. 7345 7346‘org-attach-id-dir’ 7347 The directory where attachments are stored when ‘ID’ is used as 7348 method. 7349 7350‘org-attach-dir-relative’ 7351 When setting the ‘DIR’ property on a node using ‘C-c C-a s’ 7352 (‘org-attach-set-directory’), absolute links are entered by 7353 default. This option changes that to relative links. 7354 7355‘org-attach-use-inheritance’ 7356 By default folders attached to an outline node are inherited from 7357 parents according to ‘org-use-property-inheritance’. If one 7358 instead want to set inheritance specifically for Org attach that 7359 can be done using ‘org-attach-use-inheritance’. Inheriting 7360 documents through the node hierarchy makes a lot of sense in most 7361 cases. Especially when using attachment links (see *note 7362 Attachment links::). The following example shows one use case for 7363 attachment inheritance: 7364 7365 * Chapter A ... 7366 :PROPERTIES: 7367 :DIR: Chapter A/ 7368 :END: 7369 ** Introduction 7370 Some text 7371 7372 #+NAME: Image 1 7373 [[attachment:image 1.jpg]] 7374 7375 Without inheritance one would not be able to resolve the link to 7376 ‘image 1.jpg’, since the link is inside a sub-heading to ‘Chapter 7377 A’. 7378 7379 Inheritance works the same way for both ‘ID’ and ‘DIR’ property. 7380 If both properties are defined on the same headline then ‘DIR’ 7381 takes precedence. This is also true if inheritance is enabled. If 7382 ‘DIR’ is inherited from a parent node in the outline, that property 7383 still takes precedence over an ‘ID’ property defined on the node 7384 itself. 7385 7386‘org-attach-method’ 7387 When attaching files using the dispatcher ‘C-c C-a’ it defaults to 7388 copying files. The behavior can be changed by customizing 7389 ‘org-attach-method’. Options are Copy, Move/Rename, Hard link or 7390 Symbolic link. 7391 7392‘org-attach-preferred-new-method’ 7393 This customization lets you choose the default way to attach to 7394 nodes without existing ‘ID’ and ‘DIR’ property. It defaults to 7395 ‘id’ but can also be set to ‘dir’, ‘ask’ or ‘nil’. 7396 7397‘org-attach-archive-delete’ 7398 Configure this to determine if attachments should be deleted or not 7399 when a subtree that has attachments is archived. 7400 7401‘org-attach-auto-tag’ 7402 When attaching files to a heading it will be assigned a tag 7403 according to what is set here. 7404 7405‘org-attach-id-to-path-function-list’ 7406 When ‘ID’ is used for attachments, the ID is parsed into a part of 7407 a directory-path. See ‘org-attach-id-uuid-folder-format’ for the 7408 default function. Define a new one and add it as first element in 7409 ‘org-attach-id-to-path-function-list’ if you want the folder 7410 structure in any other way. All functions in this list will be 7411 tried when resolving existing ID’s into paths, to maintain backward 7412 compatibility with existing folders in your system. 7413 7414‘org-attach-store-link-p’ 7415 Stores a link to the file that is being attached. The link is 7416 stored in ‘org-stored-links’ for later insertion with ‘C-c C-l’ 7417 (see *note Handling Links::). Depending on what option is set in 7418 ‘org-attach-store-link-p’, the link is stored to either the 7419 original location as a file link, the attachment location as an 7420 attachment link or to the attachment location as a file link. 7421 7422‘org-attach-commands’ 7423 List of all commands used in the attach dispatcher. 7424 7425‘org-attach-expert’ 7426 Do not show the splash buffer with the attach dispatcher when 7427 ‘org-attach-expert’ is set to non-‘nil’. 7428 7429 See customization group ‘Org Attach’ if you want to change the 7430default settings. 7431 7432 7433File: org.info, Node: Attachment links, Next: Automatic version-control with Git, Prev: Attachment options, Up: Attachments 7434 743510.2.3 Attachment links 7436----------------------- 7437 7438Attached files and folders can be referenced using attachment links. 7439This makes it easy to refer to the material added to an outline node. 7440Especially if it was attached using the unique ID of the entry! 7441 7442 * TODO Some task 7443 :PROPERTIES: 7444 :ID: 95d50008-c12e-479f-a4f2-cc0238205319 7445 :END: 7446 See attached document for more information: [[attachment:info.org]] 7447 7448 See *note External Links:: for more information about these links. 7449 7450 7451File: org.info, Node: Automatic version-control with Git, Next: Attach from Dired, Prev: Attachment links, Up: Attachments 7452 745310.2.4 Automatic version-control with Git 7454----------------------------------------- 7455 7456If the directory attached to an outline node is a Git repository, Org 7457can be configured to automatically commit changes to that repository 7458when it sees them. 7459 7460 To make Org mode take care of versioning of attachments for you, add 7461the following to your Emacs config: 7462 7463 (require 'org-attach-git) 7464 7465 7466File: org.info, Node: Attach from Dired, Prev: Automatic version-control with Git, Up: Attachments 7467 746810.2.5 Attach from Dired 7469------------------------ 7470 7471It is possible to attach files to a subtree from a Dired buffer. To use 7472this feature, have one window in Dired mode containing the file(s) to be 7473attached and another window with point in the subtree that shall get the 7474attachments. In the Dired window, with point on a file, ‘M-x 7475org-attach-dired-to-subtree’ attaches the file to the subtree using the 7476attachment method set by variable ‘org-attach-method’. When files are 7477marked in the Dired window then all marked files get attached. 7478 7479 Add the following lines to the Emacs init file to have ‘C-c C-x a’ 7480attach files in Dired buffers. 7481 7482 (add-hook 'dired-mode-hook 7483 (lambda () 7484 (define-key dired-mode-map 7485 (kbd "C-c C-x a") 7486 #'org-attach-dired-to-subtree))) 7487 7488 The following code shows how to bind the previous command with a 7489specific attachment method. 7490 7491 (add-hook 'dired-mode-hook 7492 (lambda () 7493 (define-key dired-mode-map (kbd "C-c C-x c") 7494 (lambda () 7495 (interactive) 7496 (let ((org-attach-method 'cp)) 7497 (call-interactively #'org-attach-dired-to-subtree)))))) 7498 7499 7500File: org.info, Node: RSS Feeds, Prev: Attachments, Up: Capture and Attachments 7501 750210.3 RSS Feeds 7503============== 7504 7505Org can add and change entries based on information found in RSS feeds 7506and Atom feeds. You could use this to make a task out of each new 7507podcast in a podcast feed. Or you could use a phone-based note-creating 7508service on the web to import tasks into Org. To access feeds, configure 7509the variable ‘org-feed-alist’. The docstring of this variable has 7510detailed information. With the following 7511 7512 (setq org-feed-alist 7513 '(("Slashdot" 7514 "http://rss.slashdot.org/Slashdot/slashdot" 7515 "~/txt/org/feeds.org" "Slashdot Entries"))) 7516 7517new items from the feed provided by ‘rss.slashdot.org’ result in new 7518entries in the file ‘~/org/feeds.org’ under the heading ‘Slashdot 7519Entries’, whenever the following command is used: 7520 7521‘C-c C-x g’ (‘org-feed-update-all’) 7522 Collect items from the feeds configured in ‘org-feed-alist’ and act 7523 upon them. 7524 7525‘C-c C-x G’ (‘org-feed-goto-inbox’) 7526 Prompt for a feed name and go to the inbox configured for this 7527 feed. 7528 7529 Under the same headline, Org creates a drawer ‘FEEDSTATUS’ in which 7530it stores information about the status of items in the feed, to avoid 7531adding the same item several times. 7532 7533 For more information, including how to read atom feeds, see 7534‘org-feed.el’ and the docstring of ‘org-feed-alist’. 7535 7536 7537File: org.info, Node: Agenda Views, Next: Markup for Rich Contents, Prev: Capture and Attachments, Up: Top 7538 753911 Agenda Views 7540*************** 7541 7542Due to the way Org works, TODO items, time-stamped items, and tagged 7543headlines can be scattered throughout a file or even a number of files. 7544To get an overview of open action items, or of events that are important 7545for a particular date, this information must be collected, sorted and 7546displayed in an organized way. 7547 7548 Org can select items based on various criteria and display them in a 7549separate buffer. Six different view types are provided: 7550 7551 • an _agenda_ that is like a calendar and shows information for 7552 specific dates, 7553 7554 • a _TODO list_ that covers all unfinished action items, 7555 7556 • a _match view_, showings headlines based on the tags, properties, 7557 and TODO state associated with them, 7558 7559 • a _text search view_ that shows all entries from multiple files 7560 that contain specified keywords, 7561 7562 • a _stuck projects view_ showing projects that currently do not move 7563 along, and 7564 7565 • _custom views_ that are special searches and combinations of 7566 different views. 7567 7568 The extracted information is displayed in a special _agenda buffer_. 7569This buffer is read-only, but provides commands to visit the 7570corresponding locations in the original Org files, and even to edit 7571these files remotely. 7572 7573 By default, the report ignores commented (see *note Comment Lines::) 7574and archived (see *note Internal archiving::) entries. You can override 7575this by setting ‘org-agenda-skip-comment-trees’ and 7576‘org-agenda-skip-archived-trees’ to ‘nil’. 7577 7578 Two variables control how the agenda buffer is displayed and whether 7579the window configuration is restored when the agenda exits: 7580‘org-agenda-window-setup’ and ‘org-agenda-restore-windows-after-quit’. 7581 7582* Menu: 7583 7584* Agenda Files:: Files being searched for agenda information. 7585* Agenda Dispatcher:: Keyboard access to agenda views. 7586* Built-in Agenda Views:: What is available out of the box? 7587* Presentation and Sorting:: How agenda items are prepared for display. 7588* Agenda Commands:: Remote editing of Org trees. 7589* Custom Agenda Views:: Defining special searches and views. 7590* Exporting Agenda Views:: Writing a view to a file. 7591* Agenda Column View:: Using column view for collected entries. 7592 7593 7594File: org.info, Node: Agenda Files, Next: Agenda Dispatcher, Up: Agenda Views 7595 759611.1 Agenda Files 7597================= 7598 7599The information to be shown is normally collected from all _agenda 7600files_, the files listed in the variable ‘org-agenda-files’(1). If a 7601directory is part of this list, all files with the extension ‘.org’ in 7602this directory are part of the list. 7603 7604 Thus, even if you only work with a single Org file, that file should 7605be put into the list(2). You can customize ‘org-agenda-files’, but the 7606easiest way to maintain it is through the following commands 7607 7608‘C-c [’ (‘org-agenda-file-to-front’) 7609 Add current file to the list of agenda files. The file is added to 7610 the front of the list. If it was already in the list, it is moved 7611 to the front. With a prefix argument, file is added/moved to the 7612 end. 7613 7614‘C-c ]’ (‘org-remove-file’) 7615 Remove current file from the list of agenda files. 7616 7617‘C-'’ 7618‘C-,’ (‘org-cycle-agenda-files’) 7619 Cycle through agenda file list, visiting one file after the other. 7620 7621‘M-x org-switchb’ 7622 Command to use an Iswitchb-like interface to switch to and between 7623 Org buffers. 7624 7625The Org menu contains the current list of files and can be used to visit 7626any of them. 7627 7628 If you would like to focus the agenda temporarily on a file not in 7629this list, or on just one file in the list, or even on only a subtree in 7630a file, then this can be done in different ways. For a single agenda 7631command, you may press ‘<’ once or several times in the dispatcher (see 7632*note Agenda Dispatcher::). To restrict the agenda scope for an 7633extended period, use the following commands: 7634 7635‘C-c C-x <’ (‘org-agenda-set-restriction-lock’) 7636 Restrict the agenda to the current subtree. If there already is a 7637 restriction at point, remove it. When called with a universal 7638 prefix argument or with point before the first headline in a file, 7639 set the agenda scope to the entire file. This restriction remains 7640 in effect until removed with ‘C-c C-x >’, or by typing either ‘<’ 7641 or ‘>’ in the agenda dispatcher. If there is a window displaying 7642 an agenda view, the new restriction takes effect immediately. 7643 7644‘C-c C-x >’ (‘org-agenda-remove-restriction-lock’) 7645 Remove the restriction created by ‘C-c C-x <’. 7646 7647 When working with Speedbar, you can use the following commands in the 7648Speedbar frame: 7649 7650‘<’ (‘org-speedbar-set-agenda-restriction’) 7651 Restrict the agenda to the item—either an Org file or a subtree in 7652 such a file—at point in the Speedbar frame. If agenda is already 7653 restricted there, remove the restriction. If there is a window 7654 displaying an agenda view, the new restriction takes effect 7655 immediately. 7656 7657‘>’ (‘org-agenda-remove-restriction-lock’) 7658 Remove the restriction. 7659 7660 ---------- Footnotes ---------- 7661 7662 (1) If the value of that variable is not a list, but a single file 7663name, then the list of agenda files in maintained in that external file. 7664 7665 (2) When using the dispatcher, pressing ‘<’ before selecting a 7666command actually limits the command to the current file, and ignores 7667‘org-agenda-files’ until the next dispatcher command. 7668 7669 7670File: org.info, Node: Agenda Dispatcher, Next: Built-in Agenda Views, Prev: Agenda Files, Up: Agenda Views 7671 767211.2 The Agenda Dispatcher 7673========================== 7674 7675The views are created through a dispatcher, accessible with ‘M-x 7676org-agenda’, or, better, bound to a global key (see *note Activation::). 7677It displays a menu from which an additional letter is required to 7678execute a command. The dispatcher offers the following default 7679commands: 7680 7681‘a’ 7682 Create the calendar-like agenda (see *note Weekly/daily agenda::). 7683 7684‘t’ 7685‘T’ 7686 Create a list of all TODO items (see *note Global TODO list::). 7687 7688‘m’ 7689‘M’ 7690 Create a list of headlines matching a given expression (see *note 7691 Matching tags and properties::). 7692 7693‘s’ 7694 Create a list of entries selected by a boolean expression of 7695 keywords and/or regular expressions that must or must not occur in 7696 the entry. 7697 7698‘/’ 7699 Search for a regular expression in all agenda files and 7700 additionally in the files listed in 7701 ‘org-agenda-text-search-extra-files’. This uses the Emacs command 7702 ‘multi-occur’. A prefix argument can be used to specify the number 7703 of context lines for each match, default is 7704 1. 7705‘#’ 7706 Create a list of stuck projects (see *note Stuck projects::). 7707 7708‘!’ 7709 Configure the list of stuck projects (see *note Stuck projects::). 7710 7711‘<’ 7712 Restrict an agenda command to the current buffer(1). If narrowing 7713 is in effect restrict to the narrowed part of the buffer. After 7714 pressing ‘<’, you still need to press the character selecting the 7715 command. 7716 7717‘< <’ 7718 If there is an active region, restrict the following agenda command 7719 to the region. Otherwise, restrict it to the current subtree(2). 7720 After pressing ‘< <’, you still need to press the character 7721 selecting the command. 7722 7723‘*’ 7724 Toggle sticky agenda views. By default, Org maintains only a 7725 single agenda buffer and rebuilds it each time you change the view, 7726 to make sure everything is always up to date. If you switch 7727 between views often and the build time bothers you, you can turn on 7728 sticky agenda buffers (make this the default by customizing the 7729 variable ‘org-agenda-sticky’). With sticky agendas, the dispatcher 7730 only switches to the selected view, you need to update it by hand 7731 with ‘r’ or ‘g’. You can toggle sticky agenda view any time with 7732 ‘org-toggle-sticky-agenda’. 7733 7734 You can also define custom commands that are accessible through the 7735dispatcher, just like the default commands. This includes the 7736possibility to create extended agenda buffers that contain several 7737blocks together, for example the weekly agenda, the global TODO list and 7738a number of special tags matches. See *note Custom Agenda Views::. 7739 7740 ---------- Footnotes ---------- 7741 7742 (1) For backward compatibility, you can also press ‘1’ to restrict to 7743the current buffer. 7744 7745 (2) For backward compatibility, you can also press ‘0’ to restrict to 7746the current region/subtree. 7747 7748 7749File: org.info, Node: Built-in Agenda Views, Next: Presentation and Sorting, Prev: Agenda Dispatcher, Up: Agenda Views 7750 775111.3 The Built-in Agenda Views 7752============================== 7753 7754In this section we describe the built-in views. 7755 7756* Menu: 7757 7758* Weekly/daily agenda:: The calendar page with current tasks. 7759* Global TODO list:: All unfinished action items. 7760* Matching tags and properties:: Structured information with fine-tuned search. 7761* Search view:: Find entries by searching for text. 7762* Stuck projects:: Find projects you need to review. 7763 7764 7765File: org.info, Node: Weekly/daily agenda, Next: Global TODO list, Up: Built-in Agenda Views 7766 776711.3.1 Weekly/daily agenda 7768-------------------------- 7769 7770The purpose of the weekly/daily _agenda_ is to act like a page of a 7771paper agenda, showing all the tasks for the current week or day. 7772 7773‘M-x org-agenda a’ (‘org-agenda-list’) 7774 Compile an agenda for the current week from a list of Org files. 7775 The agenda shows the entries for each day. With a numeric prefix 7776 argument(1)—like ‘C-u 2 1 M-x org-agenda a’—you may set the number 7777 of days to be displayed. 7778 7779 The default number of days displayed in the agenda is set by the 7780variable ‘org-agenda-span’. This variable can be set to any number of 7781days you want to see by default in the agenda, or to a span name, such a 7782‘day’, ‘week’, ‘month’ or ‘year’. For weekly agendas, the default is to 7783start on the previous Monday (see ‘org-agenda-start-on-weekday’). You 7784can also set the start date using a date shift: ‘(setq 7785org-agenda-start-day "+10d")’ starts the agenda ten days from today in 7786the future. 7787 7788 Remote editing from the agenda buffer means, for example, that you 7789can change the dates of deadlines and appointments from the agenda 7790buffer. The commands available in the Agenda buffer are listed in *note 7791Agenda Commands::. 7792 7793Calendar/Diary integration 7794.......................... 7795 7796Emacs contains the calendar and diary by Edward M. Reingold. The 7797calendar displays a three-month calendar with holidays from different 7798countries and cultures. The diary allows you to keep track of 7799anniversaries, lunar phases, sunrise/set, recurrent appointments 7800(weekly, monthly) and more. In this way, it is quite complementary to 7801Org. It can be very useful to combine output from Org with the diary. 7802 7803 In order to include entries from the Emacs diary into Org mode’s 7804agenda, you only need to customize the variable 7805 7806 (setq org-agenda-include-diary t) 7807 7808After that, everything happens automatically. All diary entries 7809including holidays, anniversaries, etc., are included in the agenda 7810buffer created by Org mode. ‘<SPC>’, ‘<TAB>’, and ‘<RET>’ can be used 7811from the agenda buffer to jump to the diary file in order to edit 7812existing diary entries. The ‘i’ command to insert new entries for the 7813current date works in the agenda buffer, as well as the commands ‘S’, 7814‘M’, and ‘C’ to display Sunrise/Sunset times, show lunar phases and to 7815convert to other calendars, respectively. ‘c’ can be used to switch 7816back and forth between calendar and agenda. 7817 7818 If you are using the diary only for expression entries and holidays, 7819it is faster to not use the above setting, but instead to copy or even 7820move the entries into an Org file. Org mode evaluates diary-style 7821expression entries, and does it faster because there is no overhead for 7822first creating the diary display. Note that the expression entries must 7823start at the left margin, no whitespace is allowed before them, as seen 7824in the following segment of an Org file:(2) 7825 7826 * Holidays 7827 :PROPERTIES: 7828 :CATEGORY: Holiday 7829 :END: 7830 %%(org-calendar-holiday) ; special function for holiday names 7831 7832 * Birthdays 7833 :PROPERTIES: 7834 :CATEGORY: Ann 7835 :END: 7836 %%(org-anniversary 1956 5 14) Arthur Dent is %d years old 7837 %%(org-anniversary 1869 10 2) Mahatma Gandhi would be %d years old 7838 7839Anniversaries from BBDB 7840....................... 7841 7842If you are using the Insidious Big Brother Database to store your 7843contacts, you very likely prefer to store anniversaries in BBDB rather 7844than in a separate Org or diary file. Org supports this and can show 7845BBDB anniversaries as part of the agenda. All you need to do is to add 7846the following to one of your agenda files: 7847 7848 * Anniversaries 7849 :PROPERTIES: 7850 :CATEGORY: Anniv 7851 :END: 7852 %%(org-bbdb-anniversaries) 7853 7854 You can then go ahead and define anniversaries for a BBDB record. 7855Basically, you need a field named ‘anniversary’ for the BBDB record 7856which contains the date in the format ‘YYYY-MM-DD’ or ‘MM-DD’, followed 7857by a space and the class of the anniversary (‘birthday’, ‘wedding’, or a 7858format string). If you omit the class, it defaults to ‘birthday’. Here 7859are a few examples, the header for the file ‘ol-bbdb.el’ contains more 7860detailed information. 7861 7862 1973-06-22 7863 06-22 7864 1955-08-02 wedding 7865 2008-04-14 %s released version 6.01 of Org mode, %d years ago 7866 7867 After a change to BBDB, or for the first agenda display during an 7868Emacs session, the agenda display suffers a short delay as Org updates 7869its hash with anniversaries. However, from then on things will be very 7870fast, much faster in fact than a long list of ‘%%(diary-anniversary)’ 7871entries in an Org or Diary file. 7872 7873 If you would like to see upcoming anniversaries with a bit of 7874forewarning, you can use the following instead: 7875 7876 * Anniversaries 7877 :PROPERTIES: 7878 :CATEGORY: Anniv 7879 :END: 7880 %%(org-bbdb-anniversaries-future 3) 7881 7882 That will give you three days’ warning: on the anniversary date 7883itself and the two days prior. The argument is optional: if omitted, it 7884defaults to 7. 7885 7886Appointment reminders 7887..................... 7888 7889Org can interact with Emacs appointments notification facility. To add 7890the appointments of your agenda files, use the command 7891‘org-agenda-to-appt’. This command lets you filter through the list of 7892your appointments and add only those belonging to a specific category or 7893matching a regular expression. It also reads a ‘APPT_WARNTIME’ property 7894which overrides the value of ‘appt-message-warning-time’ for this 7895appointment. See the docstring for details. 7896 7897 ---------- Footnotes ---------- 7898 7899 (1) For backward compatibility, the universal prefix argument ‘C-u’ 7900causes all TODO entries to be listed before the agenda. This feature is 7901deprecated, use the dedicated TODO list, or a block agenda instead (see 7902*note Block agenda::). 7903 7904 (2) The variable ‘org-anniversary’ used in the example is just like 7905‘diary-anniversary’, but the argument order is always according to ISO 7906and therefore independent of the value of ‘calendar-date-style’. 7907 7908 7909File: org.info, Node: Global TODO list, Next: Matching tags and properties, Prev: Weekly/daily agenda, Up: Built-in Agenda Views 7910 791111.3.2 The global TODO list 7912--------------------------- 7913 7914The global TODO list contains all unfinished TODO items formatted and 7915collected into a single place. 7916 7917‘M-x org-agenda t’ (‘org-todo-list’) 7918 Show the global TODO list. This collects the TODO items from all 7919 agenda files (see *note Agenda Views::) into a single buffer. By 7920 default, this lists items with a state the is not a DONE state. 7921 The buffer is in Agenda mode, so there are commands to examine and 7922 manipulate the TODO entries directly from that buffer (see *note 7923 Agenda Commands::). 7924 7925‘M-x org-agenda T’ (‘org-todo-list’) 7926 Like the above, but allows selection of a specific TODO keyword. 7927 You can also do this by specifying a prefix argument to ‘t’. You 7928 are prompted for a keyword, and you may also specify several 7929 keywords by separating them with ‘|’ as the boolean OR operator. 7930 With a numeric prefix, the Nth keyword in ‘org-todo-keywords’ is 7931 selected. 7932 7933 The ‘r’ key in the agenda buffer regenerates it, and you can give a 7934 prefix argument to this command to change the selected TODO 7935 keyword, for example ‘3 r’. If you often need a search for a 7936 specific keyword, define a custom command for it (see *note Agenda 7937 Dispatcher::). 7938 7939 Matching specific TODO keywords can also be done as part of a tags 7940 search (see *note Tag Searches::). 7941 7942 Remote editing of TODO items means that you can change the state of a 7943TODO entry with a single key press. The commands available in the TODO 7944list are described in *note Agenda Commands::. 7945 7946 Normally the global TODO list simply shows all headlines with TODO 7947keywords. This list can become very long. There are two ways to keep 7948it more compact: 7949 7950 • Some people view a TODO item that has been _scheduled_ for 7951 execution or have a _deadline_ (see *note Timestamps::) as no 7952 longer _open_. Configure the variables 7953 ‘org-agenda-todo-ignore-scheduled’ to exclude some or all scheduled 7954 items from the global TODO list, ‘org-agenda-todo-ignore-deadlines’ 7955 to exclude some or all items with a deadline set, 7956 ‘org-agenda-todo-ignore-timestamp’ to exclude some or all items 7957 with an active timestamp other than a DEADLINE or a SCHEDULED 7958 timestamp and/or ‘org-agenda-todo-ignore-with-date’ to exclude 7959 items with at least one active timestamp. 7960 7961 • TODO items may have sublevels to break up the task into subtasks. 7962 In such cases it may be enough to list only the highest level TODO 7963 headline and omit the sublevels from the global list. Configure 7964 the variable ‘org-agenda-todo-list-sublevels’ to get this behavior. 7965 7966 7967File: org.info, Node: Matching tags and properties, Next: Search view, Prev: Global TODO list, Up: Built-in Agenda Views 7968 796911.3.3 Matching tags and properties 7970----------------------------------- 7971 7972If headlines in the agenda files are marked with _tags_ (see *note 7973Tags::), or have properties (see *note Properties and Columns::), you 7974can select headlines based on this metadata and collect them into an 7975agenda buffer. The match syntax described here also applies when 7976creating sparse trees with ‘C-c / m’. 7977 7978‘M-x org-agenda m’ (‘org-tags-view’) 7979 Produce a list of all headlines that match a given set of tags. 7980 The command prompts for a selection criterion, which is a boolean 7981 logic expression with tags, like ‘+work+urgent-withboss’ or 7982 ‘work|home’ (see *note Tags::). If you often need a specific 7983 search, define a custom command for it (see *note Agenda 7984 Dispatcher::). 7985 7986‘M-x org-agenda M’ (‘org-tags-view’) 7987 Like ‘m’, but only select headlines that are also TODO items and 7988 force checking subitems (see the variable 7989 ‘org-tags-match-list-sublevels’). To exclude scheduled/deadline 7990 items, see the variable 7991 ‘org-agenda-tags-todo-honor-ignore-options’. Matching specific 7992 TODO keywords together with a tags match is also possible, see 7993 *note Tag Searches::. 7994 7995 The commands available in the tags list are described in *note Agenda 7996Commands::. 7997 7998 A search string can use Boolean operators ‘&’ for AND and ‘|’ for OR. 7999‘&’ binds more strongly than ‘|’. Parentheses are currently not 8000implemented. Each element in the search is either a tag, a regular 8001expression matching tags, or an expression like ‘PROPERTY OPERATOR 8002VALUE’ with a comparison operator, accessing a property value. Each 8003element may be preceded by ‘-’ to select against it, and ‘+’ is 8004syntactic sugar for positive selection. The AND operator ‘&’ is 8005optional when ‘+’ or ‘-’ is present. Here are some examples, using only 8006tags. 8007 8008‘+work-boss’ 8009 Select headlines tagged ‘work’, but discard those also tagged 8010 ‘boss’. 8011 8012‘work|laptop’ 8013 Selects lines tagged ‘work’ or ‘laptop’. 8014 8015‘work|laptop+night’ 8016 Like before, but require the ‘laptop’ lines to be tagged also 8017 ‘night’. 8018 8019 Instead of a tag, you may also specify a regular expression enclosed 8020in curly braces. For example, ‘work+{^boss.*}’ matches headlines that 8021contain the tag ‘:work:’ and any tag _starting_ with ‘boss’. 8022 8023 Group tags (see *note Tag Hierarchy::) are expanded as regular 8024expressions. E.g., if ‘work’ is a group tag for the group 8025‘:work:lab:conf:’, then searching for ‘work’ also searches for 8026‘{\(?:work\|lab\|conf\)}’ and searching for ‘-work’ searches for all 8027headlines but those with one of the tags in the group (i.e., 8028‘-{\(?:work\|lab\|conf\)}’). 8029 8030 You may also test for properties (see *note Properties and Columns::) 8031at the same time as matching tags. The properties may be real 8032properties, or special properties that represent other metadata (see 8033*note Special Properties::). For example, the property ‘TODO’ 8034represents the TODO keyword of the entry. Or, the property ‘LEVEL’ 8035represents the level of an entry. So searching 8036‘+LEVEL=3+boss-TODO="DONE"’ lists all level three headlines that have 8037the tag ‘boss’ and are _not_ marked with the TODO keyword ‘DONE’. In 8038buffers with ‘org-odd-levels-only’ set, ‘LEVEL’ does not count the 8039number of stars, but ‘LEVEL=2’ corresponds to 3 stars etc. 8040 8041 Here are more examples: 8042 8043‘work+TODO="WAITING"’ 8044 Select ‘work’-tagged TODO lines with the specific TODO keyword 8045 ‘WAITING’. 8046 8047‘work+TODO="WAITING"|home+TODO="WAITING"’ 8048 Waiting tasks both at work and at home. 8049 8050 When matching properties, a number of different operators can be used 8051to test the value of a property. Here is a complex example: 8052 8053 +work-boss+PRIORITY="A"+Coffee="unlimited"+Effort<2 8054 +With={Sarah|Denny}+SCHEDULED>="<2008-10-11>" 8055 8056The type of comparison depends on how the comparison value is written: 8057 8058 • If the comparison value is a plain number, a numerical comparison 8059 is done, and the allowed operators are ‘<’, ‘=’, ‘>’, ‘<=’, ‘>=’, 8060 and ‘<>’. 8061 8062 • If the comparison value is enclosed in double-quotes, a string 8063 comparison is done, and the same operators are allowed. 8064 8065 • If the comparison value is enclosed in double-quotes _and_ angular 8066 brackets (like ‘DEADLINE<="<2008-12-24 18:30>"’), both values are 8067 assumed to be date/time specifications in the standard Org way, and 8068 the comparison is done accordingly. Valid values also include 8069 ‘"<now>"’ for now (including time), ‘"<today>"’, and ‘"<tomorrow>"’ 8070 for these days at 0:00 hours, i.e., without a time specification. 8071 You can also use strings like ‘"<+5d>"’ or ‘"<-2m>"’ with units 8072 ‘d’, ‘w’, ‘m’, and ‘y’ for day, week, month, and year, 8073 respectively. 8074 8075 • If the comparison value is enclosed in curly braces, a regexp match 8076 is performed, with ‘=’ meaning that the regexp matches the property 8077 value, and ‘<>’ meaning that it does not match. 8078 8079 So the search string in the example finds entries tagged ‘work’ but 8080not ‘boss’, which also have a priority value ‘A’, a ‘Coffee’ property 8081with the value ‘unlimited’, an ‘EFFORT’ property that is numerically 8082smaller than 2, a ‘With’ property that is matched by the regular 8083expression ‘Sarah|Denny’, and that are scheduled on or after October 11, 80842008. 8085 8086 You can configure Org mode to use property inheritance during a 8087search, but beware that this can slow down searches considerably. See 8088*note Property Inheritance::, for details. 8089 8090 For backward compatibility, and also for typing speed, there is also 8091a different way to test TODO states in a search. For this, terminate 8092the tags/property part of the search string (which may include several 8093terms connected with ‘|’) with a ‘/’ and then specify a Boolean 8094expression just for TODO keywords. The syntax is then similar to that 8095for tags, but should be applied with care: for example, a positive 8096selection on several TODO keywords cannot meaningfully be combined with 8097boolean AND. However, _negative selection_ combined with AND can be 8098meaningful. To make sure that only lines are checked that actually have 8099any TODO keyword (resulting in a speed-up), use ‘M-x org-agenda M’, or 8100equivalently start the TODO part after the slash with ‘!’. Using ‘M-x 8101org-agenda M’ or ‘/!’ does not match TODO keywords in a DONE state. 8102Examples: 8103 8104‘work/WAITING’ 8105 Same as ‘work+TODO="WAITING"’. 8106 8107‘work/!-WAITING-NEXT’ 8108 Select ‘work’-tagged TODO lines that are neither ‘WAITING’ nor 8109 ‘NEXT’. 8110 8111‘work/!+WAITING|+NEXT’ 8112 Select ‘work’-tagged TODO lines that are either ‘WAITING’ or 8113 ‘NEXT’. 8114 8115 8116File: org.info, Node: Search view, Next: Stuck projects, Prev: Matching tags and properties, Up: Built-in Agenda Views 8117 811811.3.4 Search view 8119------------------ 8120 8121This agenda view is a general text search facility for Org mode entries. 8122It is particularly useful to find notes. 8123 8124‘M-x org-agenda s’ (‘org-search-view’) 8125 This is a special search that lets you select entries by matching a 8126 substring or specific words using a boolean logic. 8127 8128 For example, the search string ‘computer equipment’ matches entries 8129that contain ‘computer equipment’ as a substring, even if the two words 8130are separated by more space or a line break. 8131 8132 Search view can also search for specific keywords in the entry, using 8133Boolean logic. The search string ‘+computer +wifi -ethernet 8134-{8\.11[bg]}’ matches note entries that contain the keywords ‘computer’ 8135and ‘wifi’, but not the keyword ‘ethernet’, and which are also not 8136matched by the regular expression ‘8\.11[bg]’, meaning to exclude both 8137‘8.11b’ and ‘8.11g’. The first ‘+’ is necessary to turn on boolean 8138search, other ‘+’ characters are optional. For more details, see the 8139docstring of the command ‘org-search-view’. 8140 8141 You can incrementally and conveniently adjust a boolean search from 8142the agenda search view with the following keys 8143 8144‘[’ Add a positive search word 8145‘]’ Add a negative search word 8146‘{’ Add a positive regular expression 8147‘}’ Add a negative regular expression 8148 8149 Note that in addition to the agenda files, this command also searches 8150the files listed in ‘org-agenda-text-search-extra-files’. 8151 8152 8153File: org.info, Node: Stuck projects, Prev: Search view, Up: Built-in Agenda Views 8154 815511.3.5 Stuck projects 8156--------------------- 8157 8158If you are following a system like David Allen’s GTD to organize your 8159work, one of the “duties” you have is a regular review to make sure that 8160all projects move along. A _stuck_ project is a project that has no 8161defined next actions, so it never shows up in the TODO lists Org mode 8162produces. During the review, you need to identify such projects and 8163define next actions for them. 8164 8165‘M-x org-agenda #’ (‘org-agenda-list-stuck-projects’) 8166 List projects that are stuck. 8167 8168‘M-x org-agenda !’ 8169 Customize the variable ‘org-stuck-projects’ to define what a stuck 8170 project is and how to find it. 8171 8172 You almost certainly need to configure this view before it works for 8173you. The built-in default assumes that all your projects are level-2 8174headlines, and that a project is not stuck if it has at least one entry 8175marked with a TODO keyword ‘TODO’ or ‘NEXT’ or ‘NEXTACTION’. 8176 8177 Let’s assume that you, in your own way of using Org mode, identify 8178projects with a tag ‘:PROJECT:’, and that you use a TODO keyword ‘MAYBE’ 8179to indicate a project that should not be considered yet. Let’s further 8180assume that the TODO keyword ‘DONE’ marks finished projects, and that 8181‘NEXT’ and ‘TODO’ indicate next actions. The tag ‘:@shop:’ indicates 8182shopping and is a next action even without the NEXT tag. Finally, if 8183the project contains the special word ‘IGNORE’ anywhere, it should not 8184be listed either. In this case you would start by identifying eligible 8185projects with a tags/TODO match (see *note Tag Searches::) 8186‘+PROJECT/-MAYBE-DONE’, and then check for ‘TODO’, ‘NEXT’, ‘@shop’, and 8187‘IGNORE’ in the subtree to identify projects that are not stuck. The 8188correct customization for this is: 8189 8190 (setq org-stuck-projects 8191 '("+PROJECT/-MAYBE-DONE" ("NEXT" "TODO") ("@shop") 8192 "\\<IGNORE\\>")) 8193 8194 Note that if a project is identified as non-stuck, the subtree of 8195this entry is searched for stuck projects. 8196 8197 8198File: org.info, Node: Presentation and Sorting, Next: Agenda Commands, Prev: Built-in Agenda Views, Up: Agenda Views 8199 820011.4 Presentation and Sorting 8201============================= 8202 8203Before displaying items in an agenda view, Org mode visually prepares 8204the items and sorts them. Each item occupies a single line. The line 8205starts with a _prefix_ that contains the _category_ (see *note 8206Categories::) of the item and other important information. You can 8207customize in which column tags are displayed through 8208‘org-agenda-tags-column’. You can also customize the prefix using the 8209option ‘org-agenda-prefix-format’. This prefix is followed by a 8210cleaned-up version of the outline headline associated with the item. 8211 8212* Menu: 8213 8214* Categories:: Not all tasks are equal. 8215* Time-of-day specifications:: How the agenda knows the time. 8216* Sorting of agenda items:: The order of things. 8217* Filtering/limiting agenda items:: Dynamically narrow the agenda. 8218 8219 8220File: org.info, Node: Categories, Next: Time-of-day specifications, Up: Presentation and Sorting 8221 822211.4.1 Categories 8223----------------- 8224 8225The category is a broad label assigned to each agenda item. By default, 8226the category is simply derived from the file name, but you can also 8227specify it with a special line in the buffer, like this: 8228 8229 #+CATEGORY: Thesis 8230 8231 If you would like to have a special category for a single entry or a 8232(sub)tree, give the entry a ‘CATEGORY’ property with the special 8233category you want to apply as the value. 8234 8235 The display in the agenda buffer looks best if the category is not 8236longer than 10 characters. You can set up icons for category by 8237customizing the ‘org-agenda-category-icon-alist’ variable. 8238 8239 8240File: org.info, Node: Time-of-day specifications, Next: Sorting of agenda items, Prev: Categories, Up: Presentation and Sorting 8241 824211.4.2 Time-of-day specifications 8243--------------------------------- 8244 8245Org mode checks each agenda item for a time-of-day specification. The 8246time can be part of the timestamp that triggered inclusion into the 8247agenda, for example 8248 8249 <2005-05-10 Tue 19:00> 8250 8251Time ranges can be specified with two timestamps: 8252 8253 <2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15> 8254 8255 In the headline of the entry itself, a time(range)—like ‘12:45’ or a 8256‘8:30-1pm’—may also appear as plain text(1). 8257 8258 If the agenda integrates the Emacs diary (see *note Weekly/daily 8259agenda::), time specifications in diary entries are recognized as well. 8260 8261 For agenda display, Org mode extracts the time and displays it in a 8262standard 24 hour format as part of the prefix. The example times in the 8263previous paragraphs would end up in the agenda like this: 8264 8265 8:30-13:00 Arthur Dent lies in front of the bulldozer 8266 12:45...... Ford Prefect arrives and takes Arthur to the pub 8267 19:00...... The Vogon reads his poem 8268 20:30-22:15 Marvin escorts the Hitchhikers to the bridge 8269 8270 If the agenda is in single-day mode, or for the display of today, the 8271timed entries are embedded in a time grid, like 8272 8273 8:00...... ------------------ 8274 8:30-13:00 Arthur Dent lies in front of the bulldozer 8275 10:00...... ------------------ 8276 12:00...... ------------------ 8277 12:45...... Ford Prefect arrives and takes Arthur to the pub 8278 14:00...... ------------------ 8279 16:00...... ------------------ 8280 18:00...... ------------------ 8281 19:00...... The Vogon reads his poem 8282 20:00...... ------------------ 8283 20:30-22:15 Marvin escorts the Hitchhikers to the bridge 8284 8285 The time grid can be turned on and off with the variable 8286‘org-agenda-use-time-grid’, and can be configured with 8287‘org-agenda-time-grid’. 8288 8289 ---------- Footnotes ---------- 8290 8291 (1) You can, however, disable this by setting 8292‘org-agenda-search-headline-for-time’ variable to a ‘nil’ value. 8293 8294 8295File: org.info, Node: Sorting of agenda items, Next: Filtering/limiting agenda items, Prev: Time-of-day specifications, Up: Presentation and Sorting 8296 829711.4.3 Sorting of agenda items 8298------------------------------ 8299 8300Before being inserted into a view, the items are sorted. How this is 8301done depends on the type of view. 8302 8303 • For the daily/weekly agenda, the items for each day are sorted. 8304 The default order is to first collect all items containing an 8305 explicit time-of-day specification. These entries are shown at the 8306 beginning of the list, as a _schedule_ for the day. After that, 8307 items remain grouped in categories, in the sequence given by 8308 ‘org-agenda-files’. Within each category, items are sorted by 8309 priority (see *note Priorities::), which is composed of the base 8310 priority (2000 for priority ‘A’, 1000 for ‘B’, and 0 for ‘C’), plus 8311 additional increments for overdue scheduled or deadline items. 8312 8313 • For the TODO list, items remain in the order of categories, but 8314 within each category, sorting takes place according to priority 8315 (see *note Priorities::). The priority used for sorting derives 8316 from the priority cookie, with additions depending on how close an 8317 item is to its due or scheduled date. 8318 8319 • For tags matches, items are not sorted at all, but just appear in 8320 the sequence in which they are found in the agenda files. 8321 8322 Sorting can be customized using the variable 8323‘org-agenda-sorting-strategy’, and may also include criteria based on 8324the estimated effort of an entry (see *note Effort Estimates::). 8325 8326 8327File: org.info, Node: Filtering/limiting agenda items, Prev: Sorting of agenda items, Up: Presentation and Sorting 8328 832911.4.4 Filtering/limiting agenda items 8330-------------------------------------- 8331 8332Agenda built-in or custom commands are statically defined. Agenda 8333filters and limits allow to flexibly narrow down the list of agenda 8334entries. 8335 8336 _Filters_ only change the visibility of items, are very fast and are 8337mostly used interactively(1). You can switch quickly between different 8338filters without having to recreate the agenda. _Limits_ on the other 8339hand take effect before the agenda buffer is populated, so they are 8340mostly useful when defined as local variables within custom agenda 8341commands. 8342 8343Filtering in the agenda 8344....................... 8345 8346The general filtering command is ‘org-agenda-filter’, bound to ‘/’. 8347Before we introduce it, we describe commands for individual filter 8348types. All filtering commands handle prefix arguments in the same way: 8349A single ‘C-u’ prefix negates the filter, so it removes lines selected 8350by the filter. A double prefix adds the new filter condition to the 8351one(s) already in place, so filter elements are accumulated. 8352 8353‘\’ (‘org-agenda-filter-by-tag’) 8354 Filter the agenda view with respect to a tag. You are prompted for 8355 a tag selection letter; ‘<SPC>’ means any tag at all. Pressing 8356 ‘<TAB>’ at that prompt offers completion to select a tag, including 8357 any tags that do not have a selection character. The command then 8358 hides all entries that do not contain or inherit this tag. 8359 Pressing ‘+’ or ‘-’ at the prompt switches between filtering for 8360 and against the next tag. To clear the filter, press ‘\’ twice 8361 (once to call the command again, and once at the prompt). 8362 8363‘<’ (‘org-agenda-filter-by-category’) 8364 Filter by category of the line at point, and show only entries with 8365 this category. When called with a prefix argument, hide all 8366 entries with the category at point. To clear the filter, call this 8367 command again by pressing ‘<’. 8368 8369‘=’ (‘org-agenda-filter-by-regexp’) 8370 Filter the agenda view by a regular expression: only show agenda 8371 entries matching the regular expression the user entered. To clear 8372 the filter, call the command again by pressing ‘=’. 8373 8374‘_’ (‘org-agenda-filter-by-effort’) 8375 Filter the agenda view with respect to effort estimates, so select 8376 tasks that take the right amount of time. You first need to set up 8377 a list of efforts globally, for example 8378 8379 (setq org-global-properties 8380 '(("Effort_ALL". "0 0:10 0:30 1:00 2:00 3:00 4:00"))) 8381 8382 You can then filter for an effort by first typing an operator, one 8383 of ‘<’, ‘>’ and ‘=’, and then the one-digit index of an effort 8384 estimate in your array of allowed values, where ‘0’ means the 10th 8385 value. The filter then restricts to entries with effort 8386 smaller-or-equal, equal, or larger-or-equal than the selected 8387 value. For application of the operator, entries without a defined 8388 effort are treated according to the value of 8389 ‘org-sort-agenda-noeffort-is-high’. To clear the filter, press ‘_’ 8390 twice (once to call the command again, and once at the first 8391 prompt). 8392 8393‘^’ (‘org-agenda-filter-by-top-headline’) 8394 Filter the current agenda view and only display items that fall 8395 under the same top-level headline as the current entry. To clear 8396 the filter, call this command again by pressing ‘^’. 8397 8398‘/’ (‘org-agenda-filter’) 8399 This is the unified interface to four of the five filter methods 8400 described above. At the prompt, specify different filter elements 8401 in a single string, with full completion support. For example, 8402 8403 +work-John+<0:10-/plot/ 8404 8405 selects entries with category ‘work’ and effort estimates below 10 8406 minutes, and deselects entries with tag ‘John’ or matching the 8407 regexp ‘plot’. You can leave ‘+’ out if that does not lead to 8408 ambiguities. The sequence of elements is arbitrary. The filter 8409 syntax assumes that there is no overlap between categories and 8410 tags. Otherwise, tags take priority. If you reply to the prompt 8411 with the empty string, all filtering is removed. If a filter is 8412 specified, it replaces all current filters. But if you call the 8413 command with a double prefix argument, or if you add an additional 8414 ‘+’ (e.g., ‘++work’) to the front of the string, the new filter 8415 elements are added to the active ones. A single prefix argument 8416 applies the entire filter in a negative sense. 8417 8418‘|’ (‘org-agenda-filter-remove-all’) 8419 Remove all filters in the current agenda view. 8420 8421Computed tag filtering 8422...................... 8423 8424If the variable ‘org-agenda-auto-exclude-function’ is set to a 8425user-defined function, that function can select tags that should be used 8426as a tag filter when requested. The function will be called with 8427lower-case versions of all tags represented in the current view. The 8428function should return ‘"-tag"’ if the filter should remove entries with 8429that tag, ‘"+tag"’ if only entries with this tag should be kept, or 8430‘nil’ if that tag is irrelevant. For example, let’s say you use a ‘Net’ 8431tag to identify tasks which need network access, an ‘Errand’ tag for 8432errands in town, and a ‘Call’ tag for making phone calls. You could 8433auto-exclude these tags based on the availability of the Internet, and 8434outside of business hours, with something like this: 8435 8436 (defun my-auto-exclude-fn (tag) 8437 (when (cond ((string= tag "net") 8438 (/= 0 (call-process "/sbin/ping" nil nil nil 8439 "-c1" "-q" "-t1" "mail.gnu.org"))) 8440 ((member tag '("errand" "call")) 8441 (let ((hr (nth 2 (decode-time)))) 8442 (or (< hr 8) (> hr 21))))) 8443 (concat "-" tag))) 8444 8445 (setq org-agenda-auto-exclude-function #'my-auto-exclude-fn) 8446 8447 You can apply this self-adapting filter by using a triple prefix 8448argument to ‘org-agenda-filter’, i.e. press ‘C-u C-u C-u /’, or by 8449pressing ‘<RET>’ in ‘org-agenda-filter-by-tag’. 8450 8451Setting limits for the agenda 8452............................. 8453 8454Here is a list of options that you can set, either globally, or locally 8455in your custom agenda views (see *note Custom Agenda Views::). 8456 8457‘org-agenda-max-entries’ 8458 Limit the number of entries. 8459 8460‘org-agenda-max-effort’ 8461 Limit the duration of accumulated efforts (as minutes). 8462 8463‘org-agenda-max-todos’ 8464 Limit the number of entries with TODO keywords. 8465 8466‘org-agenda-max-tags’ 8467 Limit the number of tagged entries. 8468 8469 When set to a positive integer, each option excludes entries from 8470other categories: for example, ‘(setq org-agenda-max-effort 100)’ limits 8471the agenda to 100 minutes of effort and exclude any entry that has no 8472effort property. If you want to include entries with no effort 8473property, use a negative value for ‘org-agenda-max-effort’. One useful 8474setup is to use ‘org-agenda-max-entries’ locally in a custom command. 8475For example, this custom command displays the next five entries with a 8476‘NEXT’ TODO keyword. 8477 8478 (setq org-agenda-custom-commands 8479 '(("n" todo "NEXT" 8480 ((org-agenda-max-entries 5))))) 8481 8482 Once you mark one of these five entry as DONE, rebuilding the agenda 8483will again the next five entries again, including the first entry that 8484was excluded so far. 8485 8486 You can also dynamically set temporary limits, which are lost when 8487rebuilding the agenda: 8488 8489‘~’ (‘org-agenda-limit-interactively’) 8490 This prompts for the type of limit to apply and its value. 8491 8492 ---------- Footnotes ---------- 8493 8494 (1) Custom agenda commands can preset a filter by binding one of the 8495variables ‘org-agenda-tag-filter-preset’, 8496‘org-agenda-category-filter-preset’, ‘org-agenda-effort-filter-preset’ 8497or ‘org-agenda-regexp-filter-preset’ as an option. This filter is then 8498applied to the view and persists as a basic filter through refreshes and 8499more secondary filtering. The filter is a global property of the entire 8500agenda view—in a block agenda, you should only set this in the global 8501options section, not in the section of an individual block. 8502 8503 8504File: org.info, Node: Agenda Commands, Next: Custom Agenda Views, Prev: Presentation and Sorting, Up: Agenda Views 8505 850611.5 Commands in the Agenda Buffer 8507================================== 8508 8509Entries in the agenda buffer are linked back to the Org file or diary 8510file where they originate. You are not allowed to edit the agenda 8511buffer itself, but commands are provided to show and jump to the 8512original entry location, and to edit the Org files “remotely” from the 8513agenda buffer. In this way, all information is stored only once, 8514removing the risk that your agenda and note files may diverge. 8515 8516 Some commands can be executed with mouse clicks on agenda lines. For 8517the other commands, point needs to be in the desired line. 8518 8519Motion 8520------ 8521 8522‘n’ (‘org-agenda-next-line’) 8523 Next line (same as ‘<DOWN>’ and ‘C-n’). 8524 8525‘p’ (‘org-agenda-previous-line’) 8526 Previous line (same as ‘<UP>’ and ‘C-p’). 8527 8528View/Go to Org file 8529------------------- 8530 8531‘<SPC>’ or ‘mouse-3’ (‘org-agenda-show-and-scroll-up’) 8532 Display the original location of the item in another window. With 8533 a prefix argument, make sure that drawers stay folded. 8534 8535‘L’ (‘org-agenda-recenter’) 8536 Display original location and recenter that window. 8537 8538‘<TAB>’ or ‘mouse-2’ (‘org-agenda-goto’) 8539 Go to the original location of the item in another window. 8540 8541‘<RET>’ (‘org-agenda-switch-to’) 8542 Go to the original location of the item and delete other windows. 8543 8544‘F’ (‘org-agenda-follow-mode’) 8545 Toggle Follow mode. In Follow mode, as you move point through the 8546 agenda buffer, the other window always shows the corresponding 8547 location in the Org file. The initial setting for this mode in new 8548 agenda buffers can be set with the variable 8549 ‘org-agenda-start-with-follow-mode’. 8550 8551‘C-c C-x b’ (‘org-agenda-tree-to-indirect-buffer’) 8552 Display the entire subtree of the current item in an indirect 8553 buffer. With a numeric prefix argument N, go up to level N and 8554 then take that tree. If N is negative, go up that many levels. 8555 With a ‘C-u’ prefix, do not remove the previously used indirect 8556 buffer. 8557 8558‘C-c C-o’ (‘org-agenda-open-link’) 8559 Follow a link in the entry. This offers a selection of any links 8560 in the text belonging to the referenced Org node. If there is only 8561 one link, follow it without a selection prompt. 8562 8563Change display 8564-------------- 8565 8566‘A’ 8567 Interactively select another agenda view and append it to the 8568 current view. 8569 8570‘o’ 8571 Delete other windows. 8572 8573‘v d’ or short ‘d’ (‘org-agenda-day-view’) 8574 Switch to day view. When switching to day view, this setting 8575 becomes the default for subsequent agenda refreshes. A numeric 8576 prefix argument may be used to jump directly to a specific day of 8577 the year. For example, ‘32 d’ jumps to February 1st. When setting 8578 day view, a year may be encoded in the prefix argument as well. 8579 For example, ‘200712 d’ jumps to January 12, 2007. If such a year 8580 specification has only one or two digits, it is expanded into one 8581 of the 30 next years or the last 69 years. 8582 8583‘v w’ or short ‘w’ (‘org-agenda-week-view’) 8584 Switch to week view. When switching week view, this setting 8585 becomes the default for subsequent agenda refreshes. A numeric 8586 prefix argument may be used to jump directly to a specific day of 8587 the ISO week. For example ‘9 w’ to ISO week number 9. When 8588 setting week view, a year may be encoded in the prefix argument as 8589 well. For example, ‘200712 w’ jumps to week 12 in 2007. If such a 8590 year specification has only one or two digits, it is expanded into 8591 one of the 30 next years or the last 69 years. 8592 8593‘v m’ (‘org-agenda-month-view’) 8594 Switch to month view. Because month views are slow to create, they 8595 do not become the default for subsequent agenda refreshes. A 8596 numeric prefix argument may be used to jump directly to a specific 8597 day of the month. When setting month view, a year may be encoded 8598 in the prefix argument as well. For example, ‘200712 m’ jumps to 8599 December, 2007. If such a year specification has only one or two 8600 digits, it is expanded into one of the 30 next years or the last 69 8601 years. 8602 8603‘v y’ (‘org-agenda-year-view’) 8604 Switch to year view. Because year views are slow to create, they 8605 do not become the default for subsequent agenda refreshes. A 8606 numeric prefix argument may be used to jump directly to a specific 8607 day of the year. 8608 8609‘v <SPC>’ (‘org-agenda-reset-view’) 8610 Reset the current view to ‘org-agenda-span’. 8611 8612‘f’ (‘org-agenda-later’) 8613 Go forward in time to display the span following the current one. 8614 For example, if the display covers a week, switch to the following 8615 week. With a prefix argument, repeat that many times. 8616 8617‘b’ (‘org-agenda-earlier’) 8618 Go backward in time to display earlier dates. 8619 8620‘.’ (‘org-agenda-goto-today’) 8621 Go to today. 8622 8623‘j’ (‘org-agenda-goto-date’) 8624 Prompt for a date and go there. 8625 8626‘J’ (‘org-agenda-clock-goto’) 8627 Go to the currently clocked-in task _in the agenda buffer_. 8628 8629‘D’ (‘org-agenda-toggle-diary’) 8630 Toggle the inclusion of diary entries. See *note Weekly/daily 8631 agenda::. 8632 8633‘v l’ or ‘v L’ or short ‘l’ (‘org-agenda-log-mode’) 8634 Toggle Logbook mode. In Logbook mode, entries that were marked as 8635 done while logging was on (see the variable ‘org-log-done’) are 8636 shown in the agenda, as are entries that have been clocked on that 8637 day. You can configure the entry types that should be included in 8638 log mode using the variable ‘org-agenda-log-mode-items’. When 8639 called with a ‘C-u’ prefix argument, show all possible logbook 8640 entries, including state changes. When called with two prefix 8641 arguments ‘C-u C-u’, show only logging information, nothing else. 8642 ‘v L’ is equivalent to ‘C-u v l’. 8643 8644‘v [’ or short ‘[’ (‘org-agenda-manipulate-query-add’) 8645 Include inactive timestamps into the current view. Only for 8646 weekly/daily agenda. 8647 8648‘v a’ (‘org-agenda-archives-mode’) 8649 Toggle Archives mode. In Archives mode, trees that are archived 8650 (see *note Internal archiving::) are also scanned when producing 8651 the agenda. To exit archives mode, press ‘v a’ again. 8652 8653‘v A’ 8654 Toggle Archives mode. Include all archive files as well. 8655 8656‘v R’ or short ‘R’ (‘org-agenda-clockreport-mode’) 8657 Toggle Clockreport mode. In Clockreport mode, the daily/weekly 8658 agenda always shows a table with the clocked times for the time 8659 span and file scope covered by the current agenda view. The 8660 initial setting for this mode in new agenda buffers can be set with 8661 the variable ‘org-agenda-start-with-clockreport-mode’. By using a 8662 prefix argument when toggling this mode (i.e., ‘C-u R’), the clock 8663 table does not show contributions from entries that are hidden by 8664 agenda filtering(1). See also the variable 8665 ‘org-clock-report-include-clocking-task’. 8666 8667‘v c’ 8668 Show overlapping clock entries, clocking gaps, and other clocking 8669 problems in the current agenda range. You can then visit clocking 8670 lines and fix them manually. See the variable 8671 ‘org-agenda-clock-consistency-checks’ for information on how to 8672 customize the definition of what constituted a clocking problem. 8673 To return to normal agenda display, press ‘l’ to exit Logbook mode. 8674 8675‘v E’ or short ‘E’ (‘org-agenda-entry-text-mode’) 8676 Toggle entry text mode. In entry text mode, a number of lines from 8677 the Org outline node referenced by an agenda line are displayed 8678 below the line. The maximum number of lines is given by the 8679 variable ‘org-agenda-entry-text-maxlines’. Calling this command 8680 with a numeric prefix argument temporarily modifies that number to 8681 the prefix value. 8682 8683‘G’ (‘org-agenda-toggle-time-grid’) 8684 Toggle the time grid on and off. See also the variables 8685 ‘org-agenda-use-time-grid’ and ‘org-agenda-time-grid’. 8686 8687‘r’ (‘org-agenda-redo’) 8688‘g’ 8689 Recreate the agenda buffer, for example to reflect the changes 8690 after modification of the timestamps of items with ‘S-<LEFT>’ and 8691 ‘S-<RIGHT>’. When the buffer is the global TODO list, a prefix 8692 argument is interpreted to create a selective list for a specific 8693 TODO keyword. 8694 8695‘C-x C-s’ or short ‘s’ (‘org-save-all-org-buffers’) 8696 Save all Org buffers in the current Emacs session, and also the 8697 locations of IDs. 8698 8699‘C-c C-x C-c’ (‘org-agenda-columns’) 8700 Invoke column view (see *note Column View::) in the agenda buffer. 8701 The column view format is taken from the entry at point, or, if 8702 there is no entry at point, from the first entry in the agenda 8703 view. So whatever the format for that entry would be in the 8704 original buffer (taken from a property, from a ‘COLUMNS’ keyword, 8705 or from the default variable ‘org-columns-default-format’) is used 8706 in the agenda. 8707 8708‘C-c C-x >’ (‘org-agenda-remove-restriction-lock’) 8709 Remove the restriction lock on the agenda, if it is currently 8710 restricted to a file or subtree (see *note Agenda Files::). 8711 8712‘M-<UP>’ (‘org-agenda-drag-line-backward’) 8713 Drag the line at point backward one line. With a numeric prefix 8714 argument, drag backward by that many lines. 8715 8716 Moving agenda lines does not persist after an agenda refresh and 8717 does not modify the contributing Org files. 8718 8719‘M-<DOWN>’ (‘org-agenda-drag-line-forward’) 8720 Drag the line at point forward one line. With a numeric prefix 8721 argument, drag forward by that many lines. 8722 8723Remote editing 8724-------------- 8725 8726‘0--9’ 8727 Digit argument. 8728 8729‘C-_’ (‘org-agenda-undo’) 8730 Undo a change due to a remote editing command. The change is 8731 undone both in the agenda buffer and in the remote buffer. 8732 8733‘t’ (‘org-agenda-todo’) 8734 Change the TODO state of the item, both in the agenda and in the 8735 original Org file. A prefix arg is passed through to the 8736 ‘org-todo’ command, so for example a ‘C-u’ prefix are will trigger 8737 taking a note to document the state change. 8738 8739‘C-S-<RIGHT>’ (‘org-agenda-todo-nextset’) 8740 Switch to the next set of TODO keywords. 8741 8742‘C-S-<LEFT>’, ‘org-agenda-todo-previousset’ 8743 Switch to the previous set of TODO keywords. 8744 8745‘C-k’ (‘org-agenda-kill’) 8746 Delete the current agenda item along with the entire subtree 8747 belonging to it in the original Org file. If the text to be 8748 deleted remotely is longer than one line, the kill needs to be 8749 confirmed by the user. See variable ‘org-agenda-confirm-kill’. 8750 8751‘C-c C-w’ (‘org-agenda-refile’) 8752 Refile the entry at point. 8753 8754‘C-c C-x C-a’ or short ‘a’ (‘org-agenda-archive-default-with-confirmation’) 8755 Archive the subtree corresponding to the entry at point using the 8756 default archiving command set in ‘org-archive-default-command’. 8757 When using the ‘a’ key, confirmation is required. 8758 8759‘C-c C-x a’ (‘org-agenda-toggle-archive-tag’) 8760 Toggle the archive tag (see *note Internal archiving::) for the 8761 current headline. 8762 8763‘C-c C-x A’ (‘org-agenda-archive-to-archive-sibling’) 8764 Move the subtree corresponding to the current entry to its _archive 8765 sibling_. 8766 8767‘C-c C-x C-s’ or short ‘$’ (‘org-agenda-archive’) 8768 Archive the subtree corresponding to the current headline. This 8769 means the entry is moved to the configured archive location, most 8770 likely a different file. 8771 8772‘T’ (‘org-agenda-show-tags’) 8773 Show all tags associated with the current item. This is useful if 8774 you have turned off ‘org-agenda-show-inherited-tags’, but still 8775 want to see all tags of a headline occasionally. 8776 8777‘:’ (‘org-agenda-set-tags’) 8778 Set tags for the current headline. If there is an active region in 8779 the agenda, change a tag for all headings in the region. 8780 8781‘,’ (‘org-agenda-priority’) 8782 Set the priority for the current item. Org mode prompts for the 8783 priority character. If you reply with ‘<SPC>’, the priority cookie 8784 is removed from the entry. 8785 8786‘+’ or ‘S-<UP>’ (‘org-agenda-priority-up’) 8787 Increase the priority of the current item. The priority is changed 8788 in the original buffer, but the agenda is not resorted. Use the 8789 ‘r’ key for this. 8790 8791‘-’ or ‘S-<DOWN>’ (‘org-agenda-priority-down’) 8792 Decrease the priority of the current item. 8793 8794‘C-c C-x e’ or short ‘e’ (‘org-agenda-set-effort’) 8795 Set the effort property for the current item. 8796 8797‘C-c C-z’ or short ‘z’ (‘org-agenda-add-note’) 8798 Add a note to the entry. This note is recorded, and then filed to 8799 the same location where state change notes are put. Depending on 8800 ‘org-log-into-drawer’, this may be inside a drawer. 8801 8802‘C-c C-a’ (‘org-attach’) 8803 Dispatcher for all command related to attachments. 8804 8805‘C-c C-s’ (‘org-agenda-schedule’) 8806 Schedule this item. With a prefix argument, remove the scheduling 8807 timestamp 8808 8809‘C-c C-d’ (‘org-agenda-deadline’) 8810 Set a deadline for this item. With a prefix argument, remove the 8811 deadline. 8812 8813‘S-<RIGHT>’ (‘org-agenda-do-date-later’) 8814 Change the timestamp associated with the current line by one day 8815 into the future. If the date is in the past, the first call to 8816 this command moves it to today. With a numeric prefix argument, 8817 change it by that many days. For example, ‘3 6 5 S-<RIGHT>’ 8818 changes it by a year. With a ‘C-u’ prefix, change the time by one 8819 hour. If you immediately repeat the command, it will continue to 8820 change hours even without the prefix argument. With a double ‘C-u 8821 C-u’ prefix, do the same for changing minutes. The stamp is 8822 changed in the original Org file, but the change is not directly 8823 reflected in the agenda buffer. Use ‘r’ or ‘g’ to update the 8824 buffer. 8825 8826‘S-<LEFT>’ (‘org-agenda-do-date-earlier’) 8827 Change the timestamp associated with the current line by one day 8828 into the past. 8829 8830‘>’ (‘org-agenda-date-prompt’) 8831 Change the timestamp associated with the current line. The key ‘>’ 8832 has been chosen, because it is the same as ‘S-.’ on my keyboard. 8833 8834‘I’ (‘org-agenda-clock-in’) 8835 Start the clock on the current item. If a clock is running 8836 already, it is stopped first. 8837 8838‘O’ (‘org-agenda-clock-out’) 8839 Stop the previously started clock. 8840 8841‘X’ (‘org-agenda-clock-cancel’) 8842 Cancel the currently running clock. 8843 8844‘J’ (‘org-agenda-clock-goto’) 8845 Jump to the running clock in another window. 8846 8847‘k’ (‘org-agenda-capture’) 8848 Like ‘org-capture’, but use the date at point as the default date 8849 for the capture template. See ‘org-capture-use-agenda-date’ to 8850 make this the default behavior of ‘org-capture’. 8851 8852Bulk remote editing selected entries 8853------------------------------------ 8854 8855‘m’ (‘org-agenda-bulk-mark’) 8856 8857 Mark the entry at point for bulk action. If there is an active 8858 region in the agenda, mark the entries in the region. With numeric 8859 prefix argument, mark that many successive entries. 8860 8861‘*’ (‘org-agenda-bulk-mark-all’) 8862 8863 Mark all visible agenda entries for bulk action. 8864 8865‘u’ (‘org-agenda-bulk-unmark’) 8866 8867 Unmark entry for bulk action. 8868 8869‘U’ (‘org-agenda-bulk-remove-all-marks’) 8870 8871 Unmark all marked entries for bulk action. 8872 8873‘M-m’ (‘org-agenda-bulk-toggle’) 8874 8875 Toggle mark of the entry at point for bulk action. 8876 8877‘M-*’ (‘org-agenda-bulk-toggle-all’) 8878 8879 Toggle mark of every entry for bulk action. 8880 8881‘%’ (‘org-agenda-bulk-mark-regexp’) 8882 8883 Mark entries matching a regular expression for bulk action. 8884 8885‘B’ (‘org-agenda-bulk-action’) 8886 8887 Bulk action: act on all marked entries in the agenda. This prompts 8888 for another key to select the action to be applied. The prefix 8889 argument to ‘B’ is passed through to the ‘s’ and ‘d’ commands, to 8890 bulk-remove these special timestamps. By default, marks are 8891 removed after the bulk. If you want them to persist, set 8892 ‘org-agenda-bulk-persistent-marks’ to ‘t’ or hit ‘p’ at the prompt. 8893 8894 ‘p’ 8895 Toggle persistent marks. 8896 8897 ‘$’ 8898 Archive all selected entries. 8899 8900 ‘A’ 8901 Archive entries by moving them to their respective archive 8902 siblings. 8903 8904 ‘t’ 8905 Change TODO state. This prompts for a single TODO keyword and 8906 changes the state of all selected entries, bypassing blocking 8907 and suppressing logging notes—but not timestamps. 8908 8909 ‘+’ 8910 Add a tag to all selected entries. 8911 8912 ‘-’ 8913 Remove a tag from all selected entries. 8914 8915 ‘s’ 8916 Schedule all items to a new date. To shift existing schedule 8917 dates by a fixed number of days, use something starting with 8918 double plus at the prompt, for example ‘++8d’ or ‘++2w’. 8919 8920 ‘d’ 8921 Set deadline to a specific date. 8922 8923 ‘r’ 8924 Prompt for a single refile target and move all entries. The 8925 entries are no longer in the agenda; refresh (‘g’) to bring 8926 them back. 8927 8928 ‘S’ 8929 Reschedule randomly into the coming N days. N is prompted 8930 for. With a prefix argument (‘C-u B S’), scatter only across 8931 weekdays. 8932 8933 ‘f’ 8934 Apply a function(2) to marked entries. For example, the 8935 function below sets the ‘CATEGORY’ property of the entries to 8936 ‘web’. 8937 8938 (defun set-category () 8939 (interactive "P") 8940 (let ((marker (or (org-get-at-bol 'org-hd-marker) 8941 (org-agenda-error)))) 8942 (org-with-point-at marker 8943 (org-back-to-heading t) 8944 (org-set-property "CATEGORY" "web")))) 8945 8946Calendar commands 8947----------------- 8948 8949‘c’ (‘org-agenda-goto-calendar’) 8950 Open the Emacs calendar and go to the date at point in the agenda. 8951 8952‘c’ (‘org-calendar-goto-agenda’) 8953 When in the calendar, compute and show the Org agenda for the date 8954 at point. 8955 8956‘i’ (‘org-agenda-diary-entry’) 8957 8958 Insert a new entry into the diary, using the date at point and (for 8959 block entries) the date at the mark. This adds to the Emacs diary 8960 file(3), in a way similar to the ‘i’ command in the calendar. The 8961 diary file pops up in another window, where you can add the entry. 8962 8963 If you configure ‘org-agenda-diary-file’ to point to an Org file, 8964 Org creates entries in that file instead. Most entries are stored 8965 in a date-based outline tree that will later make it easy to 8966 archive appointments from previous months/years. The tree is built 8967 under an entry with a ‘DATE_TREE’ property, or else with years as 8968 top-level entries. Emacs prompts you for the entry text—if you 8969 specify it, the entry is created in ‘org-agenda-diary-file’ without 8970 further interaction. If you directly press ‘<RET>’ at the prompt 8971 without typing text, the target file is shown in another window for 8972 you to finish the entry there. See also the ‘k r’ command. 8973 8974‘M’ (‘org-agenda-phases-of-moon’) 8975 Show the phases of the moon for the three months around current 8976 date. 8977 8978‘S’ (‘org-agenda-sunrise-sunset’) 8979 Show sunrise and sunset times. The geographical location must be 8980 set with calendar variables, see the documentation for the Emacs 8981 calendar. 8982 8983‘C’ (‘org-agenda-convert-date’) 8984 Convert the date at point into many other cultural and historic 8985 calendars. 8986 8987‘H’ (‘org-agenda-holidays’) 8988 Show holidays for three months around point date. 8989 8990Quit and exit 8991------------- 8992 8993‘q’ (‘org-agenda-quit’) 8994 8995 Quit agenda, remove the agenda buffer. 8996 8997‘x’ (‘org-agenda-exit’) 8998 8999 Exit agenda, remove the agenda buffer and all buffers loaded by 9000 Emacs for the compilation of the agenda. Buffers created by the 9001 user to visit Org files are not removed. 9002 9003 ---------- Footnotes ---------- 9004 9005 (1) Only tags filtering is respected here, effort filtering is 9006ignored. 9007 9008 (2) You can also create persistent custom functions through 9009‘org-agenda-bulk-custom-functions’. 9010 9011 (3) This file is parsed for the agenda when 9012‘org-agenda-include-diary’ is set. 9013 9014 9015File: org.info, Node: Custom Agenda Views, Next: Exporting Agenda Views, Prev: Agenda Commands, Up: Agenda Views 9016 901711.6 Custom Agenda Views 9018======================== 9019 9020Custom agenda commands serve two purposes: to store and quickly access 9021frequently used TODO and tags searches, and to create special composite 9022agenda buffers. Custom agenda commands are accessible through the 9023dispatcher (see *note Agenda Dispatcher::), just like the default 9024commands. 9025 9026* Menu: 9027 9028* Storing searches:: Type once, use often. 9029* Block agenda:: All the stuff you need in a single buffer. 9030* Setting options:: Changing the rules. 9031 9032 9033File: org.info, Node: Storing searches, Next: Block agenda, Up: Custom Agenda Views 9034 903511.6.1 Storing searches 9036----------------------- 9037 9038The first application of custom searches is the definition of keyboard 9039shortcuts for frequently used searches, either creating an agenda 9040buffer, or a sparse tree (the latter covering of course only the current 9041buffer). 9042 9043 Custom commands are configured in the variable 9044‘org-agenda-custom-commands’. You can customize this variable, for 9045example by pressing ‘C’ from the agenda dispatcher (see *note Agenda 9046Dispatcher::). You can also directly set it with Emacs Lisp in the 9047Emacs init file. The following example contains all valid agenda views: 9048 9049 (setq org-agenda-custom-commands 9050 '(("x" agenda) 9051 ("y" agenda*) 9052 ("w" todo "WAITING") 9053 ("W" todo-tree "WAITING") 9054 ("u" tags "+boss-urgent") 9055 ("v" tags-todo "+boss-urgent") 9056 ("U" tags-tree "+boss-urgent") 9057 ("f" occur-tree "\\<FIXME\\>") 9058 ("h" . "HOME+Name tags searches") ;description for "h" prefix 9059 ("hl" tags "+home+Lisa") 9060 ("hp" tags "+home+Peter") 9061 ("hk" tags "+home+Kim"))) 9062 9063 The initial string in each entry defines the keys you have to press 9064after the dispatcher command in order to access the command. Usually 9065this is just a single character, but if you have many similar commands, 9066you can also define two-letter combinations where the first character is 9067the same in several combinations and serves as a prefix key(1). The 9068second parameter is the search type, followed by the string or regular 9069expression to be used for the matching. The example above will 9070therefore define: 9071 9072‘x’ 9073 as a global search for agenda entries planned(2) this week/day. 9074 9075‘y’ 9076 as the same search, but only for entries with an hour specification 9077 like ‘[h]h:mm’—think of them as appointments. 9078 9079‘w’ 9080 as a global search for TODO entries with ‘WAITING’ as the TODO 9081 keyword. 9082 9083‘W’ 9084 as the same search, but only in the current buffer and displaying 9085 the results as a sparse tree. 9086 9087‘u’ 9088 as a global tags search for headlines tagged ‘boss’ but not 9089 ‘urgent’. 9090 9091‘v’ 9092 The same search, but limiting it to headlines that are also TODO 9093 items. 9094 9095‘U’ 9096 as the same search, but only in the current buffer and displaying 9097 the result as a sparse tree. 9098 9099‘f’ 9100 to create a sparse tree (again, current buffer only) with all 9101 entries containing the word ‘FIXME’. 9102 9103‘h’ 9104 as a prefix command for a ‘HOME’ tags search where you have to 9105 press an additional key (‘l’, ‘p’ or ‘k’) to select a name (Lisa, 9106 Peter, or Kim) as additional tag to match. 9107 9108 Note that ‘*-tree’ agenda views need to be called from an Org buffer 9109as they operate on the current buffer only. 9110 9111 ---------- Footnotes ---------- 9112 9113 (1) You can provide a description for a prefix key by inserting a 9114cons cell with the prefix and the description. 9115 9116 (2) _Planned_ means here that these entries have some planning 9117information attached to them, like a time-stamp, a scheduled or a 9118deadline string. See ‘org-agenda-entry-types’ on how to set what 9119planning information is taken into account. 9120 9121 9122File: org.info, Node: Block agenda, Next: Setting options, Prev: Storing searches, Up: Custom Agenda Views 9123 912411.6.2 Block agenda 9125------------------- 9126 9127Another possibility is the construction of agenda views that comprise 9128the results of _several_ commands, each of which creates a block in the 9129agenda buffer. The available commands include ‘agenda’ for the daily or 9130weekly agenda (as created with ‘a’) , ‘alltodo’ for the global TODO list 9131(as constructed with ‘t’), ‘stuck’ for the list of stuck projects (as 9132obtained with ‘#’) and the matching commands discussed above: ‘todo’, 9133‘tags’, and ‘tags-todo’. 9134 9135 Here are two examples: 9136 9137 (setq org-agenda-custom-commands 9138 '(("h" "Agenda and Home-related tasks" 9139 ((agenda "") 9140 (tags-todo "home") 9141 (tags "garden"))) 9142 ("o" "Agenda and Office-related tasks" 9143 ((agenda "") 9144 (tags-todo "work") 9145 (tags "office"))))) 9146 9147This defines ‘h’ to create a multi-block view for stuff you need to 9148attend to at home. The resulting agenda buffer contains your agenda for 9149the current week, all TODO items that carry the tag ‘home’, and also all 9150lines tagged with ‘garden’. Finally the command ‘o’ provides a similar 9151view for office tasks. 9152 9153 9154File: org.info, Node: Setting options, Prev: Block agenda, Up: Custom Agenda Views 9155 915611.6.3 Setting options for custom commands 9157------------------------------------------ 9158 9159Org mode contains a number of variables regulating agenda construction 9160and display. The global variables define the behavior for all agenda 9161commands, including the custom commands. However, if you want to change 9162some settings just for a single custom view, you can do so. Setting 9163options requires inserting a list of variable names and values at the 9164right spot in ‘org-agenda-custom-commands’. For example: 9165 9166 (setq org-agenda-custom-commands 9167 '(("w" todo "WAITING" 9168 ((org-agenda-sorting-strategy '(priority-down)) 9169 (org-agenda-prefix-format " Mixed: "))) 9170 ("U" tags-tree "+boss-urgent" 9171 ((org-show-context-detail 'minimal))) 9172 ("N" search "" 9173 ((org-agenda-files '("~org/notes.org")) 9174 (org-agenda-text-search-extra-files nil))))) 9175 9176Now the ‘w’ command sorts the collected entries only by priority, and 9177the prefix format is modified to just say ‘Mixed:’ instead of giving the 9178category of the entry. The sparse tags tree of ‘U’ now turns out 9179ultra-compact, because neither the headline hierarchy above the match, 9180nor the headline following the match are shown. The command ‘N’ does a 9181text search limited to only a single file. 9182 9183 For command sets creating a block agenda, 9184‘org-agenda-custom-commands’ has two separate spots for setting options. 9185You can add options that should be valid for just a single command in 9186the set, and options that should be valid for all commands in the set. 9187The former are just added to the command entry; the latter must come 9188after the list of command entries. Going back to the block agenda 9189example (see *note Block agenda::), let’s change the sorting strategy 9190for the ‘h’ commands to ‘priority-down’, but let’s sort the results for 9191‘garden’ tags query in the opposite order, ‘priority-up’. This would 9192look like this: 9193 9194 (setq org-agenda-custom-commands 9195 '(("h" "Agenda and Home-related tasks" 9196 ((agenda) 9197 (tags-todo "home") 9198 (tags "garden" 9199 ((org-agenda-sorting-strategy '(priority-up))))) 9200 ((org-agenda-sorting-strategy '(priority-down)))) 9201 ("o" "Agenda and Office-related tasks" 9202 ((agenda) 9203 (tags-todo "work") 9204 (tags "office"))))) 9205 9206 As you see, the values and parentheses setting is a little complex. 9207When in doubt, use the customize interface to set this variable—it fully 9208supports its structure. Just one caveat: when setting options in this 9209interface, the _values_ are just Lisp expressions. So if the value is a 9210string, you need to add the double-quotes around the value yourself. 9211 9212 To control whether an agenda command should be accessible from a 9213specific context, you can customize 9214‘org-agenda-custom-commands-contexts’. Let’s say for example that you 9215have an agenda command ‘o’ displaying a view that you only need when 9216reading emails. Then you would configure this option like this: 9217 9218 (setq org-agenda-custom-commands-contexts 9219 '(("o" (in-mode . "message-mode")))) 9220 9221 You can also tell that the command key ‘o’ should refer to another 9222command key ‘r’. In that case, add this command key like this: 9223 9224 (setq org-agenda-custom-commands-contexts 9225 '(("o" "r" (in-mode . "message-mode")))) 9226 9227 See the docstring of the variable for more information. 9228 9229 9230File: org.info, Node: Exporting Agenda Views, Next: Agenda Column View, Prev: Custom Agenda Views, Up: Agenda Views 9231 923211.7 Exporting Agenda Views 9233=========================== 9234 9235If you are away from your computer, it can be very useful to have a 9236printed version of some agenda views to carry around. Org mode can 9237export custom agenda views as plain text, HTML(1), Postscript, PDF(2), 9238and iCalendar files. If you want to do this only occasionally, use the 9239following command: 9240 9241‘C-x C-w’ (‘org-agenda-write’) 9242 9243 Write the agenda view to a file. 9244 9245 If you need to export certain agenda views frequently, you can 9246associate any custom agenda command with a list of output file names(3). 9247Here is an example that first defines custom commands for the agenda and 9248the global TODO list, together with a number of files to which to export 9249them. Then we define two block agenda commands and specify file names 9250for them as well. File names can be relative to the current working 9251directory, or absolute. 9252 9253 (setq org-agenda-custom-commands 9254 '(("X" agenda "" nil ("agenda.html" "agenda.ps")) 9255 ("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps")) 9256 ("h" "Agenda and Home-related tasks" 9257 ((agenda "") 9258 (tags-todo "home") 9259 (tags "garden")) 9260 nil 9261 ("~/views/home.html")) 9262 ("o" "Agenda and Office-related tasks" 9263 ((agenda) 9264 (tags-todo "work") 9265 (tags "office")) 9266 nil 9267 ("~/views/office.ps" "~/calendars/office.ics")))) 9268 9269 The extension of the file name determines the type of export. If it 9270is ‘.html’, Org mode uses the htmlize package to convert the buffer to 9271HTML and save it to this file name. If the extension is ‘.ps’, 9272‘ps-print-buffer-with-faces’ is used to produce Postscript output. If 9273the extension is ‘.ics’, iCalendar export is run export over all files 9274that were used to construct the agenda, and limit the export to entries 9275listed in the agenda. Any other extension produces a plain ASCII file. 9276 9277 The export files are _not_ created when you use one of those commands 9278interactively because this might use too much overhead. Instead, there 9279is a special command to produce _all_ specified files in one step: 9280 9281‘e’ (‘org-store-agenda-views’) 9282 Export all agenda views that have export file names associated with 9283 them. 9284 9285 You can use the options section of the custom agenda commands to also 9286set options for the export commands. For example: 9287 9288 (setq org-agenda-custom-commands 9289 '(("X" agenda "" 9290 ((ps-number-of-columns 2) 9291 (ps-landscape-mode t) 9292 (org-agenda-prefix-format " [ ] ") 9293 (org-agenda-with-colors nil) 9294 (org-agenda-remove-tags t)) 9295 ("theagenda.ps")))) 9296 9297This command sets two options for the Postscript exporter, to make it 9298print in two columns in landscape format—the resulting page can be cut 9299in two and then used in a paper agenda. The remaining settings modify 9300the agenda prefix to omit category and scheduling information, and 9301instead include a checkbox to check off items. We also remove the tags 9302to make the lines compact, and we do not want to use colors for the 9303black-and-white printer. Settings specified in 9304‘org-agenda-exporter-settings’ also apply, e.g., 9305 9306 (setq org-agenda-exporter-settings 9307 '((ps-number-of-columns 2) 9308 (ps-landscape-mode t) 9309 (org-agenda-add-entry-text-maxlines 5) 9310 (htmlize-output-type 'css))) 9311 9312but the settings in ‘org-agenda-custom-commands’ take precedence. 9313 9314 From the command line you may also use: 9315 9316 emacs -eval (org-batch-store-agenda-views) -kill 9317 9318or, if you need to modify some parameters(4) 9319 9320 emacs -eval '(org-batch-store-agenda-views \ 9321 org-agenda-span (quote month) \ 9322 org-agenda-start-day "2007-11-01" \ 9323 org-agenda-include-diary nil \ 9324 org-agenda-files (quote ("~/org/project.org")))' \ 9325 -kill 9326 9327which creates the agenda views restricted to the file 9328‘~/org/project.org’, without diary entries and with a 30-day extent. 9329 9330 You can also extract agenda information in a way that allows further 9331processing by other programs. See *note Extracting Agenda 9332Information::, for more information. 9333 9334 ---------- Footnotes ---------- 9335 9336 (1) For HTML you need to install Hrvoje Nikšić’s ‘htmlize.el’ as an 9337Emacs package from MELPA or from Hrvoje Nikšić’s repository 9338(https://github.com/hniksic/emacs-htmlize). 9339 9340 (2) To create PDF output, the Ghostscript ps2pdf utility must be 9341installed on the system. Selecting a PDF file also creates the 9342postscript file. 9343 9344 (3) If you want to store standard views like the weekly agenda or the 9345global TODO list as well, you need to define custom commands for them in 9346order to be able to specify file names. 9347 9348 (4) Quoting depends on the system you use, please check the FAQ for 9349examples. 9350 9351 9352File: org.info, Node: Agenda Column View, Prev: Exporting Agenda Views, Up: Agenda Views 9353 935411.8 Using Column View in the Agenda 9355==================================== 9356 9357Column view (see *note Column View::) is normally used to view and edit 9358properties embedded in the hierarchical structure of an Org file. It 9359can be quite useful to use column view also from the agenda, where 9360entries are collected by certain criteria. 9361 9362‘C-c C-x C-c’ (‘org-agenda-columns’) 9363 9364 Turn on column view in the agenda. 9365 9366 To understand how to use this properly, it is important to realize 9367that the entries in the agenda are no longer in their proper outline 9368environment. This causes the following issues: 9369 9370 1. Org needs to make a decision which columns format to use. Since 9371 the entries in the agenda are collected from different files, and 9372 different files may have different columns formats, this is a 9373 non-trivial problem. Org first checks if 9374 ‘org-overriding-columns-format’ is currently set, and if so, takes 9375 the format from there. You should set this variable only in the 9376 _local settings section_ of a custom agenda command (see *note 9377 Custom Agenda Views::) to make it valid for that specific agenda 9378 view. If no such binding exists, it checks, in sequence, 9379 ‘org-columns-default-format-for-agenda’, the format associated with 9380 the first item in the agenda (through a property or a ‘#+COLUMNS’ 9381 setting in that buffer) and finally ‘org-columns-default-format’. 9382 9383 2. If any of the columns has a summary type defined (see *note Column 9384 attributes::), turning on column view in the agenda visits all 9385 relevant agenda files and make sure that the computations of this 9386 property are up to date. This is also true for the special 9387 ‘CLOCKSUM’ property. Org then sums the values displayed in the 9388 agenda. In the daily/weekly agenda, the sums cover a single day; 9389 in all other views they cover the entire block. 9390 9391 It is important to realize that the agenda may show the same entry 9392 _twice_—for example as scheduled and as a deadline—and it may show 9393 two entries from the same hierarchy (for example a _parent_ and its 9394 _child_). In these cases, the summation in the agenda leads to 9395 incorrect results because some values count double. 9396 9397 3. When the column view in the agenda shows the ‘CLOCKSUM’ property, 9398 that is always the entire clocked time for this item. So even in 9399 the daily/weekly agenda, the clocksum listed in column view may 9400 originate from times outside the current view. This has the 9401 advantage that you can compare these values with a column listing 9402 the planned total effort for a task—one of the major applications 9403 for column view in the agenda. If you want information about 9404 clocked time in the displayed period use clock table mode (press 9405 ‘R’ in the agenda). 9406 9407 4. When the column view in the agenda shows the ‘CLOCKSUM_T’ property, 9408 that is always today’s clocked time for this item. So even in the 9409 weekly agenda, the clocksum listed in column view only originates 9410 from today. This lets you compare the time you spent on a task for 9411 today, with the time already spent—via ‘CLOCKSUM’—and with the 9412 planned total effort for it. 9413 9414 9415File: org.info, Node: Markup for Rich Contents, Next: Exporting, Prev: Agenda Views, Up: Top 9416 941712 Markup for Rich Contents 9418*************************** 9419 9420Org is primarily about organizing and searching through your plain-text 9421notes. However, it also provides a lightweight yet robust markup 9422language for rich text formatting and more. For instance, you may want 9423to center or emphasize text. Or you may need to insert a formula or 9424image in your writing. Org offers syntax for all of this and more. 9425Used in conjunction with the export framework (see *note Exporting::), 9426you can author beautiful documents in Org—like the fine manual you are 9427currently reading. 9428 9429* Menu: 9430 9431* Paragraphs:: The basic unit of text. 9432* Emphasis and Monospace:: Bold, italic, etc. 9433* Subscripts and Superscripts:: Simple syntax for raising/lowering text. 9434* Special Symbols:: Greek letters and other symbols. 9435* Embedded LaTeX:: LaTeX can be freely used inside Org documents. 9436* Literal Examples:: Source code examples with special formatting. 9437* Images:: Display an image. 9438* Captions:: Describe tables, images... 9439* Horizontal Rules:: Make a line. 9440* Creating Footnotes:: Edit and read footnotes. 9441 9442 9443File: org.info, Node: Paragraphs, Next: Emphasis and Monospace, Up: Markup for Rich Contents 9444 944512.1 Paragraphs 9446=============== 9447 9448Paragraphs are separated by at least one empty line. If you need to 9449enforce a line break within a paragraph, use ‘\\’ at the end of a line. 9450 9451 To preserve the line breaks, indentation and blank lines in a region, 9452but otherwise use normal formatting, you can use this construct, which 9453can also be used to format poetry. 9454 9455 #+BEGIN_VERSE 9456 Great clouds overhead 9457 Tiny black birds rise and fall 9458 Snow covers Emacs 9459 9460 ---AlexSchroeder 9461 #+END_VERSE 9462 9463 When quoting a passage from another document, it is customary to 9464format this as a paragraph that is indented on both the left and the 9465right margin. You can include quotations in Org documents like this: 9466 9467 #+BEGIN_QUOTE 9468 Everything should be made as simple as possible, 9469 but not any simpler ---Albert Einstein 9470 #+END_QUOTE 9471 9472 If you would like to center some text, do it like this: 9473 9474 #+BEGIN_CENTER 9475 Everything should be made as simple as possible, \\ 9476 but not any simpler 9477 #+END_CENTER 9478 9479 9480File: org.info, Node: Emphasis and Monospace, Next: Subscripts and Superscripts, Prev: Paragraphs, Up: Markup for Rich Contents 9481 948212.2 Emphasis and Monospace 9483=========================== 9484 9485You can make words ‘*bold*’, ‘/italic/’, ‘_underlined_’, ‘=verbatim=’ 9486and ‘~code~’, and, if you must, ‘+strike-through+’. Text in the code 9487and verbatim string is not processed for Org specific syntax; it is 9488exported verbatim. 9489 9490 To turn off fontification for marked up text, you can set 9491‘org-fontify-emphasized-text’ to ‘nil’. To narrow down the list of 9492available markup syntax, you can customize ‘org-emphasis-alist’. 9493 9494 9495File: org.info, Node: Subscripts and Superscripts, Next: Special Symbols, Prev: Emphasis and Monospace, Up: Markup for Rich Contents 9496 949712.3 Subscripts and Superscripts 9498================================ 9499 9500‘^’ and ‘_’ are used to indicate super- and subscripts. To increase the 9501readability of ASCII text, it is not necessary, but OK, to surround 9502multi-character sub- and superscripts with curly braces. For example 9503 9504 The radius of the sun is R_sun = 6.96 x 10^8 m. On the other hand, 9505 the radius of Alpha Centauri is R_{Alpha Centauri} = 1.28 x R_{sun}. 9506 9507 If you write a text where the underscore is often used in a different 9508context, Org’s convention to always interpret these as subscripts can 9509get in your way. Configure the variable ‘org-use-sub-superscripts’ to 9510change this convention. For example, when setting this variable to 9511‘{}’, ‘a_b’ is not interpreted as a subscript, but ‘a_{b}’ is. 9512 9513 You can set ‘org-use-sub-superscripts’ in a file using the export 9514option ‘^:’ (see *note Export Settings::). For example, ‘#+OPTIONS: 9515^:{}’ sets ‘org-use-sub-superscripts’ to ‘{}’ and limits super- and 9516subscripts to the curly bracket notation. 9517 9518 You can also toggle the visual display of super- and subscripts: 9519 9520‘C-c C-x \’ (‘org-toggle-pretty-entities’) 9521 This command formats sub- and superscripts in a WYSIWYM way. 9522 9523 Set both ‘org-pretty-entities’ and 9524‘org-pretty-entities-include-sub-superscripts’ to ‘t’ to start with 9525super- and subscripts _visually_ interpreted as specified by the option 9526‘org-use-sub-superscripts’. 9527 9528 9529File: org.info, Node: Special Symbols, Next: Embedded LaTeX, Prev: Subscripts and Superscripts, Up: Markup for Rich Contents 9530 953112.4 Special Symbols 9532==================== 9533 9534You can use LaTeX-like syntax to insert special symbols—named 9535entities—like ‘\alpha’ to indicate the Greek letter, or ‘\to’ to 9536indicate an arrow. Completion for these symbols is available, just type 9537‘\’ and maybe a few letters, and press ‘M-<TAB>’ to see possible 9538completions. If you need such a symbol inside a word, terminate it with 9539a pair of curly brackets. For example 9540 9541 Pro tip: Given a circle \Gamma of diameter d, the length of its 9542 circumference is \pi{}d. 9543 9544 A large number of entities is provided, with names taken from both 9545HTML and LaTeX; you can comfortably browse the complete list from a 9546dedicated buffer using the command ‘org-entities-help’. It is also 9547possible to provide your own special symbols in the variable 9548‘org-entities-user’. 9549 9550 During export, these symbols are transformed into the native format 9551of the exporter back-end. Strings like ‘\alpha’ are exported as 9552‘α’ in the HTML output, and as ‘\(\alpha\)’ in the LaTeX output. 9553Similarly, ‘\nbsp’ becomes ‘ ’ in HTML and ‘~’ in LaTeX. 9554 9555 If you would like to see entities displayed as UTF-8 characters, use 9556the following command(1): 9557 9558‘C-c C-x \’ (‘org-toggle-pretty-entities’) 9559 9560 Toggle display of entities as UTF-8 characters. This does not 9561 change the buffer content which remains plain ASCII, but it 9562 overlays the UTF-8 character for display purposes only. 9563 9564 In addition to regular entities defined above, Org exports in a 9565special way(2) the following commonly used character combinations: ‘\-’ 9566is treated as a shy hyphen, ‘--’ and ‘---’ are converted into dashes, 9567and ‘...’ becomes a compact set of dots. 9568 9569 ---------- Footnotes ---------- 9570 9571 (1) You can turn this on by default by setting the variable 9572‘org-pretty-entities’, or on a per-file base with the ‘STARTUP’ option 9573‘entitiespretty’. 9574 9575 (2) This behavior can be disabled with ‘-’ export setting (see *note 9576Export Settings::). 9577 9578 9579File: org.info, Node: Embedded LaTeX, Next: Literal Examples, Prev: Special Symbols, Up: Markup for Rich Contents 9580 958112.5 Embedded LaTeX 9582=================== 9583 9584Plain ASCII is normally sufficient for almost all note taking. 9585Exceptions include scientific notes, which often require mathematical 9586symbols and the occasional formula. LaTeX(1) is widely used to typeset 9587scientific documents. Org mode supports embedding LaTeX code into its 9588files, because many academics are used to writing and reading LaTeX 9589source code, and because it can be readily processed to produce pretty 9590output for a number of export back-ends. 9591 9592* Menu: 9593 9594* LaTeX fragments:: Complex formulas made easy. 9595* Previewing LaTeX fragments:: What will this snippet look like? 9596* CDLaTeX mode:: Speed up entering of formulas. 9597 9598 ---------- Footnotes ---------- 9599 9600 (1) LaTeX is a macro system based on Donald E. Knuth’s TeX system. 9601Many of the features described here as “LaTeX” are really from TeX, but 9602for simplicity I am blurring this distinction. 9603 9604 9605File: org.info, Node: LaTeX fragments, Next: Previewing LaTeX fragments, Up: Embedded LaTeX 9606 960712.5.1 LaTeX fragments 9608---------------------- 9609 9610Org mode can contain LaTeX math fragments, and it supports ways to 9611process these for several export back-ends. When exporting to LaTeX, 9612the code is left as it is. When exporting to HTML, Org can use either 9613MathJax (http://www.mathjax.org) (see *note Math formatting in HTML 9614export::) or transcode the math into images (see *note Previewing LaTeX 9615fragments::). 9616 9617 LaTeX fragments do not need any special marking at all. The 9618following snippets are identified as LaTeX source code: 9619 9620 • Environments of any kind(1). The only requirement is that the 9621 ‘\begin’ statement appears on a new line, preceded by only 9622 whitespace. 9623 9624 • Text within the usual LaTeX math delimiters. To avoid conflicts 9625 with currency specifications, single ‘$’ characters are only 9626 recognized as math delimiters if the enclosed text contains at most 9627 two line breaks, is directly attached to the ‘$’ characters with no 9628 whitespace in between, and if the closing ‘$’ is followed by 9629 whitespace, punctuation or a dash. For the other delimiters, there 9630 is no such restriction, so when in doubt, use ‘\(...\)’ as inline 9631 math delimiters. 9632 9633For example: 9634 9635 \begin{equation} % arbitrary environments, 9636 x=\sqrt{b} % even tables, figures 9637 \end{equation} % etc 9638 9639 If $a^2=b$ and \( b=2 \), then the solution must be 9640 either $$ a=+\sqrt{2} $$ or \[ a=-\sqrt{2} \]. 9641 9642 LaTeX processing can be configured with the variable 9643‘org-export-with-latex’. The default setting is ‘t’ which means MathJax 9644for HTML, and no processing for ASCII and LaTeX back-ends. You can also 9645set this variable on a per-file basis using one of these lines: 9646 9647‘#+OPTIONS: tex:t’ Do the right thing automatically (MathJax) 9648‘#+OPTIONS: tex:nil’ Do not process LaTeX fragments at all 9649‘#+OPTIONS: tex:verbatim’ Verbatim export, for jsMath or so 9650 9651 ---------- Footnotes ---------- 9652 9653 (1) When MathJax is used, only the environments recognized by MathJax 9654are processed. When dvipng, dvisvgm, or ImageMagick suite is used to 9655create images, any LaTeX environment is handled. 9656 9657 9658File: org.info, Node: Previewing LaTeX fragments, Next: CDLaTeX mode, Prev: LaTeX fragments, Up: Embedded LaTeX 9659 966012.5.2 Previewing LaTeX fragments 9661--------------------------------- 9662 9663If you have a working LaTeX installation and ‘dvipng’, ‘dvisvgm’ or 9664‘convert’ installed(1), LaTeX fragments can be processed to produce 9665images of the typeset expressions to be used for inclusion while 9666exporting to HTML (see *note LaTeX fragments::), or for inline 9667previewing within Org mode. 9668 9669 You can customize the variables ‘org-format-latex-options’ and 9670‘org-format-latex-header’ to influence some aspects of the preview. In 9671particular, the ‘:scale’ (and for HTML export, ‘:html-scale’) property 9672of the former can be used to adjust the size of the preview images. 9673 9674‘C-c C-x C-l’ (‘org-latex-preview’) 9675 9676 Produce a preview image of the LaTeX fragment at point and overlay 9677 it over the source code. If there is no fragment at point, process 9678 all fragments in the current entry—between two headlines. 9679 9680 When called with a single prefix argument, clear all images in the 9681 current entry. Two prefix arguments produce a preview image for 9682 all fragments in the buffer, while three of them clear all the 9683 images in that buffer. 9684 9685 You can turn on the previewing of all LaTeX fragments in a file with 9686 9687 #+STARTUP: latexpreview 9688 9689 To disable it, simply use 9690 9691 #+STARTUP: nolatexpreview 9692 9693 ---------- Footnotes ---------- 9694 9695 (1) These are respectively available at 9696<http://sourceforge.net/projects/dvipng/>, <http://dvisvgm.bplaced.net/> 9697and from the ImageMagick suite. Choose the converter by setting the 9698variable ‘org-preview-latex-default-process’ accordingly. 9699 9700 9701File: org.info, Node: CDLaTeX mode, Prev: Previewing LaTeX fragments, Up: Embedded LaTeX 9702 970312.5.3 Using CDLaTeX to enter math 9704---------------------------------- 9705 9706CDLaTeX mode is a minor mode that is normally used in combination with a 9707major LaTeX mode like AUCTeX in order to speed-up insertion of 9708environments and math templates. Inside Org mode, you can make use of 9709some of the features of CDLaTeX mode. You need to install ‘cdlatex.el’ 9710and ‘texmathp.el’ (the latter comes also with AUCTeX) using MELPA 9711(https://melpa.org/) with the Emacs packaging system 9712(https://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Installation.html) 9713or alternatively from 9714<https://staff.fnwi.uva.nl/c.dominik/Tools/cdlatex/>. Do not use 9715CDLaTeX mode itself under Org mode, but use the special version Org 9716CDLaTeX minor mode that comes as part of Org. Turn it on for the 9717current buffer with ‘M-x org-cdlatex-mode’, or for all Org files with 9718 9719 (add-hook 'org-mode-hook 'turn-on-org-cdlatex) 9720 9721 When this mode is enabled, the following features are present (for 9722more details see the documentation of CDLaTeX mode): 9723 9724‘C-c {’ 9725 9726 Insert an environment template. 9727 9728‘<TAB>’ 9729 9730 The ‘<TAB>’ key expands the template if point is inside a LaTeX 9731 fragment(1). For example, ‘<TAB>’ expands ‘fr’ to ‘\frac{}{}’ and 9732 position point correctly inside the first brace. Another ‘<TAB>’ 9733 gets you into the second brace. 9734 9735 Even outside fragments, ‘<TAB>’ expands environment abbreviations 9736 at the beginning of a line. For example, if you write ‘equ’ at the 9737 beginning of a line and press ‘<TAB>’, this abbreviation is 9738 expanded to an ‘equation’ environment. To get a list of all 9739 abbreviations, type ‘M-x cdlatex-command-help’. 9740 9741‘^’ 9742‘_’ 9743 9744 Pressing ‘_’ and ‘^’ inside a LaTeX fragment inserts these 9745 characters together with a pair of braces. If you use ‘<TAB>’ to 9746 move out of the braces, and if the braces surround only a single 9747 character or macro, they are removed again (depending on the 9748 variable ‘cdlatex-simplify-sub-super-scripts’). 9749 9750‘`’ 9751 9752 Pressing the backquote followed by a character inserts math macros, 9753 also outside LaTeX fragments. If you wait more than 1.5 seconds 9754 after the backquote, a help window pops up. 9755 9756‘'’ 9757 9758 Pressing the single-quote followed by another character modifies 9759 the symbol before point with an accent or a font. If you wait more 9760 than 1.5 seconds after the single-quote, a help window pops up. 9761 Character modification works only inside LaTeX fragments; outside 9762 the quote is normal. 9763 9764 ---------- Footnotes ---------- 9765 9766 (1) Org mode has a method to test if point is inside such a fragment, 9767see the documentation of the function ‘org-inside-LaTeX-fragment-p’. 9768 9769 9770File: org.info, Node: Literal Examples, Next: Images, Prev: Embedded LaTeX, Up: Markup for Rich Contents 9771 977212.6 Literal Examples 9773===================== 9774 9775You can include literal examples that should not be subjected to markup. 9776Such examples are typeset in monospace, so this is well suited for 9777source code and similar examples. 9778 9779 #+BEGIN_EXAMPLE 9780 Some example from a text file. 9781 #+END_EXAMPLE 9782 9783 There is one limitation, however. You must insert a comma right 9784before lines starting with either ‘*’, ‘,*’, ‘#+’ or ‘,#+’, as those may 9785be interpreted as outlines nodes or some other special syntax. Org 9786transparently strips these additional commas whenever it accesses the 9787contents of the block. 9788 9789 #+BEGIN_EXAMPLE 9790 ,* I am no real headline 9791 #+END_EXAMPLE 9792 9793 For simplicity when using small examples, you can also start the 9794example lines with a colon followed by a space. There may also be 9795additional whitespace before the colon: 9796 9797 Here is an example 9798 : Some example from a text file. 9799 9800 If the example is source code from a programming language, or any 9801other text that can be marked up by Font Lock in Emacs, you can ask for 9802the example to look like the fontified Emacs buffer(1). This is done 9803with the code block, where you also need to specify the name of the 9804major mode that should be used to fontify the example(2), see *note 9805Structure Templates:: for shortcuts to easily insert code blocks. 9806 9807 #+BEGIN_SRC emacs-lisp 9808 (defun org-xor (a b) 9809 "Exclusive or." 9810 (if a (not b) b)) 9811 #+END_SRC 9812 9813 Both in ‘example’ and in ‘src’ snippets, you can add a ‘-n’ switch to 9814the end of the ‘#+BEGIN’ line, to get the lines of the example numbered. 9815The ‘-n’ takes an optional numeric argument specifying the starting line 9816number of the block. If you use a ‘+n’ switch, the numbering from the 9817previous numbered snippet is continued in the current one. The ‘+n’ 9818switch can also take a numeric argument. This adds the value of the 9819argument to the last line of the previous block to determine the 9820starting line number. 9821 9822 #+BEGIN_SRC emacs-lisp -n 20 9823 ;; This exports with line number 20. 9824 (message "This is line 21") 9825 #+END_SRC 9826 9827 #+BEGIN_SRC emacs-lisp +n 10 9828 ;; This is listed as line 31. 9829 (message "This is line 32") 9830 #+END_SRC 9831 9832 In literal examples, Org interprets strings like ‘(ref:name)’ as 9833labels, and use them as targets for special hyperlinks like 9834‘[[(name)]]’—i.e., the reference name enclosed in single parenthesis. 9835In HTML, hovering the mouse over such a link remote-highlights the 9836corresponding code line, which is kind of cool. 9837 9838 You can also add a ‘-r’ switch which _removes_ the labels from the 9839source code(3). With the ‘-n’ switch, links to these references are 9840labeled by the line numbers from the code listing. Otherwise links use 9841the labels with no parentheses. Here is an example: 9842 9843 #+BEGIN_SRC emacs-lisp -n -r 9844 (save-excursion (ref:sc) 9845 (goto-char (point-min)) (ref:jump) 9846 #+END_SRC 9847 In line [[(sc)]] we remember the current position. [[(jump)][Line (jump)]] 9848 jumps to point-min. 9849 9850 Source code and examples may be _indented_ in order to align nicely 9851with the surrounding text, and in particular with plain list structure 9852(see *note Plain Lists::). By default, Org only retains the relative 9853indentation between lines, e.g., when exporting the contents of the 9854block. However, you can use the ‘-i’ switch to also preserve the global 9855indentation, if it does matter. See *note Editing Source Code::. 9856 9857 If the syntax for the label format conflicts with the language 9858syntax, use a ‘-l’ switch to change the format, for example 9859 9860 #+BEGIN_SRC pascal -n -r -l "((%s))" 9861 9862See also the variable ‘org-coderef-label-format’. 9863 9864 HTML export also allows examples to be published as text areas (see 9865*note Text areas in HTML export::). 9866 9867 Because the ‘#+BEGIN’ ... ‘#+END’ patterns need to be added so often, 9868a shortcut is provided (see *note Structure Templates::). 9869 9870‘C-c '’ (‘org-edit-special’) 9871 Edit the source code example at point in its native mode. This 9872 works by switching to a temporary buffer with the source code. You 9873 need to exit by pressing ‘C-c '’ again. The edited version then 9874 replaces the old version in the Org buffer. Fixed-width 9875 regions—where each line starts with a colon followed by a space—are 9876 edited using Artist mode(4) to allow creating ASCII drawings 9877 easily. Using this command in an empty line creates a new 9878 fixed-width region. 9879 9880 Calling ‘org-store-link’ (see *note Handling Links::) while editing a 9881source code example in a temporary buffer created with ‘C-c '’ prompts 9882for a label. Make sure that it is unique in the current buffer, and 9883insert it with the proper formatting like ‘(ref:label)’ at the end of 9884the current line. Then the label is stored as a link ‘(label)’, for 9885retrieval with ‘C-c C-l’. 9886 9887 ---------- Footnotes ---------- 9888 9889 (1) This works automatically for the HTML backend (it requires 9890version 1.34 of the ‘htmlize.el’ package, which you need to install). 9891Fontified code chunks in LaTeX can be achieved using either the listings 9892(https://www.ctan.org/pkg/listings) package or the minted 9893(https://www.ctan.org/pkg/minted) package. Refer to 9894‘org-export-latex-listings’ for details. 9895 9896 (2) Source code in code blocks may also be evaluated either 9897interactively or on export. See *note Working with Source Code:: for 9898more information on evaluating code blocks. 9899 9900 (3) Adding ‘-k’ to ‘-n -r’ _keeps_ the labels in the source code 9901while using line numbers for the links, which might be useful to explain 9902those in an Org mode example code. 9903 9904 (4) You may select a different mode with the variable 9905‘org-edit-fixed-width-region-mode’. 9906 9907 9908File: org.info, Node: Images, Next: Captions, Prev: Literal Examples, Up: Markup for Rich Contents 9909 991012.7 Images 9911=========== 9912 9913An image is a link to an image file(1) that does not have a description 9914part, for example 9915 9916 ./img/cat.jpg 9917 9918 If you wish to define a caption for the image (see *note Captions::) 9919and maybe a label for internal cross references (see *note Internal 9920Links::), make sure that the link is on a line by itself and precede it 9921with ‘CAPTION’ and ‘NAME’ keywords as follows: 9922 9923 #+CAPTION: This is the caption for the next figure link (or table) 9924 #+NAME: fig:SED-HR4049 9925 [[./img/a.jpg]] 9926 9927 Such images can be displayed within the buffer with the following 9928command: 9929 9930‘C-c C-x C-v’ (‘org-toggle-inline-images’) 9931 Toggle the inline display of linked images. When called with a 9932 prefix argument, also display images that do have a link 9933 description. You can ask for inline images to be displayed at 9934 startup by configuring the variable 9935 ‘org-startup-with-inline-images’(2). 9936 9937 ---------- Footnotes ---------- 9938 9939 (1) What Emacs considers to be an image depends on 9940‘image-file-name-extensions’ and ‘image-file-name-regexps’. 9941 9942 (2) The variable ‘org-startup-with-inline-images’ can be set within a 9943buffer with the ‘STARTUP’ options ‘inlineimages’ and ‘noinlineimages’. 9944 9945 9946File: org.info, Node: Captions, Next: Horizontal Rules, Prev: Images, Up: Markup for Rich Contents 9947 994812.8 Captions 9949============= 9950 9951You can assign a caption to a specific part of a document by inserting a 9952‘CAPTION’ keyword immediately before it: 9953 9954 #+CAPTION: This is the caption for the next table (or link) 9955 | ... | ... | 9956 |-----+-----| 9957 9958 Optionally, the caption can take the form: 9959 9960 #+CAPTION[Short caption]: Longer caption. 9961 9962 Even though images and tables are prominent examples of captioned 9963structures, the same caption mechanism can apply to many others—e.g., 9964LaTeX equations, source code blocks. Depending on the export back-end, 9965those may or may not be handled. 9966 9967 9968File: org.info, Node: Horizontal Rules, Next: Creating Footnotes, Prev: Captions, Up: Markup for Rich Contents 9969 997012.9 Horizontal Rules 9971===================== 9972 9973A line consisting of only dashes, and at least 5 of them, is exported as 9974a horizontal line. 9975 9976 9977File: org.info, Node: Creating Footnotes, Prev: Horizontal Rules, Up: Markup for Rich Contents 9978 997912.10 Creating Footnotes 9980======================== 9981 9982A footnote is started by a footnote marker in square brackets in column 99830, no indentation allowed. It ends at the next footnote definition, 9984headline, or after two consecutive empty lines. The footnote reference 9985is simply the marker in square brackets, inside text. Markers always 9986start with ‘fn:’. For example: 9987 9988 The Org homepage[fn:1] now looks a lot better than it used to. 9989 ... 9990 [fn:1] The link is: https://orgmode.org 9991 9992 Org mode extends the number-based syntax to _named_ footnotes and 9993optional inline definition. Here are the valid references: 9994 9995‘[fn:NAME]’ 9996 A named footnote reference, where NAME is a unique label word, or, 9997 for simplicity of automatic creation, a number. 9998 9999‘[fn:: This is the inline definition of this footnote]’ 10000 An anonymous footnote where the definition is given directly at the 10001 reference point. 10002 10003‘[fn:NAME: a definition]’ 10004 An inline definition of a footnote, which also specifies a name for 10005 the note. Since Org allows multiple references to the same note, 10006 you can then use ‘[fn:NAME]’ to create additional references. 10007 10008 Footnote labels can be created automatically, or you can create names 10009yourself. This is handled by the variable ‘org-footnote-auto-label’ and 10010its corresponding ‘STARTUP’ keywords. See the docstring of that 10011variable for details. 10012 10013 The following command handles footnotes: 10014 10015‘C-c C-x f’ 10016 The footnote action command. 10017 10018 When point is on a footnote reference, jump to the definition. 10019 When it is at a definition, jump to the—first—reference. 10020 10021 Otherwise, create a new footnote. Depending on the variable 10022 ‘org-footnote-define-inline’(1), the definition is placed right 10023 into the text as part of the reference, or separately into the 10024 location determined by the variable ‘org-footnote-section’. 10025 10026 When this command is called with a prefix argument, a menu of 10027 additional options is offered: 10028 10029 ‘s’ Sort the footnote definitions by reference sequence. 10030 ‘r’ Renumber the simple ‘fn:N’ footnotes. 10031 ‘S’ Short for first ‘r’, then ‘s’ action. 10032 ‘n’ Rename all footnotes into a ‘fn:1’ ... ‘fn:n’ sequence. 10033 ‘d’ Delete the footnote at point, including definition and 10034 references. 10035 10036 Depending on the variable ‘org-footnote-auto-adjust’(2), 10037 renumbering and sorting footnotes can be automatic after each 10038 insertion or deletion. 10039 10040‘C-c C-c’ 10041 If point is on a footnote reference, jump to the definition. If it 10042 is at the definition, jump back to the reference. When called at a 10043 footnote location with a prefix argument, offer the same menu as 10044 ‘C-c C-x f’. 10045 10046‘C-c C-o’ or ‘mouse-1/2’ 10047 Footnote labels are also links to the corresponding definition or 10048 reference, and you can use the usual commands to follow these 10049 links. 10050 10051 ---------- Footnotes ---------- 10052 10053 (1) The corresponding in-buffer setting is: ‘#+STARTUP: fninline’ or 10054‘#+STARTUP: nofninline’. 10055 10056 (2) The corresponding in-buffer options are ‘#+STARTUP: fnadjust’ and 10057‘#+STARTUP: nofnadjust’. 10058 10059 10060File: org.info, Node: Exporting, Next: Publishing, Prev: Markup for Rich Contents, Up: Top 10061 1006213 Exporting 10063************ 10064 10065At some point you might want to print your notes, publish them on the 10066web, or share them with people not using Org. Org can convert and 10067export documents to a variety of other formats while retaining as much 10068structure (see *note Document Structure::) and markup (see *note Markup 10069for Rich Contents::) as possible. 10070 10071 The libraries responsible for translating Org files to other formats 10072are called _back-ends_. Org ships with support for the following 10073back-ends: 10074 10075 • _ascii_ (ASCII format) 10076 • _beamer_ (LaTeX Beamer format) 10077 • _html_ (HTML format) 10078 • _icalendar_ (iCalendar format) 10079 • _latex_ (LaTeX format) 10080 • _md_ (Markdown format) 10081 • _odt_ (OpenDocument Text format) 10082 • _org_ (Org format) 10083 • _texinfo_ (Texinfo format) 10084 • _man_ (Man page format) 10085 10086 Users can install libraries for additional formats from the Emacs 10087packaging system. For easy discovery, these packages have a common 10088naming scheme: ‘ox-NAME’, where NAME is a format. For example, 10089‘ox-koma-letter’ for _koma-letter_ back-end. More libraries can be 10090found in the ‘contrib/’ directory (see *note Installation::). 10091 10092 Org only loads back-ends for the following formats by default: ASCII, 10093HTML, iCalendar, LaTeX, and ODT. Additional back-ends can be loaded in 10094either of two ways: by configuring the ‘org-export-backends’ variable, 10095or by requiring libraries in the Emacs init file. For example, to load 10096the Markdown back-end, add this to your Emacs config: 10097 10098 (require 'ox-md) 10099 10100* Menu: 10101 10102* The Export Dispatcher:: The main interface. 10103* Export Settings:: Common export settings. 10104* Table of Contents:: The if and where of the table of contents. 10105* Include Files:: Include additional files into a document. 10106* Macro Replacement:: Use macros to create templates. 10107* Comment Lines:: What will not be exported. 10108* ASCII/Latin-1/UTF-8 export:: Exporting to flat files with encoding. 10109* Beamer Export:: Producing presentations and slides. 10110* HTML Export:: Exporting to HTML. 10111* LaTeX Export:: Exporting to LaTeX and processing to PDF. 10112* Markdown Export:: Exporting to Markdown. 10113* OpenDocument Text Export:: Exporting to OpenDocument Text. 10114* Org Export:: Exporting to Org. 10115* Texinfo Export:: Exporting to Texinfo. 10116* iCalendar Export:: Exporting to iCalendar. 10117* Other Built-in Back-ends:: Exporting to a man page. 10118* Advanced Export Configuration:: Fine-tuning the export output. 10119* Export in Foreign Buffers:: Author tables and lists in Org syntax. 10120 10121 10122File: org.info, Node: The Export Dispatcher, Next: Export Settings, Up: Exporting 10123 1012413.1 The Export Dispatcher 10125========================== 10126 10127The export dispatcher is the main interface for Org’s exports. A 10128hierarchical menu presents the currently configured export formats. 10129Options are shown as easy toggle switches on the same screen. 10130 10131 Org also has a minimal prompt interface for the export dispatcher. 10132When the variable ‘org-export-dispatch-use-expert-ui’ is set to a 10133non-‘nil’ value, Org prompts in the minibuffer. To switch back to the 10134hierarchical menu, press ‘?’. 10135 10136‘C-c C-e’ (‘org-export’) 10137 10138 Invokes the export dispatcher interface. The options show default 10139 settings. The ‘C-u’ prefix argument preserves options from the 10140 previous export, including any sub-tree selections. 10141 10142 Org exports the entire buffer by default. If the Org buffer has an 10143active region, then Org exports just that region. 10144 10145 Within the dispatcher interface, the following key combinations can 10146further alter what is exported, and how. 10147 10148‘C-a’ 10149 10150 Toggle asynchronous export. Asynchronous export uses an external 10151 Emacs process with a specially configured initialization file to 10152 complete the exporting process in the background, without tying-up 10153 Emacs. This is particularly useful when exporting long documents. 10154 10155 Output from an asynchronous export is saved on the _export stack_. 10156 To view this stack, call the export dispatcher with a double ‘C-u’ 10157 prefix argument. If already in the export dispatcher menu, ‘&’ 10158 displays the stack. 10159 10160 You can make asynchronous export the default by setting 10161 ‘org-export-in-background’. 10162 10163 You can set the initialization file used by the background process 10164 by setting ‘org-export-async-init-file’. 10165 10166‘C-b’ 10167 10168 Toggle body-only export. Useful for excluding headers and footers 10169 in the export. Affects only those back-end formats that have 10170 sections like ‘<head>...</head>’ in HTML. 10171 10172‘C-s’ 10173 10174 Toggle sub-tree export. When turned on, Org exports only the 10175 sub-tree starting from point position at the time the export 10176 dispatcher was invoked. Org uses the top heading of this sub-tree 10177 as the document’s title. If point is not on a heading, Org uses 10178 the nearest enclosing header. If point is in the document 10179 preamble, Org signals an error and aborts export. 10180 10181 To make sub-tree export the default, customize the variable 10182 ‘org-export-initial-scope’. 10183 10184‘C-v’ 10185 10186 Toggle visible-only export. This is useful for exporting only 10187 certain parts of an Org document by adjusting the visibility of 10188 particular headings. 10189 10190 10191File: org.info, Node: Export Settings, Next: Table of Contents, Prev: The Export Dispatcher, Up: Exporting 10192 1019313.2 Export Settings 10194==================== 10195 10196Export options can be set: globally with variables; for an individual 10197file by making variables buffer-local with in-buffer settings (see *note 10198In-buffer Settings::); by setting individual keywords or specifying them 10199in compact form with the ‘OPTIONS’ keyword; or for a tree by setting 10200properties (see *note Properties and Columns::). Options set at a 10201specific level override options set at a more general level. 10202 10203 In-buffer settings may appear anywhere in the file, either directly 10204or indirectly through a file included using ‘#+SETUPFILE: filename or 10205URL’ syntax. Option keyword sets tailored to a particular back-end can 10206be inserted from the export dispatcher (see *note The Export 10207Dispatcher::) using the ‘Insert template’ command by pressing ‘#’. To 10208insert keywords individually, a good way to make sure the keyword is 10209correct is to type ‘#+’ and then to use ‘M-<TAB>’(1) for completion. 10210 10211 The export keywords available for every back-end, and their 10212equivalent global variables, include: 10213 10214‘AUTHOR’ 10215 The document author (‘user-full-name’). 10216 10217‘CREATOR’ 10218 Entity responsible for output generation 10219 (‘org-export-creator-string’). 10220 10221‘DATE’ 10222 A date or a time-stamp(2). 10223 10224‘EMAIL’ 10225 The email address (‘user-mail-address’). 10226 10227‘LANGUAGE’ 10228 Language to use for translating certain strings 10229 (‘org-export-default-language’). With ‘#+LANGUAGE: fr’, for 10230 example, Org translates ‘Table of contents’ to the French ‘Table 10231 des matières’(3). 10232 10233‘SELECT_TAGS’ 10234 The default value is ‘("export")’. When a tree is tagged with 10235 ‘export’ (‘org-export-select-tags’), Org selects that tree and its 10236 sub-trees for export. Org excludes trees with ‘noexport’ tags, see 10237 below. When selectively exporting files with ‘export’ tags set, 10238 Org does not export any text that appears before the first 10239 headline. 10240 10241‘EXCLUDE_TAGS’ 10242 The default value is ‘("noexport")’. When a tree is tagged with 10243 ‘noexport’ (‘org-export-exclude-tags’), Org excludes that tree and 10244 its sub-trees from export. Entries tagged with ‘noexport’ are 10245 unconditionally excluded from the export, even if they have an 10246 ‘export’ tag. Even if a sub-tree is not exported, Org executes any 10247 code blocks contained there. 10248 10249‘TITLE’ 10250 Org displays this title. For long titles, use multiple ‘#+TITLE’ 10251 lines. 10252 10253‘EXPORT_FILE_NAME’ 10254 The name of the output file to be generated. Otherwise, Org 10255 generates the file name based on the buffer name and the extension 10256 based on the back-end format. 10257 10258 The ‘OPTIONS’ keyword is a compact form. To configure multiple 10259options, use several ‘OPTIONS’ lines. ‘OPTIONS’ recognizes the 10260following arguments. 10261 10262‘'’ 10263 Toggle smart quotes (‘org-export-with-smart-quotes’). Depending on 10264 the language used, when activated, Org treats pairs of double 10265 quotes as primary quotes, pairs of single quotes as secondary 10266 quotes, and single quote marks as apostrophes. 10267 10268‘*’ 10269 Toggle emphasized text (‘org-export-with-emphasize’). 10270 10271‘-’ 10272 Toggle conversion of special strings 10273 (‘org-export-with-special-strings’). 10274 10275‘:’ 10276 Toggle fixed-width sections (‘org-export-with-fixed-width’). 10277 10278‘<’ 10279 Toggle inclusion of time/date active/inactive stamps 10280 (‘org-export-with-timestamps’). 10281 10282‘\n’ 10283 Toggles whether to preserve line breaks 10284 (‘org-export-preserve-breaks’). 10285 10286‘^’ 10287 Toggle TeX-like syntax for sub- and superscripts. If you write 10288 ‘^:{}’, ‘a_{b}’ is interpreted, but the simple ‘a_b’ is left as it 10289 is (‘org-export-with-sub-superscripts’). 10290 10291‘arch’ 10292 Configure how archived trees are exported. When set to ‘headline’, 10293 the export process skips the contents and processes only the 10294 headlines (‘org-export-with-archived-trees’). 10295 10296‘author’ 10297 Toggle inclusion of author name into exported file 10298 (‘org-export-with-author’). 10299 10300‘broken-links’ 10301 Toggles if Org should continue exporting upon finding a broken 10302 internal link. When set to ‘mark’, Org clearly marks the problem 10303 link in the output (‘org-export-with-broken-links’). 10304 10305‘c’ 10306 Toggle inclusion of ‘CLOCK’ keywords (‘org-export-with-clocks’). 10307 10308‘creator’ 10309 Toggle inclusion of creator information in the exported file 10310 (‘org-export-with-creator’). 10311 10312‘d’ 10313 Toggles inclusion of drawers, or list of drawers to include, or 10314 list of drawers to exclude (‘org-export-with-drawers’). 10315 10316‘date’ 10317 Toggle inclusion of a date into exported file 10318 (‘org-export-with-date’). 10319 10320‘e’ 10321 Toggle inclusion of entities (‘org-export-with-entities’). 10322 10323‘email’ 10324 Toggle inclusion of the author’s e-mail into exported file 10325 (‘org-export-with-email’). 10326 10327‘f’ 10328 Toggle the inclusion of footnotes (‘org-export-with-footnotes’). 10329 10330‘H’ 10331 Set the number of headline levels for export 10332 (‘org-export-headline-levels’). Below that level, headlines are 10333 treated differently. In most back-ends, they become list items. 10334 10335‘inline’ 10336 Toggle inclusion of inlinetasks (‘org-export-with-inlinetasks’). 10337 10338‘num’ 10339 Toggle section-numbers (‘org-export-with-section-numbers’). When 10340 set to number N, Org numbers only those headlines at level N or 10341 above. Set ‘UNNUMBERED’ property to non-‘nil’ to disable numbering 10342 of heading and subheadings entirely. Moreover, when the value is 10343 ‘notoc’ the headline, and all its children, do not appear in the 10344 table of contents either (see *note Table of Contents::). 10345 10346‘p’ 10347 Toggle export of planning information (‘org-export-with-planning’). 10348 “Planning information” comes from lines located right after the 10349 headline and contain any combination of these cookies: ‘SCHEDULED’, 10350 ‘DEADLINE’, or ‘CLOSED’. 10351 10352‘pri’ 10353 Toggle inclusion of priority cookies (‘org-export-with-priority’). 10354 10355‘prop’ 10356 Toggle inclusion of property drawers, or list the properties to 10357 include (‘org-export-with-properties’). 10358 10359‘stat’ 10360 Toggle inclusion of statistics cookies 10361 (‘org-export-with-statistics-cookies’). 10362 10363‘tags’ 10364 Toggle inclusion of tags, may also be ‘not-in-toc’ 10365 (‘org-export-with-tags’). 10366 10367‘tasks’ 10368 Toggle inclusion of tasks (TODO items); or ‘nil’ to remove all 10369 tasks; or ‘todo’ to remove done tasks; or list the keywords to keep 10370 (‘org-export-with-tasks’). 10371 10372‘tex’ 10373 ‘nil’ does not export; ‘t’ exports; ‘verbatim’ keeps everything in 10374 verbatim (‘org-export-with-latex’). 10375 10376‘timestamp’ 10377 Toggle inclusion of the creation time in the exported file 10378 (‘org-export-time-stamp-file’). 10379 10380‘title’ 10381 Toggle inclusion of title (‘org-export-with-title’). 10382 10383‘toc’ 10384 Toggle inclusion of the table of contents, or set the level limit 10385 (‘org-export-with-toc’). 10386 10387‘todo’ 10388 Toggle inclusion of TODO keywords into exported text 10389 (‘org-export-with-todo-keywords’). 10390 10391‘|’ 10392 Toggle inclusion of tables (‘org-export-with-tables’). 10393 10394 When exporting sub-trees, special node properties can override the 10395above keywords. These properties have an ‘EXPORT_’ prefix. For 10396example, ‘DATE’ becomes, ‘EXPORT_DATE’ when used for a specific 10397sub-tree. Except for ‘SETUPFILE’, all other keywords listed above have 10398an ‘EXPORT_’ equivalent. 10399 10400 If ‘org-export-allow-bind-keywords’ is non-‘nil’, Emacs variables can 10401become buffer-local during export by using the ‘BIND’ keyword. Its 10402syntax is ‘#+BIND: variable value’. This is particularly useful for 10403in-buffer settings that cannot be changed using keywords. 10404 10405 ---------- Footnotes ---------- 10406 10407 (1) Many desktops intercept ‘M-<TAB>’ to switch windows. Use ‘C-M-i’ 10408or ‘<ESC> <TAB>’ instead. 10409 10410 (2) The variable ‘org-export-date-timestamp-format’ defines how this 10411timestamp are exported. 10412 10413 (3) DEFINITION NOT FOUND. 10414 10415 10416File: org.info, Node: Table of Contents, Next: Include Files, Prev: Export Settings, Up: Exporting 10417 1041813.3 Table of Contents 10419====================== 10420 10421The table of contents includes all headlines in the document. Its depth 10422is therefore the same as the headline levels in the file. If you need 10423to use a different depth, or turn it off entirely, set the 10424‘org-export-with-toc’ variable accordingly. You can achieve the same on 10425a per file basis, using the following ‘toc’ item in ‘OPTIONS’ keyword: 10426 10427 #+OPTIONS: toc:2 (only include two levels in TOC) 10428 #+OPTIONS: toc:nil (no default TOC at all) 10429 10430 Org includes both numbered and unnumbered headlines in the table of 10431contents(1). If you need to exclude an unnumbered headline, along with 10432all its children, set the ‘UNNUMBERED’ property to ‘notoc’ value. 10433 10434 * Subtree not numbered, not in table of contents either 10435 :PROPERTIES: 10436 :UNNUMBERED: notoc 10437 :END: 10438 10439 Org normally inserts the table of contents directly before the first 10440headline of the file. To move the table of contents to a different 10441location, first turn off the default with ‘org-export-with-toc’ variable 10442or with ‘#+OPTIONS: toc:nil’. Then insert ‘#+TOC: headlines N’ at the 10443desired location(s). 10444 10445 #+OPTIONS: toc:nil 10446 ... 10447 #+TOC: headlines 2 10448 10449 To adjust the table of contents depth for a specific section of the 10450Org document, append an additional ‘local’ parameter. This parameter 10451becomes a relative depth for the current level. The following example 10452inserts a local table of contents, with direct children only. 10453 10454 * Section 10455 #+TOC: headlines 1 local 10456 10457 Note that for this feature to work properly in LaTeX export, the Org 10458file requires the inclusion of the titletoc package. Because of 10459compatibility issues, titletoc has to be loaded _before_ hyperref. 10460Customize the ‘org-latex-default-packages-alist’ variable. 10461 10462 The following example inserts a table of contents that links to the 10463children of the specified target. 10464 10465 * Target 10466 :PROPERTIES: 10467 :CUSTOM_ID: TargetSection 10468 :END: 10469 ** Heading A 10470 ** Heading B 10471 * Another section 10472 #+TOC: headlines 1 :target #TargetSection 10473 10474 The ‘:target’ attribute is supported in HTML, Markdown, ODT, and 10475ASCII export. 10476 10477 Use the ‘TOC’ keyword to generate list of tables—respectively, all 10478listings—with captions. 10479 10480 #+TOC: listings 10481 #+TOC: tables 10482 10483 Normally Org uses the headline for its entry in the table of 10484contents. But with ‘ALT_TITLE’ property, a different entry can be 10485specified for the table of contents. 10486 10487 ---------- Footnotes ---------- 10488 10489 (1) At the moment, some export back-ends do not obey this 10490specification. For example, LaTeX export excludes every unnumbered 10491headline from the table of contents. 10492 10493 10494File: org.info, Node: Include Files, Next: Macro Replacement, Prev: Table of Contents, Up: Exporting 10495 1049613.4 Include Files 10497================== 10498 10499During export, you can include the content of another file. For 10500example, to include your ‘.emacs’ file, you could use: 10501 10502 #+INCLUDE: "~/.emacs" src emacs-lisp 10503 10504The first parameter is the file name to include. The optional second 10505parameter specifies the block type: ‘example’, ‘export’ or ‘src’. The 10506optional third parameter specifies the source code language to use for 10507formatting the contents. This is relevant to both ‘export’ and ‘src’ 10508block types. 10509 10510 If an included file is specified as having a markup language, Org 10511neither checks for valid syntax nor changes the contents in any way. 10512For example and source blocks, Org code-escapes the contents before 10513inclusion. 10514 10515 If an included file is not specified as having any markup language, 10516Org assumes it be in Org format and proceeds as usual with a few 10517exceptions. Org makes the footnote labels (see *note Creating 10518Footnotes::) in the included file local to that file. The contents of 10519the included file belong to the same structure—headline, item—containing 10520the ‘INCLUDE’ keyword. In particular, headlines within the file become 10521children of the current section. That behavior can be changed by 10522providing an additional keyword parameter, ‘:minlevel’. It shifts the 10523headlines in the included file to become the lowest level. For example, 10524this syntax makes the included file a sibling of the current top-level 10525headline: 10526 10527 #+INCLUDE: "~/my-book/chapter2.org" :minlevel 1 10528 10529 Inclusion of only portions of files are specified using ranges 10530parameter with ‘:lines’ keyword. The line at the upper end of the range 10531will not be included. The start and/or the end of the range may be 10532omitted to use the obvious defaults. 10533 10534‘#+INCLUDE: "~/.emacs" :lines "5-10"’ Include lines 5 to 10, 10 excluded 10535‘#+INCLUDE: "~/.emacs" :lines "-10"’ Include lines 1 to 10, 10 excluded 10536‘#+INCLUDE: "~/.emacs" :lines "10-"’ Include lines from 10 to EOF 10537 10538 Inclusions may specify a file-link to extract an object matched by 10539‘org-link-search’(1) (see *note Search Options::). The ranges for 10540‘:lines’ keyword are relative to the requested element. Therefore, 10541 10542 #+INCLUDE: "./paper.org::*conclusion" :lines 1-20 10543 10544includes the first 20 lines of the headline named ‘conclusion’. 10545 10546 To extract only the contents of the matched object, set 10547‘:only-contents’ property to non-‘nil’. This omits any planning lines 10548or property drawers. For example, to include the body of the heading 10549with the custom ID ‘theory’, you can use 10550 10551 #+INCLUDE: "./paper.org::#theory" :only-contents t 10552 10553 The following command allows navigating to the included document: 10554 10555‘C-c '’ (‘org-edit~special’) 10556 10557 Visit the included file at point. 10558 10559 ---------- Footnotes ---------- 10560 10561 (1) Note that ‘org-link-search-must-match-exact-headline’ is locally 10562bound to non-‘nil’. Therefore, ‘org-link-search’ only matches headlines 10563and named elements. 10564 10565 10566File: org.info, Node: Macro Replacement, Next: Comment Lines, Prev: Include Files, Up: Exporting 10567 1056813.5 Macro Replacement 10569====================== 10570 10571Macros replace text snippets during export. Macros are defined globally 10572in ‘org-export-global-macros’, or document-wise with the following 10573syntax: 10574 10575 #+MACRO: name replacement text; $1, $2 are arguments 10576 10577which can be referenced using ‘{{{name(arg1, arg2)}}}’(1). For example 10578 10579 #+MACRO: poem Rose is $1, violet's $2. Life's ordered: Org assists you. 10580 {{{poem(red,blue)}}} 10581 10582becomes 10583 10584 Rose is red, violet's blue. Life's ordered: Org assists you. 10585 10586 As a special case, Org parses any replacement text starting with 10587‘(eval’ as an Emacs Lisp expression and evaluates it accordingly. 10588Within such templates, arguments become strings. Thus, the following 10589macro 10590 10591 #+MACRO: gnustamp (eval (concat "GNU/" (capitalize $1))) 10592 10593turns ‘{{{gnustamp(linux)}}}’ into ‘GNU/Linux’ during export. 10594 10595 Org recognizes macro references in following Org markup areas: 10596paragraphs, headlines, verse blocks, tables cells and lists. Org also 10597recognizes macro references in keywords, such as ‘CAPTION’, ‘TITLE’, 10598‘AUTHOR’, ‘DATE’, and for some back-end specific export options. 10599 10600 Org comes with following pre-defined macros: 10601 10602‘{{{keyword(NAME)}}}’ 10603‘{{{title}}}’ 10604‘{{{author}}}’ 10605‘{{{email}}}’ 10606 The ‘keyword’ macro collects all values from NAME keywords 10607 throughout the buffer, separated with white space. ‘title’, 10608 ‘author’ and ‘email’ macros are shortcuts for, respectively, 10609 ‘{{{keyword(TITLE)}}}’, ‘{{{keyword(AUTHOR)}}}’ and 10610 ‘{{{keyword(EMAIL)}}}’. 10611 10612‘{{{date}}}’ 10613‘{{{date(FORMAT)}}}’ 10614 This macro refers to the ‘DATE’ keyword. FORMAT is an optional 10615 argument to the ‘date’ macro that is used only if ‘DATE’ is a 10616 single timestamp. FORMAT should be a format string understood by 10617 ‘format-time-string’. 10618 10619‘{{{time(FORMAT)}}}’ 10620‘{{{modification-time(FORMAT, VC)}}}’ 10621 These macros refer to the document’s date and time of export and 10622 date and time of modification. FORMAT is a string understood by 10623 ‘format-time-string’. If the second argument to the 10624 ‘modification-time’ macro is non-‘nil’, Org uses ‘vc.el’ to 10625 retrieve the document’s modification time from the version control 10626 system. Otherwise Org reads the file attributes. 10627 10628‘{{{input-file}}}’ 10629 This macro refers to the filename of the exported file. 10630 10631‘{{{property(PROPERTY-NAME)}}}’ 10632‘{{{property(PROPERTY-NAME, SEARCH OPTION)}}}’ 10633 This macro returns the value of property PROPERTY-NAME in the 10634 current entry. If SEARCH-OPTION (see *note Search Options::) 10635 refers to a remote entry, use it instead. 10636 10637‘{{{n}}}’ 10638‘{{{n(NAME)}}}’ 10639‘{{{n(NAME, ACTION)}}}’ 10640 This macro implements custom counters by returning the number of 10641 times the macro has been expanded so far while exporting the 10642 buffer. You can create more than one counter using different NAME 10643 values. If ACTION is ‘-’, previous value of the counter is held, 10644 i.e., the specified counter is not incremented. If the value is a 10645 number, the specified counter is set to that value. If it is any 10646 other non-empty string, the specified counter is reset to 1. You 10647 may leave NAME empty to reset the default counter. 10648 10649 Moreover, inline source blocks (see *note Structure of Code Blocks::) 10650use the special ‘results’ macro to mark their output. As such, you are 10651advised against re-defining it, unless you know what you are doing. 10652 10653 The surrounding brackets can be made invisible by setting 10654‘org-hide-macro-markers’ to a non-‘nil’ value. 10655 10656 Org expands macros at the very beginning of the export process. 10657 10658 ---------- Footnotes ---------- 10659 10660 (1) Since commas separate the arguments, commas within arguments have 10661to be escaped with the backslash character. So only those backslash 10662characters before a comma need escaping with another backslash 10663character. 10664 10665 10666File: org.info, Node: Comment Lines, Next: ASCII/Latin-1/UTF-8 export, Prev: Macro Replacement, Up: Exporting 10667 1066813.6 Comment Lines 10669================== 10670 10671Lines starting with zero or more whitespace characters followed by one 10672‘#’ and a whitespace are treated as comments and, as such, are not 10673exported. 10674 10675 Likewise, regions surrounded by ‘#+BEGIN_COMMENT’ ... ‘#+END_COMMENT’ 10676are not exported. 10677 10678 Finally, a ‘COMMENT’ keyword at the beginning of an entry, but after 10679any other keyword or priority cookie, comments out the entire subtree. 10680In this case, the subtree is not exported and no code block within it is 10681executed either(1). The command below helps changing the comment status 10682of a headline. 10683 10684‘C-c ;’ (‘org-toggle-comment’) 10685 10686 Toggle the ‘COMMENT’ keyword at the beginning of an entry. 10687 10688 ---------- Footnotes ---------- 10689 10690 (1) For a less drastic behavior, consider using a select tag (see 10691*note Export Settings::) instead. 10692 10693 10694File: org.info, Node: ASCII/Latin-1/UTF-8 export, Next: Beamer Export, Prev: Comment Lines, Up: Exporting 10695 1069613.7 ASCII/Latin-1/UTF-8 export 10697=============================== 10698 10699ASCII export produces an output file containing only plain ASCII 10700characters. This is the simplest and most direct text output. It does 10701not contain any Org markup. Latin-1 and UTF-8 export use additional 10702characters and symbols available in these encoding standards. All three 10703of these export formats offer the most basic of text output for maximum 10704portability. 10705 10706 On export, Org fills and justifies text according to the text width 10707set in ‘org-ascii-text-width’. 10708 10709 Org exports links using a footnote-like style where the descriptive 10710part is in the text and the link is in a note before the next heading. 10711See the variable ‘org-ascii-links-to-notes’ for details. 10712 10713ASCII export commands 10714--------------------- 10715 10716‘C-c C-e t a’ (‘org-ascii-export-to-ascii’) 10717‘C-c C-e t l’ 10718‘C-c C-e t u’ 10719 10720 Export as an ASCII file with a ‘.txt’ extension. For ‘myfile.org’, 10721 Org exports to ‘myfile.txt’, overwriting without warning. For 10722 ‘myfile.txt’, Org exports to ‘myfile.txt.txt’ in order to prevent 10723 data loss. 10724 10725‘C-c C-e t A’ (‘org-ascii-export-to-ascii’) 10726‘C-c C-e t L’ 10727‘C-c C-e t U’ 10728 10729 Export to a temporary buffer. Does not create a file. 10730 10731ASCII specific export settings 10732------------------------------ 10733 10734The ASCII export back-end has one extra keyword for customizing ASCII 10735output. Setting this keyword works similar to the general options (see 10736*note Export Settings::). 10737 10738‘SUBTITLE’ 10739 The document subtitle. For long subtitles, use multiple 10740 ‘#+SUBTITLE’ lines in the Org file. Org prints them on one 10741 continuous line, wrapping into multiple lines if necessary. 10742 10743Header and sectioning structure 10744------------------------------- 10745 10746Org converts the first three outline levels into headlines for ASCII 10747export. The remaining levels are turned into lists. To change this 10748cut-off point where levels become lists, see *note Export Settings::. 10749 10750Quoting ASCII text 10751------------------ 10752 10753To insert text within the Org file by the ASCII back-end, use one the 10754following constructs, inline, keyword, or export block: 10755 10756 Inline text @@ascii:and additional text@@ within a paragraph. 10757 10758 #+ASCII: Some text 10759 10760 #+BEGIN_EXPORT ascii 10761 Org exports text in this block only when using ASCII back-end. 10762 #+END_EXPORT 10763 10764ASCII specific attributes 10765------------------------- 10766 10767ASCII back-end recognizes only one attribute, ‘:width’, which specifies 10768the width of a horizontal rule in number of characters. The keyword and 10769syntax for specifying widths is: 10770 10771 #+ATTR_ASCII: :width 10 10772 ----- 10773 10774ASCII special blocks 10775-------------------- 10776 10777Besides ‘#+BEGIN_CENTER’ blocks (see *note Paragraphs::), ASCII back-end 10778has these two left and right justification blocks: 10779 10780 #+BEGIN_JUSTIFYLEFT 10781 It's just a jump to the left... 10782 #+END_JUSTIFYLEFT 10783 10784 #+BEGIN_JUSTIFYRIGHT 10785 ...and then a step to the right. 10786 #+END_JUSTIFYRIGHT 10787 10788 10789File: org.info, Node: Beamer Export, Next: HTML Export, Prev: ASCII/Latin-1/UTF-8 export, Up: Exporting 10790 1079113.8 Beamer Export 10792================== 10793 10794Org uses Beamer export to convert an Org file tree structure into 10795high-quality interactive slides for presentations. Beamer is a LaTeX 10796document class for creating presentations in PDF, HTML, and other 10797popular display formats. 10798 10799* Menu: 10800 10801* Beamer export commands:: For creating Beamer documents. 10802* Beamer specific export settings:: For customizing Beamer export. 10803* Frames and Blocks in Beamer:: For composing Beamer slides. 10804* Beamer specific syntax:: For using in Org documents. 10805* Editing support:: Editing support. 10806* A Beamer example:: A complete presentation. 10807 10808 10809File: org.info, Node: Beamer export commands, Next: Beamer specific export settings, Up: Beamer Export 10810 1081113.8.1 Beamer export commands 10812----------------------------- 10813 10814‘C-c C-e l b’ (‘org-beamer-export-to-latex’) 10815 10816 Export as LaTeX file with a ‘.tex’ extension. For ‘myfile.org’, 10817 Org exports to ‘myfile.tex’, overwriting without warning. 10818 10819‘C-c C-e l B’ (‘org-beamer-export-as-latex’) 10820 10821 Export to a temporary buffer. Does not create a file. 10822 10823‘C-c C-e l P’ (‘org-beamer-export-to-pdf’) 10824 10825 Export as LaTeX file and then convert it to PDF format. 10826 10827‘C-c C-e l O’ 10828 10829 Export as LaTeX file, convert it to PDF format, and then open the 10830 PDF file. 10831 10832 10833File: org.info, Node: Beamer specific export settings, Next: Frames and Blocks in Beamer, Prev: Beamer export commands, Up: Beamer Export 10834 1083513.8.2 Beamer specific export settings 10836-------------------------------------- 10837 10838Beamer export back-end has several additional keywords for customizing 10839Beamer output. These keywords work similar to the general options 10840settings (see *note Export Settings::). 10841 10842‘BEAMER_THEME’ 10843 The Beamer layout theme (‘org-beamer-theme’). Use square brackets 10844 for options. For example: 10845 10846 #+BEAMER_THEME: Rochester [height=20pt] 10847 10848‘BEAMER_FONT_THEME’ 10849 The Beamer font theme. 10850 10851‘BEAMER_INNER_THEME’ 10852 The Beamer inner theme. 10853 10854‘BEAMER_OUTER_THEME’ 10855 The Beamer outer theme. 10856 10857‘BEAMER_HEADER’ 10858 Arbitrary lines inserted in the preamble, just before the 10859 ‘hyperref’ settings. 10860 10861‘DESCRIPTION’ 10862 The document description. For long descriptions, use multiple 10863 ‘DESCRIPTION’ keywords. By default, ‘hyperref’ inserts 10864 ‘DESCRIPTION’ as metadata. Use ‘org-latex-hyperref-template’ to 10865 configure document metadata. Use ‘org-latex-title-command’ to 10866 configure typesetting of description as part of front matter. 10867 10868‘KEYWORDS’ 10869 The keywords for defining the contents of the document. Use 10870 multiple ‘KEYWORDS’ lines if necessary. By default, ‘hyperref’ 10871 inserts ‘KEYWORDS’ as metadata. Use ‘org-latex-hyperref-template’ 10872 to configure document metadata. Use ‘org-latex-title-command’ to 10873 configure typesetting of keywords as part of front matter. 10874 10875‘SUBTITLE’ 10876 Document’s subtitle. For typesetting, use 10877 ‘org-beamer-subtitle-format’ string. Use 10878 ‘org-latex-hyperref-template’ to configure document metadata. Use 10879 ‘org-latex-title-command’ to configure typesetting of subtitle as 10880 part of front matter. 10881 10882 10883File: org.info, Node: Frames and Blocks in Beamer, Next: Beamer specific syntax, Prev: Beamer specific export settings, Up: Beamer Export 10884 1088513.8.3 Frames and Blocks in Beamer 10886---------------------------------- 10887 10888Org transforms heading levels into Beamer’s sectioning elements, frames 10889and blocks. Any Org tree with a not-too-deep-level nesting should in 10890principle be exportable as a Beamer presentation. 10891 10892 • Org headlines become Beamer frames when the heading level in Org is 10893 equal to ‘org-beamer-frame-level’ or ‘H’ value in a ‘OPTIONS’ line 10894 (see *note Export Settings::). 10895 10896 Org overrides headlines to frames conversion for the current tree 10897 of an Org file if it encounters the ‘BEAMER_ENV’ property set to 10898 ‘frame’ or ‘fullframe’. Org ignores whatever 10899 ‘org-beamer-frame-level’ happens to be for that headline level in 10900 the Org tree. In Beamer terminology, a full frame is a frame 10901 without its title. 10902 10903 • Org exports a Beamer frame’s objects as block environments. Org 10904 can enforce wrapping in special block types when ‘BEAMER_ENV’ 10905 property is set(1). For valid values see 10906 ‘org-beamer-environments-default’. To add more values, see 10907 ‘org-beamer-environments-extra’. 10908 10909 • If ‘BEAMER_ENV’ is set to ‘appendix’, Org exports the entry as an 10910 appendix. When set to ‘note’, Org exports the entry as a note 10911 within the frame or between frames, depending on the entry’s 10912 heading level. When set to ‘noteNH’, Org exports the entry as a 10913 note without its title. When set to ‘againframe’, Org exports the 10914 entry with ‘\againframe’ command, which makes setting the 10915 ‘BEAMER_REF’ property mandatory because ‘\againframe’ needs frame 10916 to resume. 10917 10918 When ‘ignoreheading’ is set, Org export ignores the entry’s 10919 headline but not its content. This is useful for inserting content 10920 between frames. It is also useful for properly closing a ‘column’ 10921 environment. @end itemize 10922 10923 When ‘BEAMER_ACT’ is set for a headline, Org export translates that 10924 headline as an overlay or action specification. When enclosed in 10925 square brackets, Org export makes the overlay specification a 10926 default. Use ‘BEAMER_OPT’ to set any options applicable to the 10927 current Beamer frame or block. The Beamer export back-end wraps 10928 with appropriate angular or square brackets. It also adds the 10929 ‘fragile’ option for any code that may require a verbatim block. 10930 10931 To create a column on the Beamer slide, use the ‘BEAMER_COL’ 10932 property for its headline in the Org file. Set the value of 10933 ‘BEAMER_COL’ to a decimal number representing the fraction of the 10934 total text width. Beamer export uses this value to set the 10935 column’s width and fills the column with the contents of the Org 10936 entry. If the Org entry has no specific environment defined, 10937 Beamer export ignores the heading. If the Org entry has a defined 10938 environment, Beamer export uses the heading as title. Behind the 10939 scenes, Beamer export automatically handles LaTeX column 10940 separations for contiguous headlines. To manually adjust them for 10941 any unique configurations needs, use the ‘BEAMER_ENV’ property. 10942 10943 ---------- Footnotes ---------- 10944 10945 (1) If ‘BEAMER_ENV’ is set, Org export adds ‘B_environment’ tag to 10946make it visible. The tag serves as a visual aid and has no semantic 10947relevance. 10948 10949 10950File: org.info, Node: Beamer specific syntax, Next: Editing support, Prev: Frames and Blocks in Beamer, Up: Beamer Export 10951 1095213.8.4 Beamer specific syntax 10953----------------------------- 10954 10955Since Org’s Beamer export back-end is an extension of the LaTeX 10956back-end, it recognizes other LaTeX specific syntax—for example, 10957‘#+LATEX:’ or ‘#+ATTR_LATEX:’. See *note LaTeX Export::, for details. 10958 10959 Beamer export wraps the table of contents generated with ‘toc:t’ 10960‘OPTION’ keyword in a ‘frame’ environment. Beamer export does not wrap 10961the table of contents generated with ‘TOC’ keyword (see *note Table of 10962Contents::). Use square brackets for specifying options. 10963 10964 #+TOC: headlines [currentsection] 10965 10966 Insert Beamer-specific code using the following constructs: 10967 10968 #+BEAMER: \pause 10969 10970 #+BEGIN_EXPORT beamer 10971 Only Beamer export back-end exports this. 10972 #+END_BEAMER 10973 10974 Text @@beamer:some code@@ within a paragraph. 10975 10976 Inline constructs, such as the last one above, are useful for adding 10977overlay specifications to objects with ‘bold’, ‘item’, ‘link’, 10978‘radio-target’ and ‘target’ types. Enclose the value in angular 10979brackets and place the specification at the beginning of the object as 10980shown in this example: 10981 10982 A *@@beamer:<2->@@useful* feature 10983 10984 Beamer export recognizes the ‘ATTR_BEAMER’ keyword with the following 10985attributes from Beamer configurations: ‘:environment’ for changing local 10986Beamer environment, ‘:overlay’ for specifying Beamer overlays in angular 10987or square brackets, and ‘:options’ for inserting optional arguments. 10988 10989 #+ATTR_BEAMER: :environment nonindentlist 10990 - item 1, not indented 10991 - item 2, not indented 10992 - item 3, not indented 10993 10994 #+ATTR_BEAMER: :overlay <+-> 10995 - item 1 10996 - item 2 10997 10998 #+ATTR_BEAMER: :options [Lagrange] 10999 Let $G$ be a finite group, and let $H$ be 11000 a subgroup of $G$. Then the order of $H$ divides the order of $G$. 11001 11002 11003File: org.info, Node: Editing support, Next: A Beamer example, Prev: Beamer specific syntax, Up: Beamer Export 11004 1100513.8.5 Editing support 11006---------------------- 11007 11008Org Beamer mode is a special minor mode for faster editing of Beamer 11009documents. 11010 11011 #+STARTUP: beamer 11012 11013‘C-c C-b’ (‘org-beamer-select-environment’) 11014 11015 Org Beamer mode provides this key for quicker selections in Beamer 11016 normal environments, and for selecting the ‘BEAMER_COL’ property. 11017 11018 11019File: org.info, Node: A Beamer example, Prev: Editing support, Up: Beamer Export 11020 1102113.8.6 A Beamer example 11022----------------------- 11023 11024Here is an example of an Org document ready for Beamer export. 11025 11026 #+TITLE: Example Presentation 11027 #+AUTHOR: Carsten Dominik 11028 #+OPTIONS: H:2 toc:t num:t 11029 #+LATEX_CLASS: beamer 11030 #+LATEX_CLASS_OPTIONS: [presentation] 11031 #+BEAMER_THEME: Madrid 11032 #+COLUMNS: %45ITEM %10BEAMER_ENV(Env) %10BEAMER_ACT(Act) %4BEAMER_COL(Col) 11033 11034 * This is the first structural section 11035 11036 ** Frame 1 11037 *** Thanks to Eric Fraga :B_block: 11038 :PROPERTIES: 11039 :BEAMER_COL: 0.48 11040 :BEAMER_ENV: block 11041 :END: 11042 for the first viable Beamer setup in Org 11043 *** Thanks to everyone else :B_block: 11044 :PROPERTIES: 11045 :BEAMER_COL: 0.48 11046 :BEAMER_ACT: <2-> 11047 :BEAMER_ENV: block 11048 :END: 11049 for contributing to the discussion 11050 **** This will be formatted as a beamer note :B_note: 11051 :PROPERTIES: 11052 :BEAMER_env: note 11053 :END: 11054 ** Frame 2 (where we will not use columns) 11055 *** Request 11056 Please test this stuff! 11057 11058 11059File: org.info, Node: HTML Export, Next: LaTeX Export, Prev: Beamer Export, Up: Exporting 11060 1106113.9 HTML Export 11062================ 11063 11064Org mode contains an HTML exporter with extensive HTML formatting 11065compatible with XHTML 1.0 strict standard. 11066 11067* Menu: 11068 11069* HTML export commands:: Invoking HTML export. 11070* HTML specific export settings:: Settings for HTML export. 11071* HTML doctypes:: Exporting various (X)HTML flavors. 11072* HTML preamble and postamble:: Inserting preamble and postamble. 11073* Quoting HTML tags:: Using direct HTML in Org files. 11074* Headlines in HTML export:: Formatting headlines. 11075* Links in HTML export:: Inserting and formatting links. 11076* Tables in HTML export:: How to modify the formatting of tables. 11077* Images in HTML export:: How to insert figures into HTML output. 11078* Math formatting in HTML export:: Beautiful math also on the web. 11079* Text areas in HTML export:: An alternate way to show an example. 11080* CSS support:: Changing the appearance of the output. 11081* JavaScript support:: Info and folding in a web browser. 11082 11083 11084File: org.info, Node: HTML export commands, Next: HTML specific export settings, Up: HTML Export 11085 1108613.9.1 HTML export commands 11087--------------------------- 11088 11089‘C-c C-e h h’ (‘org-html-export-to-html’) 11090 11091 Export as HTML file with a ‘.html’ extension. For ‘myfile.org’, 11092 Org exports to ‘myfile.html’, overwriting without warning. 11093 {{{kbd{C-c C-e h o)}}} exports to HTML and opens it in a web 11094 browser. 11095 11096‘C-c C-e h H’ (‘org-html-export-as-html’) 11097 11098 Exports to a temporary buffer. Does not create a file. 11099 11100 11101File: org.info, Node: HTML specific export settings, Next: HTML doctypes, Prev: HTML export commands, Up: HTML Export 11102 1110313.9.2 HTML specific export settings 11104------------------------------------ 11105 11106HTML export has a number of keywords, similar to the general options 11107settings described in *note Export Settings::. 11108 11109‘DESCRIPTION’ 11110 This is the document’s description, which the HTML exporter inserts 11111 it as a HTML meta tag in the HTML file. For long descriptions, use 11112 multiple ‘DESCRIPTION’ lines. The exporter takes care of wrapping 11113 the lines properly. 11114 11115‘HTML_DOCTYPE’ 11116 Specify the document type, for example: HTML5 (‘org-html-doctype’). 11117 11118‘HTML_CONTAINER’ 11119 Specify the HTML container, such as ‘div’, for wrapping sections 11120 and elements (‘org-html-container-element’). 11121 11122‘HTML_LINK_HOME’ 11123 The URL for home link (‘org-html-link-home’). 11124 11125‘HTML_LINK_UP’ 11126 The URL for the up link of exported HTML pages 11127 (‘org-html-link-up’). 11128 11129‘HTML_MATHJAX’ 11130 Options for MathJax (‘org-html-mathjax-options’). MathJax is used 11131 to typeset LaTeX math in HTML documents. See *note Math formatting 11132 in HTML export::, for an example. 11133 11134‘HTML_HEAD’ 11135 Arbitrary lines for appending to the HTML document’s head 11136 (‘org-html-head’). 11137 11138‘HTML_HEAD_EXTRA’ 11139 More arbitrary lines for appending to the HTML document’s head 11140 (‘org-html-head-extra’). 11141 11142‘KEYWORDS’ 11143 Keywords to describe the document’s content. HTML exporter inserts 11144 these keywords as HTML meta tags. For long keywords, use multiple 11145 ‘KEYWORDS’ lines. 11146 11147‘LATEX_HEADER’ 11148 Arbitrary lines for appending to the preamble; HTML exporter 11149 appends when transcoding LaTeX fragments to images (see *note Math 11150 formatting in HTML export::). 11151 11152‘SUBTITLE’ 11153 The document’s subtitle. HTML exporter formats subtitle if 11154 document type is ‘HTML5’ and the CSS has a ‘subtitle’ class. 11155 11156 Some of these keywords are explained in more detail in the following 11157sections of the manual. 11158 11159 11160File: org.info, Node: HTML doctypes, Next: HTML preamble and postamble, Prev: HTML specific export settings, Up: HTML Export 11161 1116213.9.3 HTML doctypes 11163-------------------- 11164 11165Org can export to various (X)HTML flavors. 11166 11167 Set the ‘org-html-doctype’ variable for different (X)HTML variants. 11168Depending on the variant, the HTML exporter adjusts the syntax of HTML 11169conversion accordingly. Org includes the following ready-made variants: 11170 11171 • ‘"html4-strict"’ 11172 • ‘"html4-transitional"’ 11173 • ‘"html4-frameset"’ 11174 • ‘"xhtml-strict"’ 11175 • ‘"xhtml-transitional"’ 11176 • ‘"xhtml-frameset"’ 11177 • ‘"xhtml-11"’ 11178 • ‘"html5"’ 11179 • ‘"xhtml5"’ 11180 11181See the variable ‘org-html-doctype-alist’ for details. The default is 11182‘"xhtml-strict"’. 11183 11184 Org’s HTML exporter does not by default enable new block elements 11185introduced with the HTML5 standard. To enable them, set 11186‘org-html-html5-fancy’ to non-‘nil’. Or use an ‘OPTIONS’ line in the 11187file to set ‘html5-fancy’. 11188 11189 HTML5 documents can now have arbitrary ‘#+BEGIN’ ... ‘#+END’ blocks. 11190For example: 11191 11192 #+BEGIN_aside 11193 Lorem ipsum 11194 #+END_aside 11195 11196exports to: 11197 11198 <aside> 11199 <p>Lorem ipsum</p> 11200 </aside> 11201 11202while this: 11203 11204 #+ATTR_HTML: :controls controls :width 350 11205 #+BEGIN_video 11206 #+HTML: <source src="movie.mp4" type="video/mp4"> 11207 #+HTML: <source src="movie.ogg" type="video/ogg"> 11208 Your browser does not support the video tag. 11209 #+END_video 11210 11211exports to: 11212 11213 <video controls="controls" width="350"> 11214 <source src="movie.mp4" type="video/mp4"> 11215 <source src="movie.ogg" type="video/ogg"> 11216 <p>Your browser does not support the video tag.</p> 11217 </video> 11218 11219 When special blocks do not have a corresponding HTML5 element, the 11220HTML exporter reverts to standard translation (see 11221‘org-html-html5-elements’). For example, ‘#+BEGIN_lederhosen’ exports 11222to ‘<div class="lederhosen">’. 11223 11224 Special blocks cannot have headlines. For the HTML exporter to wrap 11225the headline and its contents in ‘<section>’ or ‘<article>’ tags, set 11226the ‘HTML_CONTAINER’ property for the headline. 11227 11228 11229File: org.info, Node: HTML preamble and postamble, Next: Quoting HTML tags, Prev: HTML doctypes, Up: HTML Export 11230 1123113.9.4 HTML preamble and postamble 11232---------------------------------- 11233 11234The HTML exporter has delineations for preamble and postamble. The 11235default value for ‘org-html-preamble’ is ‘t’, which makes the HTML 11236exporter insert the preamble. See the variable 11237‘org-html-preamble-format’ for the format string. 11238 11239 Set ‘org-html-preamble’ to a string to override the default format 11240string. If the string is a function, the HTML exporter expects the 11241function to return a string upon execution. The HTML exporter inserts 11242this string in the preamble. The HTML exporter does not insert a 11243preamble if ‘org-html-preamble’ is set ‘nil’. 11244 11245 The default value for ‘org-html-postamble’ is ‘auto’, which makes the 11246HTML exporter build a postamble from looking up author’s name, email 11247address, creator’s name, and date. Set ‘org-html-postamble’ to ‘t’ to 11248insert the postamble in the format specified in the 11249‘org-html-postamble-format’ variable. The HTML exporter does not insert 11250a postamble if ‘org-html-postamble’ is set to ‘nil’. 11251 11252 11253File: org.info, Node: Quoting HTML tags, Next: Headlines in HTML export, Prev: HTML preamble and postamble, Up: HTML Export 11254 1125513.9.5 Quoting HTML tags 11256------------------------ 11257 11258The HTML export back-end transforms ‘<’ and ‘>’ to ‘<’ and ‘>’. 11259To include raw HTML code in the Org file so the HTML export back-end can 11260insert that HTML code in the output, use this inline syntax: 11261‘@@html:...@@’. For example: 11262 11263 @@html:<b>@@bold text@@html:</b>@@ 11264 11265 For larger raw HTML code blocks, use these HTML export code blocks: 11266 11267 #+HTML: Literal HTML code for export 11268 11269 #+BEGIN_EXPORT html 11270 All lines between these markers are exported literally 11271 #+END_EXPORT 11272 11273 11274File: org.info, Node: Headlines in HTML export, Next: Links in HTML export, Prev: Quoting HTML tags, Up: HTML Export 11275 1127613.9.6 Headlines in HTML export 11277------------------------------- 11278 11279Headlines are exported to ‘<h1>’, ‘<h2>’, etc. Each headline gets the 11280‘id’ attribute from ‘CUSTOM_ID’ property, or a unique generated value, 11281see *note Internal Links::. 11282 11283 When ‘org-html-self-link-headlines’ is set to a non-‘nil’ value, the 11284text of the headlines is also wrapped in ‘<a>’ tags. These tags have a 11285‘href’ attribute making the headlines link to themselves. 11286 11287 11288File: org.info, Node: Links in HTML export, Next: Tables in HTML export, Prev: Headlines in HTML export, Up: HTML Export 11289 1129013.9.7 Links in HTML export 11291--------------------------- 11292 11293The HTML export back-end transforms Org’s internal links (see *note 11294Internal Links::) to equivalent HTML links in the output. The back-end 11295similarly handles Org’s automatic links created by radio targets (see 11296*note Radio Targets::) similarly. For Org links to external files, the 11297back-end transforms the links to _relative_ paths. 11298 11299 For Org links to other ‘.org’ files, the back-end automatically 11300changes the file extension to ‘.html’ and makes file paths relative. If 11301the ‘.org’ files have an equivalent ‘.html’ version at the same 11302location, then the converted links should work without any further 11303manual intervention. However, to disable this automatic path 11304translation, set ‘org-html-link-org-files-as-html’ to ‘nil’. When 11305disabled, the HTML export back-end substitutes the ID-based links in the 11306HTML output. For more about linking files when publishing to a 11307directory, see *note Publishing links::. 11308 11309 Org files can also have special directives to the HTML export 11310back-end. For example, by using ‘#+ATTR_HTML’ lines to specify new 11311format attributes to ‘<a>’ or ‘<img>’ tags. This example shows changing 11312the link’s title and style: 11313 11314 #+ATTR_HTML: :title The Org mode homepage :style color:red; 11315 [[https://orgmode.org]] 11316 11317 11318File: org.info, Node: Tables in HTML export, Next: Images in HTML export, Prev: Links in HTML export, Up: HTML Export 11319 1132013.9.8 Tables in HTML export 11321---------------------------- 11322 11323The HTML export back-end uses ‘org-html-table-default-attributes’ when 11324exporting Org tables to HTML. By default, the exporter does not draw 11325frames and cell borders. To change for this for a table, use the 11326following lines before the table in the Org file: 11327 11328 #+CAPTION: This is a table with lines around and between cells 11329 #+ATTR_HTML: :border 2 :rules all :frame border 11330 11331 The HTML export back-end preserves column groupings in Org tables 11332(see *note Column Groups::) when exporting to HTML. 11333 11334 Additional options for customizing tables for HTML export. 11335 11336‘org-html-table-align-individual-fields’ 11337 Non-‘nil’ attaches style attributes for alignment to each table 11338 field. 11339 11340‘org-html-table-caption-above’ 11341 Non-‘nil’ places caption string at the beginning of the table. 11342 11343‘org-html-table-data-tags’ 11344 Opening and ending tags for table data fields. 11345 11346‘org-html-table-default-attributes’ 11347 Default attributes and values for table tags. 11348 11349‘org-html-table-header-tags’ 11350 Opening and ending tags for table’s header fields. 11351 11352‘org-html-table-row-tags’ 11353 Opening and ending tags for table rows. 11354 11355‘org-html-table-use-header-tags-for-first-column’ 11356 Non-‘nil’ formats column one in tables with header tags. 11357 11358 11359File: org.info, Node: Images in HTML export, Next: Math formatting in HTML export, Prev: Tables in HTML export, Up: HTML Export 11360 1136113.9.9 Images in HTML export 11362---------------------------- 11363 11364The HTML export back-end has features to convert Org image links to HTML 11365inline images and HTML clickable image links. 11366 11367 When the link in the Org file has no description, the HTML export 11368back-end by default in-lines that image. For example: 11369‘[[file:myimg.jpg]]’ is in-lined, while ‘[[file:myimg.jpg][the image]]’ 11370links to the text, ‘the image’. For more details, see the variable 11371‘org-html-inline-images’. 11372 11373 On the other hand, if the description part of the Org link is itself 11374another link, such as ‘file:’ or ‘http:’ URL pointing to an image, the 11375HTML export back-end in-lines this image and links to the main image. 11376This Org syntax enables the back-end to link low-resolution thumbnail to 11377the high-resolution version of the image, as shown in this example: 11378 11379 [[file:highres.jpg][file:thumb.jpg]] 11380 11381 To change attributes of in-lined images, use ‘#+ATTR_HTML’ lines in 11382the Org file. This example shows realignment to right, and adds ‘alt’ 11383and ‘title’ attributes in support of text viewers and modern web 11384accessibility standards. 11385 11386 #+CAPTION: A black cat stalking a spider 11387 #+ATTR_HTML: :alt cat/spider image :title Action! :align right 11388 [[./img/a.jpg]] 11389 11390 The HTML export back-end copies the ‘http’ links from the Org file 11391as-is. 11392 11393 11394File: org.info, Node: Math formatting in HTML export, Next: Text areas in HTML export, Prev: Images in HTML export, Up: HTML Export 11395 1139613.9.10 Math formatting in HTML export 11397-------------------------------------- 11398 11399LaTeX math snippets (see *note LaTeX fragments::) can be displayed in 11400two different ways on HTML pages. The default is to use the MathJax 11401(http://www.mathjax.org), which should work out of the box with 11402Org(1)(2). Some MathJax display options can be configured via 11403‘org-html-mathjax-options’, or in the buffer. For example, with the 11404following settings, 11405 11406 #+HTML_MATHJAX: align: left indent: 5em tagside: left font: Neo-Euler 11407 #+HTML_MATHJAX: cancel.js noErrors.js 11408 11409equation labels are displayed on the left margin and equations are five 11410em from the left margin. In addition, it loads the two MathJax 11411extensions ‘cancel.js’ and ‘noErrors.js’(3). 11412 11413 See the docstring of ‘org-html-mathjax-options’ for all supported 11414variables. The MathJax template can be configure via 11415‘org-html-mathjax-template’. 11416 11417 If you prefer, you can also request that LaTeX fragments are 11418processed into small images that will be inserted into the browser page. 11419Before the availability of MathJax, this was the default method for Org 11420files. This method requires that the dvipng program, dvisvgm or 11421ImageMagick suite is available on your system. You can still get this 11422processing with 11423 11424 #+OPTIONS: tex:dvipng 11425 11426 #+OPTIONS: tex:dvisvgm 11427 11428or 11429 11430 #+OPTIONS: tex:imagemagick 11431 11432 ---------- Footnotes ---------- 11433 11434 (1) By default Org loads MathJax from cdnjs.com (https://cdnjs.com) 11435as recommended by MathJax (http://www.mathjax.org). 11436 11437 (2) Please note that exported formulas are part of an HTML document, 11438and that signs such as ‘<’, ‘>’, or ‘&’ have special meanings. See 11439MathJax TeX and LaTeX support 11440(http://docs.mathjax.org/en/latest/tex.html#tex-and-latex-in-html-documents). 11441 11442 (3) See TeX and LaTeX extensions 11443(http://docs.mathjax.org/en/latest/tex.html#tex-extensions) in the 11444MathJax manual (http://docs.mathjax.org) to learn about extensions. 11445 11446 11447File: org.info, Node: Text areas in HTML export, Next: CSS support, Prev: Math formatting in HTML export, Up: HTML Export 11448 1144913.9.11 Text areas in HTML export 11450--------------------------------- 11451 11452Before Org mode’s Babel, one popular approach to publishing code in HTML 11453was by using ‘:textarea’. The advantage of this approach was that 11454copying and pasting was built into browsers with simple JavaScript 11455commands. Even editing before pasting was made simple. 11456 11457 The HTML export back-end can create such text areas. It requires an 11458‘#+ATTR_HTML’ line as shown in the example below with the ‘:textarea’ 11459option. This must be followed by either an example or a source code 11460block. Other Org block types do not honor the ‘:textarea’ option. 11461 11462 By default, the HTML export back-end creates a text area 80 11463characters wide and height just enough to fit the content. Override 11464these defaults with ‘:width’ and ‘:height’ options on the ‘#+ATTR_HTML’ 11465line. 11466 11467 #+ATTR_HTML: :textarea t :width 40 11468 #+BEGIN_EXAMPLE 11469 (defun org-xor (a b) 11470 "Exclusive or." 11471 (if a (not b) b)) 11472 #+END_EXAMPLE 11473 11474 11475File: org.info, Node: CSS support, Next: JavaScript support, Prev: Text areas in HTML export, Up: HTML Export 11476 1147713.9.12 CSS support 11478------------------- 11479 11480You can modify the CSS style definitions for the exported file. The 11481HTML exporter assigns the following special CSS classes(1) to 11482appropriate parts of the document—your style specifications may change 11483these, in addition to any of the standard classes like for headlines, 11484tables, etc. 11485 11486‘p.author’ author information, including email 11487‘p.date’ publishing date 11488‘p.creator’ creator info, about org mode version 11489‘.title’ document title 11490‘.subtitle’ document subtitle 11491‘.todo’ TODO keywords, all not-done states 11492‘.done’ the DONE keywords, all states that count as done 11493‘.WAITING’ each TODO keyword also uses a class named after itself 11494‘.timestamp’ timestamp 11495‘.timestamp-kwd’ keyword associated with a timestamp, like ‘SCHEDULED’ 11496‘.timestamp-wrapper’ span around keyword plus timestamp 11497‘.tag’ tag in a headline 11498‘._HOME’ each tag uses itself as a class, “@” replaced by “_” 11499‘.target’ target for links 11500‘.linenr’ the line number in a code example 11501‘.code-highlighted’ for highlighting referenced code lines 11502‘div.outline-N’ div for outline level N (headline plus text) 11503‘div.outline-text-N’ extra div for text at outline level N 11504‘.section-number-N’ section number in headlines, different for each level 11505‘.figure-number’ label like “Figure 1:” 11506‘.table-number’ label like “Table 1:” 11507‘.listing-number’ label like “Listing 1:” 11508‘div.figure’ how to format an in-lined image 11509‘pre.src’ formatted source code 11510‘pre.example’ normal example 11511‘p.verse’ verse paragraph 11512‘div.footnotes’ footnote section headline 11513‘p.footnote’ footnote definition paragraph, containing a footnote 11514‘.footref’ a footnote reference number (always a <sup>) 11515‘.footnum’ footnote number in footnote definition (always <sup>) 11516‘.org-svg’ default class for a linked ‘.svg’ image 11517 11518 The HTML export back-end includes a compact default style in each 11519exported HTML file. To override the default style with another style, 11520use these keywords in the Org file. They will replace the global 11521defaults the HTML exporter uses. 11522 11523 #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style1.css" /> 11524 #+HTML_HEAD_EXTRA: <link rel="alternate stylesheet" type="text/css" href="style2.css" /> 11525 11526 To just turn off the default style, customize 11527‘org-html-head-include-default-style’ variable, or use this option line 11528in the Org file. 11529 11530 #+OPTIONS: html-style:nil 11531 11532 For longer style definitions, either use several ‘HTML_HEAD’ and 11533‘HTML_HEAD_EXTRA’ keywords, or use ‘<style> ... </style>’ blocks around 11534them. Both of these approaches can avoid referring to an external file. 11535 11536 In order to add styles to a sub-tree, use the ‘HTML_CONTAINER_CLASS’ 11537property to assign a class to the tree. In order to specify CSS styles 11538for a particular headline, you can use the ID specified in a ‘CUSTOM_ID’ 11539property. You can also assign a specific class to a headline with the 11540‘HTML_HEADLINE_CLASS’ property. 11541 11542 Never change the ‘org-html-style-default’ constant. Instead use 11543other simpler ways of customizing as described above. 11544 11545 ---------- Footnotes ---------- 11546 11547 (1) If the classes on TODO keywords and tags lead to conflicts, use 11548the variables ‘org-html-todo-kwd-class-prefix’ and 11549‘org-html-tag-class-prefix’ to make them unique. 11550 11551 11552File: org.info, Node: JavaScript support, Prev: CSS support, Up: HTML Export 11553 1155413.9.13 JavaScript supported display of web pages 11555------------------------------------------------- 11556 11557Sebastian Rose has written a JavaScript program especially designed to 11558allow two different ways of viewing HTML files created with Org. One is 11559an _Info_-like mode where each section is displayed separately and 11560navigation can be done with the ‘n’ and ‘p’ keys, and some other keys as 11561well, press ‘?’ for an overview of the available keys. The second one 11562has a _folding_ view, much like Org provides inside Emacs. The script 11563is available at <https://orgmode.org/org-info.js> and the documentation 11564at <https://orgmode.org/worg/code/org-info-js/>. The script is hosted 11565on <https://orgmode.org>, but for reliability, prefer installing it on 11566your own web server. 11567 11568 To use this program, just add this line to the Org file: 11569 11570 #+INFOJS_OPT: view:info toc:nil 11571 11572The HTML header now has the code needed to automatically invoke the 11573script. For setting options, use the syntax from the above line for 11574options described below: 11575 11576‘path:’ 11577 The path to the script. The default is to grab the script from 11578 <https://orgmode.org/org-info.js>, but you might want to have a 11579 local copy and use a path like ‘../scripts/org-info.js’. 11580 11581‘view:’ 11582 Initial view when the website is first shown. Possible values are: 11583 11584 ‘info’ Info-like interface with one section per page 11585 ‘overview’ Folding interface, initially showing only top-level 11586 ‘content’ Folding interface, starting with all headlines visible 11587 ‘showall’ Folding interface, all headlines and text visible 11588 11589‘sdepth:’ 11590 Maximum headline level still considered as an independent section 11591 for info and folding modes. The default is taken from 11592 ‘org-export-headline-levels’, i.e., the ‘H’ switch in ‘OPTIONS’. 11593 If this is smaller than in ‘org-export-headline-levels’, each 11594 info/folding section can still contain child headlines. 11595 11596‘toc:’ 11597 Should the table of contents _initially_ be visible? Even when 11598 ‘nil’, you can always get to the “toc” with ‘i’. 11599 11600‘tdepth:’ 11601 The depth of the table of contents. The defaults are taken from 11602 the variables ‘org-export-headline-levels’ and 11603 ‘org-export-with-toc’. 11604 11605‘ftoc:’ 11606 Does the CSS of the page specify a fixed position for the “toc”? 11607 If yes, the toc is displayed as a section. 11608 11609‘ltoc:’ 11610 Should there be short contents (children) in each section? Make 11611 this ‘above’ if the section should be above initial text. 11612 11613‘mouse:’ 11614 Headings are highlighted when the mouse is over them. Should be 11615 ‘underline’ (default) or a background color like ‘#cccccc’. 11616 11617‘buttons:’ 11618 Should view-toggle buttons be everywhere? When ‘nil’ (the 11619 default), only one such button is present. 11620 11621 You can choose default values for these options by customizing the 11622variable ‘org-infojs-options’. If you always want to apply the script 11623to your pages, configure the variable ‘org-export-html-use-infojs’. 11624 11625 11626File: org.info, Node: LaTeX Export, Next: Markdown Export, Prev: HTML Export, Up: Exporting 11627 1162813.10 LaTeX Export 11629================== 11630 11631The LaTeX export back-end can handle complex documents, incorporate 11632standard or custom LaTeX document classes, generate documents using 11633alternate LaTeX engines, and produce fully linked PDF files with 11634indexes, bibliographies, and tables of contents, destined for 11635interactive online viewing or high-quality print publication. 11636 11637 While the details are covered in-depth in this section, here are some 11638quick references to variables for the impatient: for engines, see 11639‘org-latex-compiler’; for build sequences, see ‘org-latex-pdf-process’; 11640for packages, see ‘org-latex-default-packages-alist’ and 11641‘org-latex-packages-alist’. 11642 11643 An important note about the LaTeX export back-end: it is sensitive to 11644blank lines in the Org document. That’s because LaTeX itself depends on 11645blank lines to tell apart syntactical elements, such as paragraphs. 11646 11647* Menu: 11648 11649* LaTeX/PDF export commands:: For producing LaTeX and PDF documents. 11650* LaTeX specific export settings:: Unique to this LaTeX back-end. 11651* LaTeX header and sectioning:: Setting up the export file structure. 11652* Quoting LaTeX code:: Incorporating literal LaTeX code. 11653* Tables in LaTeX export:: Options for exporting tables to LaTeX. 11654* Images in LaTeX export:: How to insert figures into LaTeX output. 11655* Plain lists in LaTeX export:: Attributes specific to lists. 11656* Source blocks in LaTeX export:: Attributes specific to source code blocks. 11657* Example blocks in LaTeX export:: Attributes specific to example blocks. 11658* Special blocks in LaTeX export:: Attributes specific to special blocks. 11659* Horizontal rules in LaTeX export:: Attributes specific to horizontal rules. 11660 11661 11662File: org.info, Node: LaTeX/PDF export commands, Next: LaTeX specific export settings, Up: LaTeX Export 11663 1166413.10.1 LaTeX/PDF export commands 11665--------------------------------- 11666 11667‘C-c C-e l l’ (‘org-latex-export-to-latex’) 11668 Export to a LaTeX file with a ‘.tex’ extension. For ‘myfile.org’, 11669 Org exports to ‘myfile.tex’, overwriting without warning. 11670 11671‘C-c C-e l L’ (‘org-latex-export-as-latex’) 11672 Export to a temporary buffer. Do not create a file. 11673 11674‘C-c C-e l p’ (‘org-latex-export-to-pdf’) 11675 Export as LaTeX file and convert it to PDF file. 11676 11677‘C-c C-e l o’ 11678 Export as LaTeX file and convert it to PDF, then open the PDF using 11679 the default viewer. 11680 11681‘M-x org-export-region-as-latex’ 11682 Convert the region to LaTeX under the assumption that it was in Org 11683 mode syntax before. This is a global command that can be invoked 11684 in any buffer. 11685 11686 The LaTeX export back-end can use any of these LaTeX engines: 11687‘pdflatex’, ‘xelatex’, and ‘lualatex’. These engines compile LaTeX 11688files with different compilers, packages, and output options. The LaTeX 11689export back-end finds the compiler version to use from 11690‘org-latex-compiler’ variable or the ‘#+LATEX_COMPILER’ keyword in the 11691Org file. See the docstring for the ‘org-latex-default-packages-alist’ 11692for loading packages with certain compilers. Also see 11693‘org-latex-bibtex-compiler’ to set the bibliography compiler(1). 11694 11695 ---------- Footnotes ---------- 11696 11697 (1) This does not allow setting different bibliography compilers for 11698different files. However, “smart” LaTeX compilation systems, such as 11699latexmk, can select the correct bibliography compiler. 11700 11701 11702File: org.info, Node: LaTeX specific export settings, Next: LaTeX header and sectioning, Prev: LaTeX/PDF export commands, Up: LaTeX Export 11703 1170413.10.2 LaTeX specific export settings 11705-------------------------------------- 11706 11707The LaTeX export back-end has several additional keywords for 11708customizing LaTeX output. Setting these keywords works similar to the 11709general options (see *note Export Settings::). 11710 11711‘DESCRIPTION’ 11712 The document’s description. The description along with author 11713 name, keywords, and related file metadata are inserted in the 11714 output file by the hyperref package. See 11715 ‘org-latex-hyperref-template’ for customizing metadata items. See 11716 ‘org-latex-title-command’ for typesetting description into the 11717 document’s front matter. Use multiple ‘DESCRIPTION’ keywords for 11718 long descriptions. 11719 11720‘LANGUAGE’ 11721 In order to be effective, the ‘babel’ or ‘polyglossia’ 11722 packages—according to the LaTeX compiler used—must be loaded with 11723 the appropriate language as argument. This can be accomplished by 11724 modifying the ‘org-latex-packages-alist’ variable, e.g., with the 11725 following snippet: 11726 11727 (add-to-list 'org-latex-packages-alist 11728 '("AUTO" "babel" t ("pdflatex"))) 11729 (add-to-list 'org-latex-packages-alist 11730 '("AUTO" "polyglossia" t ("xelatex" "lualatex"))) 11731 11732‘LATEX_CLASS’ 11733 This is LaTeX document class, such as _article_, _report_, _book_, 11734 and so on, which contain predefined preamble and headline level 11735 mapping that the LaTeX export back-end needs. The back-end reads 11736 the default class name from the ‘org-latex-default-class’ variable. 11737 Org has _article_ as the default class. A valid default class must 11738 be an element of ‘org-latex-classes’. 11739 11740‘LATEX_CLASS_OPTIONS’ 11741 Options the LaTeX export back-end uses when calling the LaTeX 11742 document class. 11743 11744‘LATEX_COMPILER’ 11745 The compiler, such as ‘pdflatex’, ‘xelatex’, ‘lualatex’, for 11746 producing the PDF. See ‘org-latex-compiler’. 11747 11748‘LATEX_HEADER’ 11749‘LATEX_HEADER_EXTRA’ 11750 Arbitrary lines to add to the document’s preamble, before the 11751 hyperref settings. See ‘org-latex-classes’ for adjusting the 11752 structure and order of the LaTeX headers. 11753 11754‘KEYWORDS’ 11755 The keywords for the document. The description along with author 11756 name, keywords, and related file metadata are inserted in the 11757 output file by the hyperref package. See 11758 ‘org-latex-hyperref-template’ for customizing metadata items. See 11759 ‘org-latex-title-command’ for typesetting description into the 11760 document’s front matter. Use multiple ‘KEYWORDS’ lines if 11761 necessary. 11762 11763‘SUBTITLE’ 11764 The document’s subtitle. It is typeset as per 11765 ‘org-latex-subtitle-format’. If ‘org-latex-subtitle-separate’ is 11766 non-‘nil’, it is typed outside of the ‘\title’ macro. See 11767 ‘org-latex-hyperref-template’ for customizing metadata items. See 11768 ‘org-latex-title-command’ for typesetting description into the 11769 document’s front matter. 11770 11771 The following sections have further details. 11772 11773 11774File: org.info, Node: LaTeX header and sectioning, Next: Quoting LaTeX code, Prev: LaTeX specific export settings, Up: LaTeX Export 11775 1177613.10.3 LaTeX header and sectioning structure 11777--------------------------------------------- 11778 11779The LaTeX export back-end converts the first three of Org’s outline 11780levels into LaTeX headlines. The remaining Org levels are exported as 11781lists. To change this globally for the cut-off point between levels and 11782lists, (see *note Export Settings::). 11783 11784 By default, the LaTeX export back-end uses the _article_ class. 11785 11786 To change the default class globally, edit ‘org-latex-default-class’. 11787To change the default class locally in an Org file, add option lines 11788‘#+LATEX_CLASS: myclass’. To change the default class for just a part 11789of the Org file, set a sub-tree property, ‘EXPORT_LATEX_CLASS’. The 11790class name entered here must be valid member of ‘org-latex-classes’. 11791This variable defines a header template for each class into which the 11792exporter splices the values of ‘org-latex-default-packages-alist’ and 11793‘org-latex-packages-alist’. Use the same three variables to define 11794custom sectioning or custom classes. 11795 11796 The LaTeX export back-end sends the ‘LATEX_CLASS_OPTIONS’ keyword and 11797‘EXPORT_LATEX_CLASS_OPTIONS’ property as options to the LaTeX 11798‘\documentclass’ macro. The options and the syntax for specifying them, 11799including enclosing them in square brackets, follow LaTeX conventions. 11800 11801 #+LATEX_CLASS_OPTIONS: [a4paper,11pt,twoside,twocolumn] 11802 11803 The LaTeX export back-end appends values from ‘LATEX_HEADER’ and 11804‘LATEX_HEADER_EXTRA’ keywords to the LaTeX header. The docstring for 11805‘org-latex-classes’ explains in more detail. Also note that LaTeX 11806export back-end does not append ‘LATEX_HEADER_EXTRA’ to the header when 11807previewing LaTeX snippets (see *note Previewing LaTeX fragments::). 11808 11809 A sample Org file with the above headers: 11810 11811 #+LATEX_CLASS: article 11812 #+LATEX_CLASS_OPTIONS: [a4paper] 11813 #+LATEX_HEADER: \usepackage{xyz} 11814 11815 * Headline 1 11816 some text 11817 * Headline 2 11818 some more text 11819 11820 11821File: org.info, Node: Quoting LaTeX code, Next: Tables in LaTeX export, Prev: LaTeX header and sectioning, Up: LaTeX Export 11822 1182313.10.4 Quoting LaTeX code 11824-------------------------- 11825 11826The LaTeX export back-end can insert any arbitrary LaTeX code, see *note 11827Embedded LaTeX::. There are three ways to embed such code in the Org 11828file and they all use different quoting syntax. 11829 11830 Inserting in-line quoted with @ symbols: 11831 11832 Code embedded in-line @@latex:any arbitrary LaTeX code@@ in a paragraph. 11833 11834 Inserting as one or more keyword lines in the Org file: 11835 11836 #+LATEX: any arbitrary LaTeX code 11837 11838 Inserting as an export block in the Org file, where the back-end 11839exports any code between begin and end markers: 11840 11841 #+BEGIN_EXPORT latex 11842 any arbitrary LaTeX code 11843 #+END_EXPORT 11844 11845 11846File: org.info, Node: Tables in LaTeX export, Next: Images in LaTeX export, Prev: Quoting LaTeX code, Up: LaTeX Export 11847 1184813.10.5 Tables in LaTeX export 11849------------------------------ 11850 11851The LaTeX export back-end can pass several LaTeX attributes for table 11852contents and layout. Besides specifying a label (see *note Internal 11853Links::) and a caption (see *note Captions::), the other valid LaTeX 11854attributes include: 11855 11856‘:mode’ 11857 The LaTeX export back-end wraps the table differently depending on 11858 the mode for accurate rendering of math symbols. Mode is either 11859 ‘table’, ‘math’, ‘inline-math’ or ‘verbatim’. 11860 11861 For ‘math’ or ‘inline-math’ mode, LaTeX export back-end wraps the 11862 table in a math environment, but every cell in it is exported 11863 as-is. The LaTeX export back-end determines the default mode from 11864 ‘org-latex-default-table-mode’. The LaTeX export back-end merges 11865 contiguous tables in the same mode into a single environment. 11866 11867‘:environment’ 11868 Set the default LaTeX table environment for the LaTeX export 11869 back-end to use when exporting Org tables. Common LaTeX table 11870 environments are provided by these packages: tabularx, longtable, 11871 array, tabu, and bmatrix. For packages, such as tabularx and tabu, 11872 or any newer replacements, include them in the 11873 ‘org-latex-packages-alist’ variable so the LaTeX export back-end 11874 can insert the appropriate load package headers in the converted 11875 LaTeX file. Look in the docstring for the 11876 ‘org-latex-packages-alist’ variable for configuring these packages 11877 for LaTeX snippet previews, if any. 11878 11879‘:caption’ 11880 Use ‘CAPTION’ keyword to set a simple caption for a table (see 11881 *note Captions::). For custom captions, use ‘:caption’ attribute, 11882 which accepts raw LaTeX code. ‘:caption’ value overrides ‘CAPTION’ 11883 value. 11884 11885‘:float’ 11886‘:placement’ 11887 The table environments by default are not floats in LaTeX. To make 11888 them floating objects use ‘:float’ with one of the following 11889 options: ‘sideways’, ‘multicolumn’, ‘t’, and ‘nil’. 11890 11891 LaTeX floats can also have additional layout ‘:placement’ 11892 attributes. These are the usual ‘[h t b p ! H]’ permissions 11893 specified in square brackets. Note that for ‘:float sideways’ 11894 tables, the LaTeX export back-end ignores ‘:placement’ attributes. 11895 11896‘:align’ 11897‘:font’ 11898‘:width’ 11899 The LaTeX export back-end uses these attributes for regular tables 11900 to set their alignments, fonts, and widths. 11901 11902‘:spread’ 11903 When ‘:spread’ is non-‘nil’, the LaTeX export back-end spreads or 11904 shrinks the table by the ‘:width’ for tabu and longtabu 11905 environments. ‘:spread’ has no effect if ‘:width’ is not set. 11906 11907‘:booktabs’ 11908‘:center’ 11909‘:rmlines’ 11910 All three commands are toggles. ‘:booktabs’ brings in modern 11911 typesetting enhancements to regular tables. The booktabs package 11912 has to be loaded through ‘org-latex-packages-alist’. ‘:center’ is 11913 for centering the table. ‘:rmlines’ removes all but the very first 11914 horizontal line made of ASCII characters from “table.el” tables 11915 only. 11916 11917‘:math-prefix’ 11918‘:math-suffix’ 11919‘:math-arguments’ 11920 The LaTeX export back-end inserts ‘:math-prefix’ string value in a 11921 math environment before the table. The LaTeX export back-end 11922 inserts ‘:math-suffix’ string value in a math environment after the 11923 table. The LaTeX export back-end inserts ‘:math-arguments’ string 11924 value between the macro name and the table’s contents. 11925 ‘:math-arguments’ comes in use for matrix macros that require more 11926 than one argument, such as ‘qbordermatrix’. 11927 11928 LaTeX table attributes help formatting tables for a wide range of 11929situations, such as matrix product or spanning multiple pages: 11930 11931 #+ATTR_LATEX: :environment longtable :align l|lp{3cm}r|l 11932 | ... | ... | 11933 | ... | ... | 11934 11935 #+ATTR_LATEX: :mode math :environment bmatrix :math-suffix \times 11936 | a | b | 11937 | c | d | 11938 #+ATTR_LATEX: :mode math :environment bmatrix 11939 | 1 | 2 | 11940 | 3 | 4 | 11941 11942 Set the caption with the LaTeX command 11943‘\bicaption{HeadingA}{HeadingB}’: 11944 11945 #+ATTR_LATEX: :caption \bicaption{HeadingA}{HeadingB} 11946 | ... | ... | 11947 | ... | ... | 11948 11949 11950File: org.info, Node: Images in LaTeX export, Next: Plain lists in LaTeX export, Prev: Tables in LaTeX export, Up: LaTeX Export 11951 1195213.10.6 Images in LaTeX export 11953------------------------------ 11954 11955The LaTeX export back-end processes image links in Org files that do not 11956have descriptions, such as these links ‘[[file:img.jpg]]’ or 11957‘[[./img.jpg]]’, as direct image insertions in the final PDF output. In 11958the PDF, they are no longer links but actual images embedded on the 11959page. The LaTeX export back-end uses ‘\includegraphics’ macro to insert 11960the image. But for TikZ (<http://sourceforge.net/projects/pgf/>) 11961images, the back-end uses an ‘\input’ macro wrapped within a 11962‘tikzpicture’ environment. 11963 11964 For specifying image ‘:width’, ‘:height’, ‘:scale’ and other 11965‘:options’, use this syntax: 11966 11967 #+ATTR_LATEX: :width 5cm :options angle=90 11968 [[./img/sed-hr4049.pdf]] 11969 11970 A ‘:scale’ attribute overrides both ‘:width’ and ‘:height’ 11971attributes. 11972 11973 For custom commands for captions, use the ‘:caption’ attribute. It 11974overrides the default ‘#+CAPTION’ value: 11975 11976 #+ATTR_LATEX: :caption \bicaption{HeadingA}{HeadingB} 11977 [[./img/sed-hr4049.pdf]] 11978 11979 When captions follow the method as described in *note Captions::, the 11980LaTeX export back-end wraps the picture in a floating ‘figure’ 11981environment. To float an image without specifying a caption, set the 11982‘:float’ attribute to one of the following: 11983 11984‘t’ 11985 For a standard ‘figure’ environment; used by default whenever an 11986 image has a caption. 11987 11988‘multicolumn’ 11989 To span the image across multiple columns of a page; the back-end 11990 wraps the image in a ‘figure*’ environment. 11991 11992‘wrap’ 11993 For text to flow around the image on the right; the figure occupies 11994 the left half of the page. 11995 11996‘sideways’ 11997 For a new page with the image sideways, rotated ninety degrees, in 11998 a ‘sidewaysfigure’ environment; overrides ‘:placement’ setting. 11999 12000‘nil’ 12001 To avoid a ‘:float’ even if using a caption. 12002 12003 Use the ‘placement’ attribute to modify a floating environment’s 12004placement. 12005 12006 #+ATTR_LATEX: :float wrap :width 0.38\textwidth :placement {r}{0.4\textwidth} 12007 [[./img/hst.png]] 12008 12009 The LaTeX export back-end centers all images by default. Setting 12010‘:center’ to ‘nil’ disables centering. To disable centering globally, 12011set ‘org-latex-images-centered’ to ‘t’. 12012 12013 Set the ‘:comment-include’ attribute to non-‘nil’ value for the LaTeX 12014export back-end to comment out the ‘\includegraphics’ macro. 12015 12016 12017File: org.info, Node: Plain lists in LaTeX export, Next: Source blocks in LaTeX export, Prev: Images in LaTeX export, Up: LaTeX Export 12018 1201913.10.7 Plain lists in LaTeX export 12020----------------------------------- 12021 12022The LaTeX export back-end accepts the ‘environment’ and ‘options’ 12023attributes for plain lists. Both attributes work together for 12024customizing lists, as shown in the examples: 12025 12026 #+LATEX_HEADER: \usepackage[inline]{enumitem} 12027 Some ways to say "Hello": 12028 #+ATTR_LATEX: :environment itemize* 12029 #+ATTR_LATEX: :options [label={}, itemjoin={,}, itemjoin*={, and}] 12030 - Hola 12031 - Bonjour 12032 - Guten Tag. 12033 12034 Since LaTeX supports only four levels of nesting for lists, use an 12035external package, such as ‘enumitem’ in LaTeX, for levels deeper than 12036four: 12037 12038 #+LATEX_HEADER: \usepackage{enumitem} 12039 #+LATEX_HEADER: \renewlist{itemize}{itemize}{9} 12040 #+LATEX_HEADER: \setlist[itemize]{label=$\circ$} 12041 - One 12042 - Two 12043 - Three 12044 - Four 12045 - Five 12046 12047 12048File: org.info, Node: Source blocks in LaTeX export, Next: Example blocks in LaTeX export, Prev: Plain lists in LaTeX export, Up: LaTeX Export 12049 1205013.10.8 Source blocks in LaTeX export 12051------------------------------------- 12052 12053The LaTeX export back-end can make source code blocks into floating 12054objects through the attributes ‘:float’ and ‘:options’. For ‘:float’: 12055 12056‘t’ 12057 Makes a source block float; by default floats any source block with 12058 a caption. 12059 12060‘multicolumn’ 12061 Spans the source block across multiple columns of a page. 12062 12063‘nil’ 12064 Avoids a ‘:float’ even if using a caption; useful for source code 12065 blocks that may not fit on a page. 12066 12067 #+ATTR_LATEX: :float nil 12068 #+BEGIN_SRC emacs-lisp 12069 Lisp code that may not fit in a single page. 12070 #+END_SRC 12071 12072 The LaTeX export back-end passes string values in ‘:options’ to LaTeX 12073packages for customization of that specific source block. In the 12074example below, the ‘:options’ are set for Minted. Minted is a source 12075code highlighting LaTeX package with many configurable options. 12076 12077 #+ATTR_LATEX: :options commentstyle=\bfseries 12078 #+BEGIN_SRC emacs-lisp 12079 (defun Fib (n) 12080 (if (< n 2) n (+ (Fib (- n 1)) (Fib (- n 2))))) 12081 #+END_SRC 12082 12083 To apply similar configuration options for all source blocks in a 12084file, use the ‘org-latex-listings-options’ and 12085‘org-latex-minted-options’ variables. 12086 12087 12088File: org.info, Node: Example blocks in LaTeX export, Next: Special blocks in LaTeX export, Prev: Source blocks in LaTeX export, Up: LaTeX Export 12089 1209013.10.9 Example blocks in LaTeX export 12091-------------------------------------- 12092 12093The LaTeX export back-end wraps the contents of example blocks in a 12094‘verbatim’ environment. To change this behavior to use another 12095environment globally, specify an appropriate export filter (see *note 12096Advanced Export Configuration::). To change this behavior to use 12097another environment for each block, use the ‘:environment’ parameter to 12098specify a custom environment. 12099 12100 #+ATTR_LATEX: :environment myverbatim 12101 #+BEGIN_EXAMPLE 12102 This sentence is false. 12103 #+END_EXAMPLE 12104 12105 12106File: org.info, Node: Special blocks in LaTeX export, Next: Horizontal rules in LaTeX export, Prev: Example blocks in LaTeX export, Up: LaTeX Export 12107 1210813.10.10 Special blocks in LaTeX export 12109--------------------------------------- 12110 12111For other special blocks in the Org file, the LaTeX export back-end 12112makes a special environment of the same name. The back-end also takes 12113‘:options’, if any, and appends as-is to that environment’s opening 12114string. For example: 12115 12116 #+BEGIN_abstract 12117 We demonstrate how to solve the Syracuse problem. 12118 #+END_abstract 12119 12120 #+ATTR_LATEX: :options [Proof of important theorem] 12121 #+BEGIN_proof 12122 ... 12123 Therefore, any even number greater than 2 is the sum of two primes. 12124 #+END_proof 12125 12126exports to 12127 12128 \begin{abstract} 12129 We demonstrate how to solve the Syracuse problem. 12130 \end{abstract} 12131 12132 \begin{proof}[Proof of important theorem] 12133 ... 12134 Therefore, any even number greater than 2 is the sum of two primes. 12135 \end{proof} 12136 12137 If you need to insert a specific caption command, use ‘:caption’ 12138attribute. It overrides standard ‘CAPTION’ value, if any. For example: 12139 12140 #+ATTR_LATEX: :caption \MyCaption{HeadingA} 12141 #+BEGIN_proof 12142 ... 12143 #+END_proof 12144 12145 12146File: org.info, Node: Horizontal rules in LaTeX export, Prev: Special blocks in LaTeX export, Up: LaTeX Export 12147 1214813.10.11 Horizontal rules in LaTeX export 12149----------------------------------------- 12150 12151The LaTeX export back-end converts horizontal rules by the specified 12152‘:width’ and ‘:thickness’ attributes. For example: 12153 12154 #+ATTR_LATEX: :width .6\textwidth :thickness 0.8pt 12155 ----- 12156 12157 12158File: org.info, Node: Markdown Export, Next: OpenDocument Text Export, Prev: LaTeX Export, Up: Exporting 12159 1216013.11 Markdown Export 12161===================== 12162 12163The Markdown export back-end, “md”, converts an Org file to Markdown 12164format, as defined at <http://daringfireball.net/projects/markdown/>. 12165 12166 Since it is built on top of the HTML back-end (see *note HTML 12167Export::), it converts every Org construct not defined in Markdown 12168syntax, such as tables, to HTML. 12169 12170Markdown export commands 12171------------------------ 12172 12173‘C-c C-e m m’ (‘org-md-export-to-markdown’) 12174 Export to a text file with Markdown syntax. For ‘myfile.org’, Org 12175 exports to ‘myfile.md’, overwritten without warning. 12176 12177‘C-c C-e m M’ (‘org-md-export-as-markdown’) 12178 Export to a temporary buffer. Does not create a file. 12179 12180‘C-c C-e m o’ 12181 Export as a text file with Markdown syntax, then open it. 12182 12183Header and sectioning structure 12184------------------------------- 12185 12186Based on ‘org-md-headline-style’, Markdown export can generate headlines 12187of both _atx_ and _setext_ types. _atx_ limits headline levels to two 12188whereas _setext_ limits headline levels to six. Beyond these limits, 12189the export back-end converts headlines to lists. To set a limit to a 12190level before the absolute limit (see *note Export Settings::). 12191 12192 12193File: org.info, Node: OpenDocument Text Export, Next: Org Export, Prev: Markdown Export, Up: Exporting 12194 1219513.12 OpenDocument Text Export 12196============================== 12197 12198The ODT export back-end handles creating of OpenDocument Text (ODT) 12199format. Documents created by this exporter use the ‘OpenDocument-v1.2 12200specification’(1) and are compatible with LibreOffice 3.4. 12201 12202* Menu: 12203 12204* Pre-requisites for ODT export:: Required packages. 12205* ODT export commands:: Invoking export. 12206* ODT specific export settings:: Configuration options. 12207* Extending ODT export:: Producing DOC, PDF files. 12208* Applying custom styles:: Styling the output. 12209* Links in ODT export:: Handling and formatting links. 12210* Tables in ODT export:: Org tables conversions. 12211* Images in ODT export:: Inserting images. 12212* Math formatting in ODT export:: Formatting LaTeX fragments. 12213* Labels and captions in ODT export:: Rendering objects. 12214* Literal examples in ODT export:: For source code and example blocks. 12215* Advanced topics in ODT export:: For power users. 12216 12217 ---------- Footnotes ---------- 12218 12219 (1) See Open Document Format for Office Applications (OpenDocument) 12220Version 1.2 12221(http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html). 12222 12223 12224File: org.info, Node: Pre-requisites for ODT export, Next: ODT export commands, Up: OpenDocument Text Export 12225 1222613.12.1 Pre-requisites for ODT export 12227------------------------------------- 12228 12229The ODT export back-end relies on the zip program to create the final 12230compressed ODT output. Check if ‘zip’ is locally available and 12231executable. Without it, export cannot finish. 12232 12233 12234File: org.info, Node: ODT export commands, Next: ODT specific export settings, Prev: Pre-requisites for ODT export, Up: OpenDocument Text Export 12235 1223613.12.2 ODT export commands 12237--------------------------- 12238 12239‘C-c C-e o o’ (‘org-export-to-odt’) 12240 Export as OpenDocument Text file. 12241 12242 If ‘org-odt-preferred-output-format’ is specified, the ODT export 12243 back-end automatically converts the exported file to that format. 12244 12245 For ‘myfile.org’, Org exports to ‘myfile.odt’, overwriting without 12246 warning. The ODT export back-end exports a region only if a region 12247 was active. 12248 12249 If the selected region is a single tree, the ODT export back-end 12250 makes the tree head the document title. Incidentally, ‘C-c @’ 12251 selects the current sub-tree. If the tree head entry has, or 12252 inherits, an ‘EXPORT_FILE_NAME’ property, the ODT export back-end 12253 uses that for file name. 12254 12255‘C-c C-e o O’ 12256 Export as an OpenDocument Text file and open the resulting file. 12257 12258 If ‘org-export-odt-preferred-output-format’ is specified, open the 12259 converted file instead. See *note Automatically exporting to other 12260 formats::. 12261 12262 12263File: org.info, Node: ODT specific export settings, Next: Extending ODT export, Prev: ODT export commands, Up: OpenDocument Text Export 12264 1226513.12.3 ODT specific export settings 12266------------------------------------ 12267 12268The ODT export back-end has several additional keywords for customizing 12269ODT output. Setting these keywords works similar to the general options 12270(see *note Export Settings::). 12271 12272‘DESCRIPTION’ 12273 This is the document’s description, which the ODT export back-end 12274 inserts as document metadata. For long descriptions, use multiple 12275 lines, prefixed with ‘DESCRIPTION’. 12276 12277‘KEYWORDS’ 12278 The keywords for the document. The ODT export back-end inserts the 12279 description along with author name, keywords, and related file 12280 metadata as metadata in the output file. Use multiple ‘KEYWORDS’ 12281 if necessary. 12282 12283‘ODT_STYLES_FILE’ 12284 The ODT export back-end uses the ‘org-odt-styles-file’ by default. 12285 See *note Applying custom styles:: for details. 12286 12287‘SUBTITLE’ 12288 The document subtitle. 12289 12290 12291File: org.info, Node: Extending ODT export, Next: Applying custom styles, Prev: ODT specific export settings, Up: OpenDocument Text Export 12292 1229313.12.4 Extending ODT export 12294---------------------------- 12295 12296The ODT export back-end can produce documents in other formats besides 12297ODT using a specialized ODT converter process. Its common interface 12298works with popular converters to produce formats such as ‘doc’, or 12299convert a document from one format, say ‘csv’, to another format, say 12300‘xls’. 12301 12302 Customize ‘org-odt-convert-process’ variable to point to ‘unoconv’, 12303which is the ODT’s preferred converter. Working installations of 12304LibreOffice would already have ‘unoconv’ installed. Alternatively, 12305other converters may be substituted here. See *note Configuring a 12306document converter::. 12307 12308Automatically exporting to other formats 12309........................................ 12310 12311If ODT format is just an intermediate step to get to other formats, such 12312as ‘doc’, ‘docx’, ‘rtf’, or ‘pdf’, etc., then extend the ODT export 12313back-end to directly produce that format. Specify the final format in 12314the ‘org-odt-preferred-output-format’ variable. This is one way to 12315extend (see *note ODT export commands::). 12316 12317Converting between document formats 12318................................... 12319 12320The Org export back-end is made to be inter-operable with a wide range 12321of text document format converters. Newer generation converters, such 12322as LibreOffice and Pandoc, can handle hundreds of formats at once. Org 12323provides a consistent interaction with whatever converter is installed. 12324Here are some generic commands: 12325 12326‘M-x org-odt-convert’ 12327 Convert an existing document from one format to another. With a 12328 prefix argument, opens the newly produced file. 12329 12330 12331File: org.info, Node: Applying custom styles, Next: Links in ODT export, Prev: Extending ODT export, Up: OpenDocument Text Export 12332 1233313.12.5 Applying custom styles 12334------------------------------ 12335 12336The ODT export back-end comes with many OpenDocument styles (see *note 12337Working with OpenDocument style files::). To expand or further 12338customize these built-in style sheets, either edit the style sheets 12339directly or generate them using an application such as LibreOffice. The 12340example here shows creating a style using LibreOffice. 12341 12342Applying custom styles: the easy way 12343.................................... 12344 12345 1. Create a sample ‘example.org’ file with settings as shown below, 12346 and export it to ODT format. 12347 12348 #+OPTIONS: H:10 num:t 12349 12350 2. Open the above ‘example.odt’ using LibreOffice. Use the _Stylist_ 12351 to locate the target styles, which typically have the “Org” prefix. 12352 Open one, modify, and save as either OpenDocument Text (ODT) or 12353 OpenDocument Template (OTT) file. 12354 12355 3. Customize the variable ‘org-odt-styles-file’ and point it to the 12356 newly created file. For additional configuration options, see 12357 *note Overriding factory styles: x-overriding-factory-styles. 12358 12359 To apply an ODT style to a particular file, use the 12360 ‘ODT_STYLES_FILE’ keyword as shown in the example below: 12361 12362 #+ODT_STYLES_FILE: "/path/to/example.ott" 12363 12364 or 12365 12366 #+ODT_STYLES_FILE: ("/path/to/file.ott" ("styles.xml" "image/hdr.png")) 12367 12368Using third-party styles and templates 12369...................................... 12370 12371The ODT export back-end relies on many templates and style names. Using 12372third-party styles and templates can lead to mismatches. Templates 12373derived from built in ODT templates and styles seem to have fewer 12374problems. 12375 12376 12377File: org.info, Node: Links in ODT export, Next: Tables in ODT export, Prev: Applying custom styles, Up: OpenDocument Text Export 12378 1237913.12.6 Links in ODT export 12380--------------------------- 12381 12382ODT exporter creates native cross-references for internal links. It 12383creates Internet-style links for all other links. 12384 12385 A link with no description and pointing to a regular, un-itemized, 12386outline heading is replaced with a cross-reference and section number of 12387the heading. 12388 12389 A ‘\ref{label}’-style reference to an image, table etc., is replaced 12390with a cross-reference and sequence number of the labeled entity. See 12391*note Labels and captions in ODT export::. 12392 12393 12394File: org.info, Node: Tables in ODT export, Next: Images in ODT export, Prev: Links in ODT export, Up: OpenDocument Text Export 12395 1239613.12.7 Tables in ODT export 12397---------------------------- 12398 12399The ODT export back-end handles native Org mode tables (see *note 12400Tables::) and simple ‘table.el’ tables. Complex ‘table.el’ tables 12401having column or row spans are not supported. Such tables are stripped 12402from the exported document. 12403 12404 By default, the ODT export back-end exports a table with top and 12405bottom frames and with ruled lines separating row and column groups (see 12406*note Column Groups::). All tables are typeset to occupy the same 12407width. The ODT export back-end honors any table alignments and relative 12408widths for columns (see *note Column Width and Alignment::). 12409 12410 Note that the ODT export back-end interprets column widths as 12411weighted ratios, the default weight being 1. 12412 12413 Specifying ‘:rel-width’ property on an ‘ATTR_ODT’ line controls the 12414width of the table. For example: 12415 12416 #+ATTR_ODT: :rel-width 50 12417 | Area/Month | Jan | Feb | Mar | Sum | 12418 |---------------+-------+-------+-------+-------| 12419 | / | < | | | < | 12420 | <l13> | <r5> | <r5> | <r5> | <r6> | 12421 | North America | 1 | 21 | 926 | 948 | 12422 | Middle East | 6 | 75 | 844 | 925 | 12423 | Asia Pacific | 9 | 27 | 790 | 826 | 12424 |---------------+-------+-------+-------+-------| 12425 | Sum | 16 | 123 | 2560 | 2699 | 12426 12427 On export, the above table takes 50% of text width area. The 12428exporter sizes the columns in the ratio: 13:5:5:5:6. The first column 12429is left-aligned and rest of the columns, right-aligned. Vertical rules 12430separate the header and the last column. Horizontal rules separate the 12431header and the last row. 12432 12433 For even more customization, create custom table styles and associate 12434them with a table using the ‘ATTR_ODT’ keyword. See *note Customizing 12435tables in ODT export::. 12436 12437 12438File: org.info, Node: Images in ODT export, Next: Math formatting in ODT export, Prev: Tables in ODT export, Up: OpenDocument Text Export 12439 1244013.12.8 Images in ODT export 12441---------------------------- 12442 12443Embedding images 12444................ 12445 12446The ODT export back-end processes image links in Org files that do not 12447have descriptions, such as these links ‘[[file:img.jpg]]’ or 12448‘[[./img.jpg]]’, as direct image insertions in the final output. Either 12449of these examples works: 12450 12451 [[file:img.png]] 12452 12453 [[./img.png]] 12454 12455Embedding clickable images 12456.......................... 12457 12458For clickable images, provide a link whose description is another link 12459to an image file. For example, to embed an image ‘org-mode-unicorn.png’ 12460which when clicked jumps to <https://orgmode.org> website, do the 12461following 12462 12463 [[https://orgmode.org][./org-mode-unicorn.png]] 12464 12465Sizing and scaling of embedded images 12466..................................... 12467 12468Control the size and scale of the embedded images with the ‘ATTR_ODT’ 12469attribute. 12470 12471 The ODT export back-end starts with establishing the size of the 12472image in the final document. The dimensions of this size are measured 12473in centimeters. The back-end then queries the image file for its 12474dimensions measured in pixels. For this measurement, the back-end 12475relies on ImageMagick’s identify program or Emacs ‘create-image’ and 12476‘image-size’ API. ImageMagick is the preferred choice for large file 12477sizes or frequent batch operations. The back-end then converts the 12478pixel dimensions using ‘org-odt-pixels-per-inch’ into the familiar 72 12479dpi or 96 dpi. The default value for this is in 12480‘display-pixels-per-inch’, which can be tweaked for better results based 12481on the capabilities of the output device. Here are some common image 12482scaling operations: 12483 12484Explicitly size the image 12485 To embed ‘img.png’ as a 10 cm x 10 cm image, do the following: 12486 12487 #+ATTR_ODT: :width 10 :height 10 12488 [[./img.png]] 12489 12490Scale the image 12491 To embed ‘img.png’ at half its size, do the following: 12492 12493 #+ATTR_ODT: :scale 0.5 12494 [[./img.png]] 12495 12496Scale the image to a specific width 12497 To embed ‘img.png’ with a width of 10 cm while retaining the 12498 original height:width ratio, do the following: 12499 12500 #+ATTR_ODT: :width 10 12501 [[./img.png]] 12502 12503Scale the image to a specific height 12504 To embed ‘img.png’ with a height of 10 cm while retaining the 12505 original height:width ratio, do the following: 12506 12507 #+ATTR_ODT: :height 10 12508 [[./img.png]] 12509 12510Anchoring of images 12511................... 12512 12513The ODT export back-end can anchor images to ‘as-char’, ‘paragraph’, or 12514‘page’. Set the preferred anchor using the ‘:anchor’ property of the 12515‘ATTR_ODT’ line. 12516 12517 To create an image that is anchored to a page: 12518 12519 #+ATTR_ODT: :anchor page 12520 [[./img.png]] 12521 12522 12523File: org.info, Node: Math formatting in ODT export, Next: Labels and captions in ODT export, Prev: Images in ODT export, Up: OpenDocument Text Export 12524 1252513.12.9 Math formatting in ODT export 12526------------------------------------- 12527 12528The ODT exporter has special support for handling math. 12529 12530* Menu: 12531 12532* LaTeX math snippets:: Embedding in LaTeX format. 12533* MathML and OpenDocument formula files:: Embedding in native format. 12534 12535 12536File: org.info, Node: LaTeX math snippets, Next: MathML and OpenDocument formula files, Up: Math formatting in ODT export 12537 1253813.12.9.1 LaTeX math snippets 12539............................. 12540 12541LaTeX math snippets (see *note LaTeX fragments::) can be embedded in the 12542ODT document in one of the following ways: 12543 12544MathML 12545 Add this line to the Org file. This option is activated on a 12546 per-file basis. 12547 12548 #+OPTIONS: tex:t 12549 12550 With this option, LaTeX fragments are first converted into MathML 12551 fragments using an external LaTeX-to-MathML converter program. The 12552 resulting MathML fragments are then embedded as an OpenDocument 12553 Formula in the exported document. 12554 12555 You can specify the LaTeX-to-MathML converter by customizing the 12556 variables ‘org-latex-to-mathml-convert-command’ and 12557 ‘org-latex-to-mathml-jar-file’. 12558 12559 If you prefer to use MathToWeb(1) as your converter, you can 12560 configure the above variables as shown below. 12561 12562 (setq org-latex-to-mathml-convert-command 12563 "java -jar %j -unicode -force -df %o %I" 12564 org-latex-to-mathml-jar-file 12565 "/path/to/mathtoweb.jar") 12566 12567 or, to use LaTeXML(2) instead, 12568 12569 (setq org-latex-to-mathml-convert-command 12570 "latexmlmath \"%i\" --presentationmathml=%o") 12571 12572 To quickly verify the reliability of the LaTeX-to-MathML converter, 12573 use the following commands: 12574 12575 ‘M-x org-export-as-odf’ 12576 Convert a LaTeX math snippet to an OpenDocument formula 12577 (‘.odf’) file. 12578 12579 ‘M-x org-export-as-odf-and-open’ 12580 Convert a LaTeX math snippet to an OpenDocument formula 12581 (‘.odf’) file and open the formula file with the 12582 system-registered application. 12583 12584PNG images 12585 Add this line to the Org file. This option is activated on a 12586 per-file basis. 12587 12588 #+OPTIONS: tex:dvipng 12589 12590 #+OPTIONS: tex:dvisvgm 12591 12592 or 12593 12594 #+OPTIONS: tex:imagemagick 12595 12596 Under this option, LaTeX fragments are processed into PNG or SVG 12597 images and the resulting images are embedded in the exported 12598 document. This method requires dvipng program, dvisvgm or 12599 ImageMagick programs. 12600 12601 ---------- Footnotes ---------- 12602 12603 (1) See MathToWeb 12604(http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl). 12605 12606 (2) See <http://dlmf.nist.gov/LaTeXML/>. 12607 12608 12609File: org.info, Node: MathML and OpenDocument formula files, Prev: LaTeX math snippets, Up: Math formatting in ODT export 12610 1261113.12.9.2 MathML and OpenDocument formula files 12612............................................... 12613 12614When embedding LaTeX math snippets in ODT documents is not reliable, 12615there is one more option to try. Embed an equation by linking to its 12616MathML (‘.mml’) source or its OpenDocument formula (‘.odf’) file as 12617shown below: 12618 12619 [[./equation.mml]] 12620 12621or 12622 12623 [[./equation.odf]] 12624 12625 12626File: org.info, Node: Labels and captions in ODT export, Next: Literal examples in ODT export, Prev: Math formatting in ODT export, Up: OpenDocument Text Export 12627 1262813.12.10 Labels and captions in ODT export 12629------------------------------------------ 12630 12631ODT format handles labeling and captioning of objects based on their 12632types. Inline images, tables, LaTeX fragments, and Math formulas are 12633numbered and captioned separately. Each object also gets a unique 12634sequence number based on its order of first appearance in the Org file. 12635Each category has its own sequence. A caption is just a label applied 12636to these objects. 12637 12638 #+CAPTION: Bell curve 12639 #+NAME: fig:SED-HR4049 12640 [[./img/a.png]] 12641 12642 When rendered, it may show as follows in the exported document: 12643 12644 Figure 2: Bell curve 12645 12646 To modify the category component of the caption, customize the option 12647‘org-odt-category-map-alist’. For example, to tag embedded images with 12648the string “Illustration” instead of the default string “Figure”, use 12649the following setting: 12650 12651 (setq org-odt-category-map-alist 12652 '(("__Figure__" "Illustration" "value" "Figure" org-odt--enumerable-image-p))) 12653 12654 With the above modification, the previous example changes to: 12655 12656 Illustration 2: Bell curve 12657 12658 12659File: org.info, Node: Literal examples in ODT export, Next: Advanced topics in ODT export, Prev: Labels and captions in ODT export, Up: OpenDocument Text Export 12660 1266113.12.11 Literal examples in ODT export 12662--------------------------------------- 12663 12664The ODT export back-end supports literal examples (see *note Literal 12665Examples::) with full fontification. Internally, the ODT export 12666back-end relies on ‘htmlfontify.el’ to generate the style definitions 12667needed for fancy listings. The auto-generated styles get ‘OrgSrc’ 12668prefix and inherit colors from the faces used by Emacs Font Lock library 12669for that source language. 12670 12671 For custom fontification styles, customize the 12672‘org-odt-create-custom-styles-for-srcblocks’ option. 12673 12674 To turn off fontification of literal examples, customize the 12675‘org-odt-fontify-srcblocks’ option. 12676 12677 12678File: org.info, Node: Advanced topics in ODT export, Prev: Literal examples in ODT export, Up: OpenDocument Text Export 12679 1268013.12.12 Advanced topics in ODT export 12681-------------------------------------- 12682 12683The ODT export back-end has extensive features useful for power users 12684and frequent uses of ODT formats. 12685 12686Configuring a document converter 12687................................ 12688 12689The ODT export back-end works with popular converters with little or no 12690extra configuration. See *note Extending ODT export::. The following 12691is for unsupported converters or tweaking existing defaults. 12692 12693Register the converter 12694 Add the name of the converter to the ‘org-odt-convert-processes’ 12695 variable. Note that it also requires how the converter is invoked 12696 on the command line. See the variable’s docstring for details. 12697 12698Configure its capabilities 12699 Specify which formats the converter can handle by customizing the 12700 variable ‘org-odt-convert-capabilities’. Use the entry for the 12701 default values in this variable for configuring the new converter. 12702 Also see its docstring for details. 12703 12704Choose the converter 12705 Select the newly added converter as the preferred one by 12706 customizing the option ‘org-odt-convert-process’. 12707 12708Working with OpenDocument style files 12709..................................... 12710 12711This section explores the internals of the ODT exporter; the means by 12712which it produces styled documents; the use of automatic and custom 12713OpenDocument styles. 12714 12715 The ODT exporter relies on two files for generating its output. 12716These files are bundled with the distribution under the directory 12717pointed to by the variable ‘org-odt-styles-dir’. The two files are: 12718 12719‘OrgOdtStyles.xml’ 12720 This file contributes to the ‘styles.xml’ file of the final ODT 12721 document. This file gets modified for the following purposes: 12722 12723 1. To control outline numbering based on user settings; 12724 12725 2. To add styles generated by ‘htmlfontify.el’ for fontification 12726 of code blocks. 12727 12728‘OrgOdtContentTemplate.xml’ 12729 This file contributes to the ‘content.xml’ file of the final ODT 12730 document. The contents of the Org outline are inserted between the 12731 ‘<office:text>’ ... ‘</office:text>’ elements of this file. 12732 12733 Apart from serving as a template file for the final ‘content.xml’, 12734 the file serves the following purposes: 12735 12736 1. It contains automatic styles for formatting of tables which 12737 are referenced by the exporter; 12738 12739 2. It contains ‘<text:sequence-decl>’ ... ‘</text:sequence-decl>’ 12740 elements that control numbering of tables, images, equations, 12741 and similar entities. 12742 12743 The following two variables control the location from where the ODT 12744exporter picks up the custom styles and content template files. 12745Customize these variables to override the factory styles used by the 12746exporter. 12747 12748‘org-odt-styles-file’ 12749 The ODT export back-end uses the file pointed to by this variable, 12750 such as ‘styles.xml’, for the final output. It can take one of the 12751 following values: 12752 12753 ‘FILE.xml’ 12754 Use this file instead of the default ‘styles.xml’ 12755 12756 ‘FILE.odt’ or ‘FILE.ott’ 12757 Use the ‘styles.xml’ contained in the specified OpenDocument 12758 Text or Template file 12759 12760 ‘FILE.odt’ or ‘FILE.ott’ and a subset of included files 12761 Use the ‘styles.xml’ contained in the specified OpenDocument 12762 Text or Template file. Additionally extract the specified 12763 member files and embed those within the final ODT document. 12764 12765 Use this option if the ‘styles.xml’ file references additional 12766 files like header and footer images. 12767 12768 ‘nil’ 12769 Use the default ‘styles.xml’. 12770 12771‘org-odt-content-template-file’ 12772 Use this variable to specify the blank ‘content.xml’ used in the 12773 final output. 12774 12775Creating one-off styles 12776....................... 12777 12778The ODT export back-end can read embedded raw OpenDocument XML from the 12779Org file. Such direct formatting is useful for one-off instances. 12780 12781Embedding ODT tags as part of regular text 12782 Enclose OpenDocument syntax in ‘@@odt:...@@’ for inline markup. 12783 For example, to highlight a region of text do the following: 12784 12785 @@odt:<text:span text:style-name="Highlight">This is highlighted 12786 text</text:span>@@. But this is regular text. 12787 12788 *Hint:* To see the above example in action, edit the ‘styles.xml’ 12789 (see *note Factory styles: x-orgodtstyles-xml.) and add a custom 12790 _Highlight_ style as shown below: 12791 12792 <style:style style:name="Highlight" style:family="text"> 12793 <style:text-properties fo:background-color="#ff0000"/> 12794 </style:style> 12795 12796Embedding a one-line OpenDocument XML 12797 The ODT export back-end can read one-liner options with ‘#+ODT:’ in 12798 the Org file. For example, to force a page break: 12799 12800 #+ODT: <text:p text:style-name="PageBreak"/> 12801 12802 *Hint:* To see the above example in action, edit your ‘styles.xml’ 12803 (see *note Factory styles: x-orgodtstyles-xml.) and add a custom 12804 ‘PageBreak’ style as shown below. 12805 12806 <style:style style:name="PageBreak" style:family="paragraph" 12807 style:parent-style-name="Text_20_body"> 12808 <style:paragraph-properties fo:break-before="page"/> 12809 </style:style> 12810 12811Embedding a block of OpenDocument XML 12812 The ODT export back-end can also read ODT export blocks for 12813 OpenDocument XML. Such blocks use the ‘#+BEGIN_EXPORT odt’ ... 12814 ‘#+END_EXPORT’ constructs. 12815 12816 For example, to create a one-off paragraph that uses bold text, do 12817 the following: 12818 12819 #+BEGIN_EXPORT odt 12820 <text:p text:style-name="Text_20_body_20_bold"> 12821 This paragraph is specially formatted and uses bold text. 12822 </text:p> 12823 #+END_EXPORT 12824 12825Customizing tables in ODT export 12826................................ 12827 12828Override the default table format by specifying a custom table style 12829with the ‘#+ATTR_ODT’ line. For a discussion on default formatting of 12830tables, see *note Tables in ODT export::. 12831 12832 This feature closely mimics the way table templates are defined in 12833the OpenDocument-v1.2 specification(1). 12834 12835 For quick preview of this feature, install the settings below and 12836export the table that follows: 12837 12838 (setq org-export-odt-table-styles 12839 (append org-export-odt-table-styles 12840 '(("TableWithHeaderRowAndColumn" "Custom" 12841 ((use-first-row-styles . t) 12842 (use-first-column-styles . t))) 12843 ("TableWithFirstRowandLastRow" "Custom" 12844 ((use-first-row-styles . t) 12845 (use-last-row-styles . t)))))) 12846 12847 #+ATTR_ODT: :style TableWithHeaderRowAndColumn 12848 | Name | Phone | Age | 12849 | Peter | 1234 | 17 | 12850 | Anna | 4321 | 25 | 12851 12852 The example above used ‘Custom’ template and installed two table 12853styles ‘TableWithHeaderRowAndColumn’ and ‘TableWithFirstRowandLastRow’. 12854*Important:* The OpenDocument styles needed for producing the above 12855template were pre-defined. They are available in the section marked 12856‘Custom Table Template’ in ‘OrgOdtContentTemplate.xml’ (see *note 12857Factory styles: x-orgodtcontenttemplate-xml.). For adding new 12858templates, define new styles there. 12859 12860 To use this feature proceed as follows: 12861 12862 1. Create a table template(2). 12863 12864 A table template is set of ‘table-cell’ and ‘paragraph’ styles for 12865 each of the following table cell categories: 12866 12867 • Body 12868 • First column 12869 • Last column 12870 • First row 12871 • Last row 12872 • Even row 12873 • Odd row 12874 • Even column 12875 • Odd Column 12876 12877 The names for the above styles must be chosen based on the name of 12878 the table template using a well-defined convention. 12879 12880 The naming convention is better illustrated with an example. For a 12881 table template with the name ‘Custom’, the needed style names are 12882 listed in the following table. 12883 12884 Cell type Cell style Paragraph style 12885 ---------------------------------------------------------------------------------- 12886 Body ‘CustomTableCell’ ‘CustomTableParagraph’ 12887 First column ‘CustomFirstColumnTableCell’ ‘CustomFirstColumnTableParagraph’ 12888 Last column ‘CustomLastColumnTableCell’ ‘CustomLastColumnTableParagraph’ 12889 First row ‘CustomFirstRowTableCell’ ‘CustomFirstRowTableParagraph’ 12890 Last row ‘CustomLastRowTableCell’ ‘CustomLastRowTableParagraph’ 12891 Even row ‘CustomEvenRowTableCell’ ‘CustomEvenRowTableParagraph’ 12892 Odd row ‘CustomOddRowTableCell’ ‘CustomOddRowTableParagraph’ 12893 Even column ‘CustomEvenColumnTableCell’ ‘CustomEvenColumnTableParagraph’ 12894 Odd column ‘CustomOddColumnTableCell’ ‘CustomOddColumnTableParagraph’ 12895 12896 To create a table template with the name ‘Custom’, define the above 12897 styles in the ‘<office:automatic-styles>’ ... 12898 ‘</office:automatic-styles>’ element of the content template file 12899 (see *note Factory styles: x-orgodtcontenttemplate-xml.). 12900 12901 2. Define a table style(3). 12902 12903 To define a table style, create an entry for the style in the 12904 variable ‘org-odt-table-styles’ and specify the following: 12905 12906 • the name of the table template created in step (1), 12907 • the set of cell styles in that template that are to be 12908 activated. 12909 12910 For example, the entry below defines two different table styles 12911 ‘TableWithHeaderRowAndColumn’ and ‘TableWithFirstRowandLastRow’ 12912 based on the same template ‘Custom’. The styles achieve their 12913 intended effect by selectively activating the individual cell 12914 styles in that template. 12915 12916 (setq org-export-odt-table-styles 12917 (append org-export-odt-table-styles 12918 '(("TableWithHeaderRowAndColumn" "Custom" 12919 ((use-first-row-styles . t) 12920 (use-first-column-styles . t))) 12921 ("TableWithFirstRowandLastRow" "Custom" 12922 ((use-first-row-styles . t) 12923 (use-last-row-styles . t)))))) 12924 12925 3. Associate a table with the table style. 12926 12927 To do this, specify the table style created in step (2) as part of 12928 the ‘ATTR_ODT’ line as shown below. 12929 12930 #+ATTR_ODT: :style TableWithHeaderRowAndColumn 12931 | Name | Phone | Age | 12932 | Peter | 1234 | 17 | 12933 | Anna | 4321 | 25 | 12934 12935Validating OpenDocument XML 12936........................... 12937 12938Sometimes ODT format files may not open due to ‘.odt’ file corruption. 12939To verify if such a file is corrupt, validate it against the 12940OpenDocument Relax NG Compact (RNC) syntax schema. But first the ‘.odt’ 12941files have to be decompressed using ‘zip’. Note that ‘.odt’ files are 12942ZIP archives: *note (emacs)File Archives::. The contents of ODT files 12943are in XML. For general help with validation—and schema-sensitive 12944editing—of XML files: *note (nxml-mode)Introduction::. 12945 12946 Customize ‘org-odt-schema-dir’ to point to a directory with 12947OpenDocument RNC files and the needed schema-locating rules. The ODT 12948export back-end takes care of updating the ‘rng-schema-locating-files’. 12949 12950 ---------- Footnotes ---------- 12951 12952 (1) OpenDocument-v1.2 Specification 12953(http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html) 12954 12955 (2) See the ‘<table:table-template>’ element of the OpenDocument-v1.2 12956specification. 12957 12958 (3) See the attributes ‘table:template-name’, 12959‘table:use-first-row-styles’, ‘table:use-last-row-styles’, 12960‘table:use-first-column-styles’, ‘table:use-last-column-styles’, 12961‘table:use-banding-rows-styles’, and ‘table:use-banding-column-styles’ 12962of the ‘<table:table>’ element in the OpenDocument-v1.2 specification. 12963 12964 12965File: org.info, Node: Org Export, Next: Texinfo Export, Prev: OpenDocument Text Export, Up: Exporting 12966 1296713.13 Org Export 12968================ 12969 12970_org_ export back-end creates a normalized version of the Org document 12971in current buffer. The exporter evaluates Babel code (see *note 12972Evaluating Code Blocks::) and removes content specific to other 12973back-ends. 12974 12975Org export commands 12976------------------- 12977 12978‘C-c C-e O o’ (‘org-org-export-to-org’) 12979 Export as an Org file with a ‘.org’ extension. For ‘myfile.org’, 12980 Org exports to ‘myfile.org.org’, overwriting without warning. 12981 12982‘C-c C-e O v’ (~~) 12983 Export to an Org file, then open it. 12984 12985 12986File: org.info, Node: Texinfo Export, Next: iCalendar Export, Prev: Org Export, Up: Exporting 12987 1298813.14 Texinfo Export 12989==================== 12990 12991* Menu: 12992 12993* Texinfo export commands:: Invoking commands. 12994* Texinfo specific export settings:: Setting the environment. 12995* Texinfo file header:: Generating the header. 12996* Texinfo title and copyright page:: Creating preamble pages. 12997* Info directory file:: Installing a manual in Info file hierarchy. 12998* Headings and sectioning structure:: Building document structure. 12999* Indices:: Creating indices. 13000* Quoting Texinfo code:: Incorporating literal Texinfo code. 13001* Plain lists in Texinfo export:: List attributes. 13002* Tables in Texinfo export:: Table attributes. 13003* Images in Texinfo export:: Image attributes. 13004* Quotations in Texinfo export:: Quote block attributes. 13005* Special blocks in Texinfo export:: Special block attributes. 13006* A Texinfo example:: Processing Org to Texinfo. 13007 13008 13009File: org.info, Node: Texinfo export commands, Next: Texinfo specific export settings, Up: Texinfo Export 13010 1301113.14.1 Texinfo export commands 13012------------------------------- 13013 13014‘C-c C-e i t’ (‘org-texinfo-export-to-texinfo’) 13015 Export as a Texinfo file with ‘.texi’ extension. For ‘myfile.org’, 13016 Org exports to ‘myfile.texi’, overwriting without warning. 13017 13018‘C-c C-e i i’ (‘org-texinfo-export-to-info’) 13019 Export to Texinfo format first and then process it to make an Info 13020 file. To generate other formats, such as DocBook, customize the 13021 ‘org-texinfo-info-process’ variable. 13022 13023 13024File: org.info, Node: Texinfo specific export settings, Next: Texinfo file header, Prev: Texinfo export commands, Up: Texinfo Export 13025 1302613.14.2 Texinfo specific export settings 13027---------------------------------------- 13028 13029The Texinfo export back-end has several additional keywords for 13030customizing Texinfo output. Setting these keywords works similar to the 13031general options (see *note Export Settings::). 13032 13033‘SUBTITLE’ 13034 The document subtitle. 13035 13036‘SUBAUTHOR’ 13037 Additional authors for the document. 13038 13039‘TEXINFO_FILENAME’ 13040 The Texinfo filename. 13041 13042‘TEXINFO_CLASS’ 13043 The default document class (‘org-texinfo-default-class’), which 13044 must be a member of ‘org-texinfo-classes’. 13045 13046‘TEXINFO_HEADER’ 13047 Arbitrary lines inserted at the end of the header. 13048 13049‘TEXINFO_POST_HEADER’ 13050 Arbitrary lines inserted after the end of the header. 13051 13052‘TEXINFO_DIR_CATEGORY’ 13053 The directory category of the document. 13054 13055‘TEXINFO_DIR_TITLE’ 13056 The directory title of the document. 13057 13058‘TEXINFO_DIR_DESC’ 13059 The directory description of the document. 13060 13061‘TEXINFO_PRINTED_TITLE’ 13062 The printed title of the document. 13063 13064 13065File: org.info, Node: Texinfo file header, Next: Texinfo title and copyright page, Prev: Texinfo specific export settings, Up: Texinfo Export 13066 1306713.14.3 Texinfo file header 13068--------------------------- 13069 13070After creating the header for a Texinfo file, the Texinfo back-end 13071automatically generates a name and destination path for the Info file. 13072To override this default with a more sensible path and name, specify the 13073‘TEXINFO_FILENAME’ keyword. 13074 13075 Along with the output’s file name, the Texinfo header also contains 13076language details (see *note Export Settings::) and encoding system as 13077set in the ‘org-texinfo-coding-system’ variable. Insert 13078‘TEXINFO_HEADER’ keywords for each additional command in the header, for 13079example: 13080 13081 #+TEXINFO_HEADER: @synindex 13082 13083 Instead of repeatedly installing the same set of commands, define a 13084class in ‘org-texinfo-classes’ once, and then activate it in the 13085document by setting the ‘TEXINFO_CLASS’ keyword to that class. 13086 13087 13088File: org.info, Node: Texinfo title and copyright page, Next: Info directory file, Prev: Texinfo file header, Up: Texinfo Export 13089 1309013.14.4 Texinfo title and copyright page 13091---------------------------------------- 13092 13093The default template for hard copy output has a title page with ‘TITLE’ 13094and ‘AUTHOR’ keywords (see *note Export Settings::). To replace the 13095regular title with something different for the printed version, use the 13096‘TEXINFO_PRINTED_TITLE’ and ‘SUBTITLE’ keywords. Both expect raw 13097Texinfo code for setting their values. 13098 13099 If one ‘AUTHOR’ line is not sufficient, add multiple ‘SUBAUTHOR’ 13100keywords. They have to be set in raw Texinfo code. 13101 13102 #+AUTHOR: Jane Smith 13103 #+SUBAUTHOR: John Doe 13104 #+TEXINFO_PRINTED_TITLE: This Long Title@@inlinefmt{tex,@*} Is Broken in @TeX{} 13105 13106 Copying material is defined in a dedicated headline with a non-‘nil’ 13107‘COPYING’ property. The back-end inserts the contents within a 13108‘@copying’ command at the beginning of the document. The heading itself 13109does not appear in the structure of the document. 13110 13111 Copyright information is printed on the back of the title page. 13112 13113 * Legalese 13114 :PROPERTIES: 13115 :COPYING: t 13116 :END: 13117 13118 This is a short example of a complete Texinfo file, version 1.0. 13119 13120 Copyright \copy 2016 Free Software Foundation, Inc. 13121 13122 13123File: org.info, Node: Info directory file, Next: Headings and sectioning structure, Prev: Texinfo title and copyright page, Up: Texinfo Export 13124 1312513.14.5 Info directory file 13126--------------------------- 13127 13128The end result of the Texinfo export process is the creation of an Info 13129file. This Info file’s metadata has variables for category, title, and 13130description: ‘TEXINFO_DIR_CATEGORY’, ‘TEXINFO_DIR_TITLE’, and 13131‘TEXINFO_DIR_DESC’ keywords that establish where in the Info hierarchy 13132the file fits. 13133 13134 Here is an example that writes to the Info directory file: 13135 13136 #+TEXINFO_DIR_CATEGORY: Emacs 13137 #+TEXINFO_DIR_TITLE: Org Mode: (org) 13138 #+TEXINFO_DIR_DESC: Outline-based notes management and organizer 13139 13140 13141File: org.info, Node: Headings and sectioning structure, Next: Indices, Prev: Info directory file, Up: Texinfo Export 13142 1314313.14.6 Headings and sectioning structure 13144----------------------------------------- 13145 13146The Texinfo export back-end uses a pre-defined scheme to convert Org 13147headlines to equivalent Texinfo structuring commands. A scheme like 13148this maps top-level headlines to numbered chapters tagged as ‘@chapter’ 13149and lower-level headlines to unnumbered chapters tagged as 13150‘@unnumbered’. To override such mappings to introduce ‘@part’ or other 13151Texinfo structuring commands, define a new class in 13152‘org-texinfo-classes’. Activate the new class with the ‘TEXINFO_CLASS’ 13153keyword. When no new class is defined and activated, the Texinfo export 13154back-end defaults to the ‘org-texinfo-default-class’. 13155 13156 If an Org headline’s level has no associated Texinfo structuring 13157command, or is below a certain threshold (see *note Export Settings::), 13158then the Texinfo export back-end makes it into a list item. 13159 13160 The Texinfo export back-end makes any headline with a non-‘nil’ 13161‘APPENDIX’ property into an appendix. This happens independent of the 13162Org headline level or the ‘TEXINFO_CLASS’ keyword. 13163 13164 The Texinfo export back-end creates a menu entry after the Org 13165headline for each regular sectioning structure. To override this with a 13166shorter menu entry, use the ‘ALT_TITLE’ property (see *note Table of 13167Contents::). Texinfo menu entries also have an option for a longer 13168‘DESCRIPTION’ property. Here’s an example that uses both to override 13169the default menu entry: 13170 13171 * Controlling Screen Display 13172 :PROPERTIES: 13173 :ALT_TITLE: Display 13174 :DESCRIPTION: Controlling Screen Display 13175 :END: 13176 13177 The text before the first headline belongs to the _Top_ node, i.e., 13178the node in which a reader enters an Info manual. As such, it is 13179expected not to appear in printed output generated from the ‘.texi’ 13180file. See *note (texinfo)The Top Node::, for more information. 13181 13182 13183File: org.info, Node: Indices, Next: Quoting Texinfo code, Prev: Headings and sectioning structure, Up: Texinfo Export 13184 1318513.14.7 Indices 13186--------------- 13187 13188The Texinfo export back-end recognizes these indexing keywords if used 13189in the Org file: ‘CINDEX’, ‘FINDEX’, ‘KINDEX’, ‘PINDEX’, ‘TINDEX’ and 13190‘VINDEX’. Write their value as verbatim Texinfo code; in particular, 13191‘{’, ‘}’ and ‘@’ characters need to be escaped with ‘@’ if they do not 13192belong to a Texinfo command. 13193 13194 #+CINDEX: Defining indexing entries 13195 13196 For the back-end to generate an index entry for a headline, set the 13197‘INDEX’ property to ‘cp’ or ‘vr’. These abbreviations come from Texinfo 13198that stand for concept index and variable index. The Texinfo manual has 13199abbreviations for all other kinds of indexes. The back-end exports the 13200headline as an unnumbered chapter or section command, and then inserts 13201the index after its contents. 13202 13203 * Concept Index 13204 :PROPERTIES: 13205 :INDEX: cp 13206 :END: 13207 13208 13209File: org.info, Node: Quoting Texinfo code, Next: Plain lists in Texinfo export, Prev: Indices, Up: Texinfo Export 13210 1321113.14.8 Quoting Texinfo code 13212---------------------------- 13213 13214Use any of the following three methods to insert or escape raw Texinfo 13215code: 13216 13217 Richard @@texinfo:@sc{@@Stallman@@texinfo:}@@ commence' GNU. 13218 13219 #+TEXINFO: @need800 13220 This paragraph is preceded by... 13221 13222 #+BEGIN_EXPORT texinfo 13223 @auindex Johnson, Mark 13224 @auindex Lakoff, George 13225 #+END_EXPORT 13226 13227 13228File: org.info, Node: Plain lists in Texinfo export, Next: Tables in Texinfo export, Prev: Quoting Texinfo code, Up: Texinfo Export 13229 1323013.14.9 Plain lists in Texinfo export 13231------------------------------------- 13232 13233The Texinfo export back-end by default converts description lists in the 13234Org file using the default command ‘@table’, which results in a table 13235with two columns. To change this behavior, set ‘:table-type’ attribute 13236to either ‘ftable’ or ‘vtable’ value. For more information, see *note 13237(texinfo)Two-column Tables::. 13238 13239 The Texinfo export back-end by default also applies a text highlight 13240based on the defaults stored in ‘org-texinfo-table-default-markup’. To 13241override the default highlight command, specify another one with the 13242‘:indic’ attribute. 13243 13244 Org syntax is limited to one entry per list item. Nevertheless, the 13245Texinfo export back-end can split that entry according to any text 13246provided through the ‘:sep’ attribute. Each part then becomes a new 13247entry in the first column of the table. 13248 13249 The following example illustrates all the attributes above: 13250 13251 #+ATTR_TEXINFO: :table-type vtable :sep , :indic asis 13252 - foo, bar :: This is the common text for variables foo and bar. 13253 13254becomes 13255 13256 @vtable @asis 13257 @item foo 13258 @itemx bar 13259 This is the common text for variables foo and bar. 13260 @end table 13261 13262 Ordered lists are numbered when exported to Texinfo format. Such 13263numbering obeys any counter (see *note Plain Lists::) in the first item 13264of the list. The ‘:enum’ attribute also let you start the list at a 13265specific number, or switch to a lettered list, as illustrated here 13266 13267 #+ATTR_TEXINFO: :enum A 13268 1. Alpha 13269 2. Bravo 13270 3. Charlie 13271 13272 13273File: org.info, Node: Tables in Texinfo export, Next: Images in Texinfo export, Prev: Plain lists in Texinfo export, Up: Texinfo Export 13274 1327513.14.10 Tables in Texinfo export 13276--------------------------------- 13277 13278When exporting tables, the Texinfo export back-end uses the widest cell 13279width in each column. To override this and instead specify as fractions 13280of line length, use the ‘:columns’ attribute. See example below. 13281 13282 #+ATTR_TEXINFO: :columns .5 .5 13283 | a cell | another cell | 13284 13285 13286File: org.info, Node: Images in Texinfo export, Next: Quotations in Texinfo export, Prev: Tables in Texinfo export, Up: Texinfo Export 13287 1328813.14.11 Images in Texinfo export 13289--------------------------------- 13290 13291Insert a file link to the image in the Org file, and the Texinfo export 13292back-end inserts the image. These links must have the usual supported 13293image extensions and no descriptions. To scale the image, use ‘:width’ 13294and ‘:height’ attributes. For alternate text, use ‘:alt’ and specify 13295the text using Texinfo code, as shown in the example: 13296 13297 #+ATTR_TEXINFO: :width 1in :alt Alternate @i{text} 13298 [[ridt.pdf]] 13299 13300 13301File: org.info, Node: Quotations in Texinfo export, Next: Special blocks in Texinfo export, Prev: Images in Texinfo export, Up: Texinfo Export 13302 1330313.14.12 Quotations in Texinfo export 13304------------------------------------- 13305 13306You can write the text of a quotation within a quote block (see *note 13307Paragraphs::). You may also emphasize some text at the beginning of the 13308quotation with the ‘:tag’ attribute. 13309 13310 #+ATTR_TEXINFO: :tag Warning 13311 #+BEGIN_QUOTE 13312 Striking your thumb with a hammer may cause severe pain and discomfort. 13313 #+END_QUOTE 13314 13315 To specify the author of the quotation, use the ‘:author’ attribute. 13316 13317 #+ATTR_TEXINFO: :author King Arthur 13318 #+BEGIN_QUOTE 13319 The Lady of the Lake, her arm clad in the purest shimmering samite, 13320 held aloft Excalibur from the bosom of the water, signifying by divine 13321 providence that I, Arthur, was to carry Excalibur. That is why I am 13322 your king. 13323 #+END_QUOTE 13324 13325 13326File: org.info, Node: Special blocks in Texinfo export, Next: A Texinfo example, Prev: Quotations in Texinfo export, Up: Texinfo Export 13327 1332813.14.13 Special blocks in Texinfo export 13329----------------------------------------- 13330 13331The Texinfo export back-end converts special blocks to commands with the 13332same name. It also adds any ‘:options’ attributes to the end of the 13333command, as shown in this example: 13334 13335 #+ATTR_TEXINFO: :options org-org-export-to-org ... 13336 #+BEGIN_defun 13337 A somewhat obsessive function name. 13338 #+END_defun 13339 13340becomes 13341 13342 @defun org-org-export-to-org ... 13343 A somewhat obsessive function name. 13344 @end defun 13345 13346 13347File: org.info, Node: A Texinfo example, Prev: Special blocks in Texinfo export, Up: Texinfo Export 13348 1334913.14.14 A Texinfo example 13350-------------------------- 13351 13352Here is a more detailed example Org file. See *note (texinfo)GNU Sample 13353Texts:: for an equivalent example using Texinfo code. 13354 13355 #+TITLE: GNU Sample {{{version}}} 13356 #+SUBTITLE: for version {{{version}}}, {{{updated}}} 13357 #+AUTHOR: A.U. Thor 13358 #+EMAIL: bug-sample@gnu.org 13359 13360 #+OPTIONS: ':t toc:t author:t email:t 13361 #+LANGUAGE: en 13362 13363 #+MACRO: version 2.0 13364 #+MACRO: updated last updated 4 March 2014 13365 13366 #+TEXINFO_FILENAME: sample.info 13367 #+TEXINFO_HEADER: @syncodeindex pg cp 13368 13369 #+TEXINFO_DIR_CATEGORY: Texinfo documentation system 13370 #+TEXINFO_DIR_TITLE: sample: (sample) 13371 #+TEXINFO_DIR_DESC: Invoking sample 13372 13373 #+TEXINFO_PRINTED_TITLE: GNU Sample 13374 13375 This manual is for GNU Sample (version {{{version}}}, 13376 {{{updated}}}). 13377 13378 * Copying 13379 :PROPERTIES: 13380 :COPYING: t 13381 :END: 13382 13383 This manual is for GNU Sample (version {{{version}}}, 13384 {{{updated}}}), which is an example in the Texinfo documentation. 13385 13386 Copyright \copy 2016 Free Software Foundation, Inc. 13387 13388 #+BEGIN_QUOTE 13389 Permission is granted to copy, distribute and/or modify this 13390 document under the terms of the GNU Free Documentation License, 13391 Version 1.3 or any later version published by the Free Software 13392 Foundation; with no Invariant Sections, with no Front-Cover Texts, 13393 and with no Back-Cover Texts. A copy of the license is included in 13394 the section entitled "GNU Free Documentation License". 13395 #+END_QUOTE 13396 13397 * Invoking sample 13398 13399 #+PINDEX: sample 13400 #+CINDEX: invoking @command{sample} 13401 13402 This is a sample manual. There is no sample program to invoke, but 13403 if there were, you could see its basic usage and command line 13404 options here. 13405 13406 * GNU Free Documentation License 13407 :PROPERTIES: 13408 :APPENDIX: t 13409 :END: 13410 13411 #+INCLUDE: fdl.org 13412 13413 * Index 13414 :PROPERTIES: 13415 :INDEX: cp 13416 :END: 13417 13418 13419File: org.info, Node: iCalendar Export, Next: Other Built-in Back-ends, Prev: Texinfo Export, Up: Exporting 13420 1342113.15 iCalendar Export 13422====================== 13423 13424A large part of Org mode’s interoperability success is its ability to 13425easily export to or import from external applications. The iCalendar 13426export back-end takes calendar data from Org files and exports to the 13427standard iCalendar format. 13428 13429 The iCalendar export back-end can also incorporate TODO entries based 13430on the configuration of the ‘org-icalendar-include-todo’ variable. The 13431back-end exports plain timestamps as ‘VEVENT’, TODO items as ‘VTODO’, 13432and also create events from deadlines that are in non-TODO items. The 13433back-end uses the deadlines and scheduling dates in Org TODO items for 13434setting the start and due dates for the iCalendar TODO entry. Consult 13435the ‘org-icalendar-use-deadline’ and ‘org-icalendar-use-scheduled’ 13436variables for more details. 13437 13438 For tags on the headline, the iCalendar export back-end makes them 13439into iCalendar categories. To tweak the inheritance of tags and TODO 13440states, configure the variable ‘org-icalendar-categories’. To assign 13441clock alarms based on time, configure the ‘org-icalendar-alarm-time’ 13442variable. 13443 13444 The iCalendar format standard requires globally unique identifier—or 13445UID—for each entry. The iCalendar export back-end creates UIDs during 13446export. To save a copy of the UID in the Org file set the variable 13447‘org-icalendar-store-UID’. The back-end looks for the ‘ID’ property of 13448the entry for re-using the same UID for subsequent exports. 13449 13450 Since a single Org entry can result in multiple iCalendar 13451entries—timestamp, deadline, scheduled item, or TODO item—Org adds 13452prefixes to the UID, depending on which part of the Org entry triggered 13453the creation of the iCalendar entry. Prefixing ensures UIDs remains 13454unique, yet enable synchronization programs trace the connections. 13455 13456‘C-c C-e c f’ (‘org-icalendar-export-to-ics’) 13457 Create iCalendar entries from the current Org buffer and store them 13458 in the same directory, using a file extension ‘.ics’. 13459 13460‘C-c C-e c a’ (‘org-icalendar-export-agenda-files’) 13461 Create iCalendar entries from Org files in ‘org-agenda-files’ and 13462 store in a separate iCalendar file for each Org file. 13463 13464‘C-c C-e c c’ (‘org-icalendar-combine-agenda-files’) 13465 Create a combined iCalendar file from Org files in 13466 ‘org-agenda-files’ and write it to 13467 ‘org-icalendar-combined-agenda-file’ file name. 13468 13469 The iCalendar export back-end includes ‘SUMMARY’, ‘DESCRIPTION’, 13470‘LOCATION’, ‘TIMEZONE’ and ‘CLASS’ properties from the Org entries when 13471exporting. To force the back-end to inherit the ‘LOCATION’, ‘TIMEZONE’ 13472and ‘CLASS’ properties, configure the ‘org-use-property-inheritance’ 13473variable. 13474 13475 When Org entries do not have ‘SUMMARY’, ‘DESCRIPTION’, ‘LOCATION’ and 13476‘CLASS’ properties, the iCalendar export back-end derives the summary 13477from the headline, and derives the description from the body of the Org 13478item. The ‘org-icalendar-include-body’ variable limits the maximum 13479number of characters of the content are turned into its description. 13480 13481 The ‘TIMEZONE’ property can be used to specify a per-entry time zone, 13482and is applied to any entry with timestamp information. Time zones 13483should be specified as per the IANA time zone database format, e.g., 13484‘Asia/Almaty’. Alternately, the property value can be ‘UTC’, to force 13485UTC time for this entry only. 13486 13487 The ‘CLASS’ property can be used to specify a per-entry visibility 13488class or access restrictions, and is applied to any entry with class 13489information. The iCalendar standard defines three visibility classes: 13490‘PUBLIC’ 13491 The entry is publicly visible (this is the default). 13492‘CONFIDENTIAL’ 13493 Only a limited group of clients get access to the event. 13494‘PRIVATE’ 13495 The entry can be retrieved only by its owner. 13496 The server should treat unknown class properties the same as 13497‘PRIVATE’. 13498 13499 Exporting to iCalendar format depends in large part on the 13500capabilities of the destination application. Some are more lenient than 13501others. Consult the Org mode FAQ for advice on specific applications. 13502 13503 13504File: org.info, Node: Other Built-in Back-ends, Next: Advanced Export Configuration, Prev: iCalendar Export, Up: Exporting 13505 1350613.16 Other Built-in Back-ends 13507============================== 13508 13509Other export back-ends included with Org are: 13510 13511 • ‘ox-man.el’: Export to a man page. 13512 13513 To activate such back-ends, either customize ‘org-export-backends’ or 13514load directly with ‘(require 'ox-man)’. On successful load, the 13515back-end adds new keys in the export dispatcher (see *note The Export 13516Dispatcher::). 13517 13518 Follow the comment section of such files, for example, ‘ox-man.el’, 13519for usage and configuration details. 13520 13521 13522File: org.info, Node: Advanced Export Configuration, Next: Export in Foreign Buffers, Prev: Other Built-in Back-ends, Up: Exporting 13523 1352413.17 Advanced Export Configuration 13525=================================== 13526 13527Hooks 13528----- 13529 13530The export process executes two hooks before the actual exporting 13531begins. The first hook, ‘org-export-before-processing-hook’, runs 13532before any expansions of macros, Babel code, and include keywords in the 13533buffer. The second hook, ‘org-export-before-parsing-hook’, runs before 13534the buffer is parsed. 13535 13536 Functions added to these hooks are called with a single argument: the 13537export back-end actually used, as a symbol. You may use them for heavy 13538duty structural modifications of the document. For example, you can 13539remove every headline in the buffer during export like this: 13540 13541 (defun my-headline-removal (backend) 13542 "Remove all headlines in the current buffer. 13543 BACKEND is the export back-end being used, as a symbol." 13544 (org-map-entries 13545 (lambda () (delete-region (point) (line-beginning-position 2))))) 13546 13547 (add-hook 'org-export-before-parsing-hook 'my-headline-removal) 13548 13549Filters 13550------- 13551 13552Filters are lists of functions to be applied to certain parts for a 13553given back-end. The output from the first function in the filter is 13554passed on to the next function in the filter. The final output is the 13555output from the final function in the filter. 13556 13557 The Org export process has many filter sets applicable to different 13558types of objects, plain text, parse trees, export options, and final 13559output formats. The filters are named after the element type or object 13560type: ‘org-export-filter-TYPE-functions’, where TYPE is the type 13561targeted by the filter. Valid types are: 13562 13563body bold babel-call 13564center-block clock code 13565diary-sexp drawer dynamic-block 13566entity example-block export-block 13567export-snippet final-output fixed-width 13568footnote-definition footnote-reference headline 13569horizontal-rule inline-babel-call inline-src-block 13570inlinetask italic item 13571keyword latex-environment latex-fragment 13572line-break link node-property 13573options paragraph parse-tree 13574plain-list plain-text planning 13575property-drawer quote-block radio-target 13576section special-block src-block 13577statistics-cookie strike-through subscript 13578superscript table table-cell 13579table-row target timestamp 13580underline verbatim verse-block 13581 13582 Here is an example filter that replaces non-breaking spaces ‘ ’ in 13583the Org buffer with ‘~’ for the LaTeX back-end. 13584 13585 (defun my-latex-filter-nobreaks (text backend info) 13586 "Ensure \" \" are properly handled in LaTeX export." 13587 (when (org-export-derived-backend-p backend 'latex) 13588 (replace-regexp-in-string " " "~" text))) 13589 13590 (add-to-list 'org-export-filter-plain-text-functions 13591 'my-latex-filter-nobreaks) 13592 13593 A filter requires three arguments: the code to be transformed, the 13594name of the back-end, and some optional information about the export 13595process. The third argument can be safely ignored. Note the use of 13596‘org-export-derived-backend-p’ predicate that tests for _latex_ back-end 13597or any other back-end, such as _beamer_, derived from _latex_. 13598 13599Defining filters for individual files 13600------------------------------------- 13601 13602The Org export can filter not just for back-ends, but also for specific 13603files through the ‘BIND’ keyword. Here is an example with two filters; 13604one removes brackets from time stamps, and the other removes 13605strike-through text. The filter functions are defined in a code block 13606in the same Org file, which is a handy location for debugging. 13607 13608 #+BIND: org-export-filter-timestamp-functions (tmp-f-timestamp) 13609 #+BIND: org-export-filter-strike-through-functions (tmp-f-strike-through) 13610 #+BEGIN_SRC emacs-lisp :exports results :results none 13611 (defun tmp-f-timestamp (s backend info) 13612 (replace-regexp-in-string "&[lg]t;\\|[][]" "" s)) 13613 (defun tmp-f-strike-through (s backend info) "") 13614 #+END_SRC 13615 13616Extending an existing back-end 13617------------------------------ 13618 13619Some parts of the conversion process can be extended for certain 13620elements so as to introduce a new or revised translation. That is how 13621the HTML export back-end was extended to handle Markdown format. The 13622extensions work seamlessly so any aspect of filtering not done by the 13623extended back-end is handled by the original back-end. Of all the 13624export customization in Org, extending is very powerful as it operates 13625at the parser level. 13626 13627 For this example, make the _ascii_ back-end display the language used 13628in a source code block. Also make it display only when some attribute 13629is non-‘nil’, like the following: 13630 13631 #+ATTR_ASCII: :language t 13632 13633 Then extend ASCII back-end with a custom “my-ascii” back-end. 13634 13635 (defun my-ascii-src-block (src-block contents info) 13636 "Transcode a SRC-BLOCK element from Org to ASCII. 13637 CONTENTS is nil. INFO is a plist used as a communication 13638 channel." 13639 (if (not (org-export-read-attribute :attr_ascii src-block :language)) 13640 (org-export-with-backend 'ascii src-block contents info) 13641 (concat 13642 (format ",--[ %s ]--\n%s`----" 13643 (org-element-property :language src-block) 13644 (replace-regexp-in-string 13645 "^" "| " 13646 (org-element-normalize-string 13647 (org-export-format-code-default src-block info))))))) 13648 13649 (org-export-define-derived-backend 'my-ascii 'ascii 13650 :translate-alist '((src-block . my-ascii-src-block))) 13651 13652 The ‘my-ascii-src-block’ function looks at the attribute above the 13653current element. If not true, hands over to _ascii_ back-end. If true, 13654which it is in this example, it creates a box around the code and leaves 13655room for the inserting a string for language. The last form creates the 13656new back-end that springs to action only when translating ‘src-block’ 13657type elements. 13658 13659 To use the newly defined back-end, evaluate the following from an Org 13660buffer: 13661 13662 (org-export-to-buffer 'my-ascii "*Org MY-ASCII Export*") 13663 13664 Further steps to consider would be an interactive function, 13665self-installing an item in the export dispatcher menu, and other 13666user-friendly improvements. 13667 13668 13669File: org.info, Node: Export in Foreign Buffers, Prev: Advanced Export Configuration, Up: Exporting 13670 1367113.18 Export in Foreign Buffers 13672=============================== 13673 13674The export back-ends in Org often include commands to convert selected 13675regions. A convenient feature of this in-place conversion is that the 13676exported output replaces the original source. Here are such functions: 13677 13678‘org-ascii-convert-region-to-ascii’ 13679 Convert the selected region into ASCII. 13680 13681‘org-ascii-convert-region-to-utf8’ 13682 Convert the selected region into UTF-8. 13683 13684‘org-html-convert-region-to-html’ 13685 Convert the selected region into HTML. 13686 13687‘org-latex-convert-region-to-latex’ 13688 Convert the selected region into LaTeX. 13689 13690‘org-texinfo-convert-region-to-texinfo’ 13691 Convert the selected region into Texinfo. 13692 13693‘org-md-convert-region-to-md’ 13694 Convert the selected region into Markdown. 13695 13696 In-place conversions are particularly handy for quick conversion of 13697tables and lists in foreign buffers. For example, in an HTML buffer, 13698write a list in Org syntax, select it, and convert it to HTML with ‘M-x 13699org-html-convert-region-to-html’. 13700 13701* Menu: 13702 13703* Bare HTML:: Exporting HTML without CSS, Javascript, etc. 13704 13705 13706File: org.info, Node: Bare HTML, Up: Export in Foreign Buffers 13707 1370813.18.1 Exporting to minimal HTML 13709--------------------------------- 13710 13711If you want to output a minimal HTML file, with no CSS, no Javascript, 13712no preamble or postamble, here are the variable you would need to set: 13713 13714 (setq org-html-head "" 13715 org-html-head-extra "" 13716 org-html-head-include-default-style nil 13717 org-html-head-include-scripts nil 13718 org-html-preamble nil 13719 org-html-postamble nil 13720 org-html-use-infojs nil) 13721 13722 13723File: org.info, Node: Publishing, Next: Working with Source Code, Prev: Exporting, Up: Top 13724 1372514 Publishing 13726************* 13727 13728Org includes a publishing management system that allows you to configure 13729automatic HTML conversion of _projects_ composed of interlinked Org 13730files. You can also configure Org to automatically upload your exported 13731HTML pages and related attachments, such as images and source code 13732files, to a web server. 13733 13734 You can also use Org to convert files into PDF, or even combine HTML 13735and PDF conversion so that files are available in both formats on the 13736server. 13737 13738 Publishing has been contributed to Org by David O’Toole. 13739 13740* Menu: 13741 13742* Configuration:: Defining projects. 13743* Uploading Files:: How to get files up on the server. 13744* Sample Configuration:: Example projects. 13745* Triggering Publication:: Publication commands. 13746 13747 13748File: org.info, Node: Configuration, Next: Uploading Files, Up: Publishing 13749 1375014.1 Configuration 13751================== 13752 13753Publishing needs significant configuration to specify files, destination 13754and many other properties of a project. 13755 13756* Menu: 13757 13758* Project alist:: The central configuration variable. 13759* Sources and destinations:: From here to there. 13760* Selecting files:: What files are part of the project? 13761* Publishing action:: Setting the function doing the publishing. 13762* Publishing options:: Tweaking HTML/LaTeX export. 13763* Publishing links:: Which links keep working after publishing? 13764* Site map:: Generating a list of all pages. 13765* Generating an index:: An index that reaches across pages. 13766 13767 13768File: org.info, Node: Project alist, Next: Sources and destinations, Up: Configuration 13769 1377014.1.1 The variable ‘org-publish-project-alist’ 13771----------------------------------------------- 13772 13773Publishing is configured almost entirely through setting the value of 13774one variable, called ‘org-publish-project-alist’. Each element of the 13775list configures one project, and may be in one of the two following 13776forms: 13777 13778 ("project-name" :property value :property value ...) 13779 13780i.e., a well-formed property list with alternating keys and values, or: 13781 13782 ("project-name" :components ("project-name" "project-name" ...)) 13783 13784 In both cases, projects are configured by specifying property values. 13785A project defines the set of files that are to be published, as well as 13786the publishing configuration to use when publishing those files. When a 13787project takes the second form listed above, the individual members of 13788the ‘:components’ property are taken to be sub-projects, which group 13789together files requiring different publishing options. When you publish 13790such a “meta-project”, all the components are also published, in the 13791sequence given. 13792 13793 13794File: org.info, Node: Sources and destinations, Next: Selecting files, Prev: Project alist, Up: Configuration 13795 1379614.1.2 Sources and destinations for files 13797----------------------------------------- 13798 13799Most properties are optional, but some should always be set. In 13800particular, Org needs to know where to look for source files, and where 13801to put published files. 13802 13803‘:base-directory’ 13804 Directory containing publishing source files. 13805 13806‘:publishing-directory’ 13807 Directory where output files are published. You can directly 13808 publish to a webserver using a file name syntax appropriate for the 13809 Emacs tramp package. Or you can publish to a local directory and 13810 use external tools to upload your website (see *note Uploading 13811 Files::). 13812 13813‘:preparation-function’ 13814 Function or list of functions to be called before starting the 13815 publishing process, for example, to run ‘make’ for updating files 13816 to be published. Each preparation function is called with a single 13817 argument, the project property list. 13818 13819‘:completion-function’ 13820 Function or list of functions called after finishing the publishing 13821 process, for example, to change permissions of the resulting files. 13822 Each completion function is called with a single argument, the 13823 project property list. 13824 13825 13826File: org.info, Node: Selecting files, Next: Publishing action, Prev: Sources and destinations, Up: Configuration 13827 1382814.1.3 Selecting files 13829---------------------- 13830 13831By default, all files with extension ‘.org’ in the base directory are 13832considered part of the project. This can be modified by setting the 13833following properties 13834 13835‘:base-extension’ 13836 Extension—without the dot—of source files. This actually is a 13837 regular expression. Set this to the symbol ‘any’ if you want to 13838 get all files in ‘:base-directory’, even without extension. 13839 13840‘:exclude’ 13841 Regular expression to match file names that should not be 13842 published, even though they have been selected on the basis of 13843 their extension. 13844 13845‘:include’ 13846 List of files to be included regardless of ‘:base-extension’ and 13847 ‘:exclude’. 13848 13849‘:recursive’ 13850 Non-‘nil’ means, check base-directory recursively for files to 13851 publish. 13852 13853 13854File: org.info, Node: Publishing action, Next: Publishing options, Prev: Selecting files, Up: Configuration 13855 1385614.1.4 Publishing action 13857------------------------ 13858 13859Publishing means that a file is copied to the destination directory and 13860possibly transformed in the process. The default transformation is to 13861export Org files as HTML files, and this is done by the function 13862‘org-publish-org-to-html’ which calls the HTML exporter (see *note HTML 13863Export::). But you can also publish your content as PDF files using 13864‘org-publish-org-to-pdf’, or as ASCII, Texinfo, etc., using the 13865corresponding functions. 13866 13867 If you want to publish the Org file as an ‘.org’ file but with 13868_archived_, _commented_, and _tag-excluded_ trees removed, use 13869‘org-publish-org-to-org’. This produces ‘file.org’ and put it in the 13870publishing directory. If you want a htmlized version of this file, set 13871the parameter ‘:htmlized-source’ to ‘t’. It produces ‘file.org.html’ in 13872the publishing directory(1). 13873 13874 Other files like images only need to be copied to the publishing 13875destination; for this you can use ‘org-publish-attachment’. For non-Org 13876files, you always need to specify the publishing function: 13877 13878‘:publishing-function’ 13879 Function executing the publication of a file. This may also be a 13880 list of functions, which are all called in turn. 13881 13882‘:htmlized-source’ 13883 Non-‘nil’ means, publish htmlized source. 13884 13885 The function must accept three arguments: a property list containing 13886at least a ‘:publishing-directory’ property, the name of the file to be 13887published, and the path to the publishing directory of the output file. 13888It should take the specified file, make the necessary transformation, if 13889any, and place the result into the destination folder. 13890 13891 ---------- Footnotes ---------- 13892 13893 (1) If the publishing directory is the same as the source directory, 13894‘file.org’ is exported as ‘file.org.org’, so you probably do not want to 13895do this. 13896 13897 13898File: org.info, Node: Publishing options, Next: Publishing links, Prev: Publishing action, Up: Configuration 13899 1390014.1.5 Options for the exporters 13901-------------------------------- 13902 13903The property list can be used to set many export options for the HTML 13904and LaTeX exporters. In most cases, these properties correspond to user 13905variables in Org. The table below lists these properties along with the 13906variable they belong to. See the documentation string for the 13907respective variable for details. 13908 13909 When a property is given a value in ‘org-publish-project-alist’, its 13910setting overrides the value of the corresponding user variable, if any, 13911during publishing. Options set within a file (see *note Export 13912Settings::), however, override everything. 13913 13914Generic properties 13915.................. 13916 13917‘:archived-trees’ ‘org-export-with-archived-trees’ 13918‘:exclude-tags’ ‘org-export-exclude-tags’ 13919‘:headline-levels’ ‘org-export-headline-levels’ 13920‘:language’ ‘org-export-default-language’ 13921‘:preserve-breaks’ ‘org-export-preserve-breaks’ 13922‘:section-numbers’ ‘org-export-with-section-numbers’ 13923‘:select-tags’ ‘org-export-select-tags’ 13924‘:with-author’ ‘org-export-with-author’ 13925‘:with-broken-links’ ‘org-export-with-broken-links’ 13926‘:with-clocks’ ‘org-export-with-clocks’ 13927‘:with-creator’ ‘org-export-with-creator’ 13928‘:with-date’ ‘org-export-with-date’ 13929‘:with-drawers’ ‘org-export-with-drawers’ 13930‘:with-email’ ‘org-export-with-email’ 13931‘:with-emphasize’ ‘org-export-with-emphasize’ 13932‘:with-fixed-width’ ‘org-export-with-fixed-width’ 13933‘:with-footnotes’ ‘org-export-with-footnotes’ 13934‘:with-latex’ ‘org-export-with-latex’ 13935‘:with-planning’ ‘org-export-with-planning’ 13936‘:with-priority’ ‘org-export-with-priority’ 13937‘:with-properties’ ‘org-export-with-properties’ 13938‘:with-special-strings’ ‘org-export-with-special-strings’ 13939‘:with-sub-superscript’ ‘org-export-with-sub-superscripts’ 13940‘:with-tables’ ‘org-export-with-tables’ 13941‘:with-tags’ ‘org-export-with-tags’ 13942‘:with-tasks’ ‘org-export-with-tasks’ 13943‘:with-timestamps’ ‘org-export-with-timestamps’ 13944‘:with-title’ ‘org-export-with-title’ 13945‘:with-toc’ ‘org-export-with-toc’ 13946‘:with-todo-keywords’ ‘org-export-with-todo-keywords’ 13947 13948ASCII specific properties 13949......................... 13950 13951‘:ascii-bullets’ ‘org-ascii-bullets’ 13952‘:ascii-caption-above’ ‘org-ascii-caption-above’ 13953‘:ascii-charset’ ‘org-ascii-charset’ 13954‘:ascii-global-margin’ ‘org-ascii-global-margin’ 13955‘:ascii-format-drawer-function’ ‘org-ascii-format-drawer-function’ 13956‘:ascii-format-inlinetask-function’ ‘org-ascii-format-inlinetask-function’ 13957‘:ascii-headline-spacing’ ‘org-ascii-headline-spacing’ 13958‘:ascii-indented-line-width’ ‘org-ascii-indented-line-width’ 13959‘:ascii-inlinetask-width’ ‘org-ascii-inlinetask-width’ 13960‘:ascii-inner-margin’ ‘org-ascii-inner-margin’ 13961‘:ascii-links-to-notes’ ‘org-ascii-links-to-notes’ 13962‘:ascii-list-margin’ ‘org-ascii-list-margin’ 13963‘:ascii-paragraph-spacing’ ‘org-ascii-paragraph-spacing’ 13964‘:ascii-quote-margin’ ‘org-ascii-quote-margin’ 13965‘:ascii-table-keep-all-vertical-lines’ ‘org-ascii-table-keep-all-vertical-lines’ 13966‘:ascii-table-use-ascii-art’ ‘org-ascii-table-use-ascii-art’ 13967‘:ascii-table-widen-columns’ ‘org-ascii-table-widen-columns’ 13968‘:ascii-text-width’ ‘org-ascii-text-width’ 13969‘:ascii-underline’ ‘org-ascii-underline’ 13970‘:ascii-verbatim-format’ ‘org-ascii-verbatim-format’ 13971 13972Beamer specific properties 13973.......................... 13974 13975‘:beamer-theme’ ‘org-beamer-theme’ 13976‘:beamer-column-view-format’ ‘org-beamer-column-view-format’ 13977‘:beamer-environments-extra’ ‘org-beamer-environments-extra’ 13978‘:beamer-frame-default-options’ ‘org-beamer-frame-default-options’ 13979‘:beamer-outline-frame-options’ ‘org-beamer-outline-frame-options’ 13980‘:beamer-outline-frame-title’ ‘org-beamer-outline-frame-title’ 13981‘:beamer-subtitle-format’ ‘org-beamer-subtitle-format’ 13982 13983HTML specific properties 13984........................ 13985 13986‘:html-allow-name-attribute-in-anchors’ ‘org-html-allow-name-attribute-in-anchors’ 13987‘:html-checkbox-type’ ‘org-html-checkbox-type’ 13988‘:html-container’ ‘org-html-container-element’ 13989‘:html-divs’ ‘org-html-divs’ 13990‘:html-doctype’ ‘org-html-doctype’ 13991‘:html-extension’ ‘org-html-extension’ 13992‘:html-footnote-format’ ‘org-html-footnote-format’ 13993‘:html-footnote-separator’ ‘org-html-footnote-separator’ 13994‘:html-footnotes-section’ ‘org-html-footnotes-section’ 13995‘:html-format-drawer-function’ ‘org-html-format-drawer-function’ 13996‘:html-format-headline-function’ ‘org-html-format-headline-function’ 13997‘:html-format-inlinetask-function’ ‘org-html-format-inlinetask-function’ 13998‘:html-head-extra’ ‘org-html-head-extra’ 13999‘:html-head-include-default-style’ ‘org-html-head-include-default-style’ 14000‘:html-head-include-scripts’ ‘org-html-head-include-scripts’ 14001‘:html-head’ ‘org-html-head’ 14002‘:html-home/up-format’ ‘org-html-home/up-format’ 14003‘:html-html5-fancy’ ‘org-html-html5-fancy’ 14004‘:html-indent’ ‘org-html-indent’ 14005‘:html-infojs-options’ ‘org-html-infojs-options’ 14006‘:html-infojs-template’ ‘org-html-infojs-template’ 14007‘:html-inline-image-rules’ ‘org-html-inline-image-rules’ 14008‘:html-inline-images’ ‘org-html-inline-images’ 14009‘:html-link-home’ ‘org-html-link-home’ 14010‘:html-link-org-files-as-html’ ‘org-html-link-org-files-as-html’ 14011‘:html-link-up’ ‘org-html-link-up’ 14012‘:html-link-use-abs-url’ ‘org-html-link-use-abs-url’ 14013‘:html-mathjax-options’ ‘org-html-mathjax-options’ 14014‘:html-mathjax-template’ ‘org-html-mathjax-template’ 14015‘:html-equation-reference-format’ ‘org-html-equation-reference-format’ 14016‘:html-metadata-timestamp-format’ ‘org-html-metadata-timestamp-format’ 14017‘:html-postamble-format’ ‘org-html-postamble-format’ 14018‘:html-postamble’ ‘org-html-postamble’ 14019‘:html-preamble-format’ ‘org-html-preamble-format’ 14020‘:html-preamble’ ‘org-html-preamble’ 14021‘:html-self-link-headlines’ ‘org-html-self-link-headlines’ 14022‘:html-table-align-individual-field’ ‘de{org-html-table-align-individual-fields’ 14023‘:html-table-attributes’ ‘org-html-table-default-attributes’ 14024‘:html-table-caption-above’ ‘org-html-table-caption-above’ 14025‘:html-table-data-tags’ ‘org-html-table-data-tags’ 14026‘:html-table-header-tags’ ‘org-html-table-header-tags’ 14027‘:html-table-row-tags’ ‘org-html-table-row-tags’ 14028‘:html-table-use-header-tags-for-first-column’ ‘org-html-table-use-header-tags-for-first-column’ 14029‘:html-tag-class-prefix’ ‘org-html-tag-class-prefix’ 14030‘:html-text-markup-alist’ ‘org-html-text-markup-alist’ 14031‘:html-todo-kwd-class-prefix’ ‘org-html-todo-kwd-class-prefix’ 14032‘:html-toplevel-hlevel’ ‘org-html-toplevel-hlevel’ 14033‘:html-use-infojs’ ‘org-html-use-infojs’ 14034‘:html-validation-link’ ‘org-html-validation-link’ 14035‘:html-viewport’ ‘org-html-viewport’ 14036‘:html-wrap-src-lines’ ‘org-html-wrap-src-lines’ 14037‘:html-xml-declaration’ ‘org-html-xml-declaration’ 14038 14039LaTeX specific properties 14040......................... 14041 14042‘:latex-active-timestamp-format’ ‘org-latex-active-timestamp-format’ 14043‘:latex-caption-above’ ‘org-latex-caption-above’ 14044‘:latex-classes’ ‘org-latex-classes’ 14045‘:latex-class’ ‘org-latex-default-class’ 14046‘:latex-compiler’ ‘org-latex-compiler’ 14047‘:latex-default-figure-position’ ‘org-latex-default-figure-position’ 14048‘:latex-default-table-environment’ ‘org-latex-default-table-environment’ 14049‘:latex-default-table-mode’ ‘org-latex-default-table-mode’ 14050‘:latex-diary-timestamp-format’ ‘org-latex-diary-timestamp-format’ 14051‘:latex-footnote-defined-format’ ‘org-latex-footnote-defined-format’ 14052‘:latex-footnote-separator’ ‘org-latex-footnote-separator’ 14053‘:latex-format-drawer-function’ ‘org-latex-format-drawer-function’ 14054‘:latex-format-headline-function’ ‘org-latex-format-headline-function’ 14055‘:latex-format-inlinetask-function’ ‘org-latex-format-inlinetask-function’ 14056‘:latex-hyperref-template’ ‘org-latex-hyperref-template’ 14057‘:latex-image-default-height’ ‘org-latex-image-default-height’ 14058‘:latex-image-default-option’ ‘org-latex-image-default-option’ 14059‘:latex-image-default-width’ ‘org-latex-image-default-width’ 14060‘:latex-images-centered’ ‘org-latex-images-centered’ 14061‘:latex-inactive-timestamp-format’ ‘org-latex-inactive-timestamp-format’ 14062‘:latex-inline-image-rules’ ‘org-latex-inline-image-rules’ 14063‘:latex-link-with-unknown-path-format’ ‘org-latex-link-with-unknown-path-format’ 14064‘:latex-listings-langs’ ‘org-latex-listings-langs’ 14065‘:latex-listings-options’ ‘org-latex-listings-options’ 14066‘:latex-listings’ ‘org-latex-listings’ 14067‘:latex-minted-langs’ ‘org-latex-minted-langs’ 14068‘:latex-minted-options’ ‘org-latex-minted-options’ 14069‘:latex-prefer-user-labels’ ‘org-latex-prefer-user-labels’ 14070‘:latex-subtitle-format’ ‘org-latex-subtitle-format’ 14071‘:latex-subtitle-separate’ ‘org-latex-subtitle-separate’ 14072‘:latex-table-scientific-notation’ ‘org-latex-table-scientific-notation’ 14073‘:latex-tables-booktabs’ ‘org-latex-tables-booktabs’ 14074‘:latex-tables-centered’ ‘org-latex-tables-centered’ 14075‘:latex-text-markup-alist’ ‘org-latex-text-markup-alist’ 14076‘:latex-title-command’ ‘org-latex-title-command’ 14077‘:latex-toc-command’ ‘org-latex-toc-command’ 14078 14079Markdown specific properties 14080............................ 14081 14082‘:md-footnote-format’ ‘org-md-footnote-format’ 14083‘:md-footnotes-section’ ‘org-md-footnotes-section’ 14084‘:md-headline-style’ ‘org-md-headline-style’ 14085 14086ODT specific properties 14087....................... 14088 14089‘:odt-content-template-file’ ‘org-odt-content-template-file’ 14090‘:odt-display-outline-level’ ‘org-odt-display-outline-level’ 14091‘:odt-fontify-srcblocks’ ‘org-odt-fontify-srcblocks’ 14092‘:odt-format-drawer-function’ ‘org-odt-format-drawer-function’ 14093‘:odt-format-headline-function’ ‘org-odt-format-headline-function’ 14094‘:odt-format-inlinetask-function’ ‘org-odt-format-inlinetask-function’ 14095‘:odt-inline-formula-rules’ ‘org-odt-inline-formula-rules’ 14096‘:odt-inline-image-rules’ ‘org-odt-inline-image-rules’ 14097‘:odt-pixels-per-inch’ ‘org-odt-pixels-per-inch’ 14098‘:odt-styles-file’ ‘org-odt-styles-file’ 14099‘:odt-table-styles’ ‘org-odt-table-styles’ 14100‘:odt-use-date-fields’ ‘org-odt-use-date-fields’ 14101 14102Texinfo specific properties 14103........................... 14104 14105‘:texinfo-active-timestamp-format’ ‘org-texinfo-active-timestamp-format’ 14106‘:texinfo-classes’ ‘org-texinfo-classes’ 14107‘:texinfo-class’ ‘org-texinfo-default-class’ 14108‘:texinfo-table-default-markup’ ‘org-texinfo-table-default-markup’ 14109‘:texinfo-diary-timestamp-format’ ‘org-texinfo-diary-timestamp-format’ 14110‘:texinfo-filename’ ‘org-texinfo-filename’ 14111‘:texinfo-format-drawer-function’ ‘org-texinfo-format-drawer-function’ 14112‘:texinfo-format-headline-function’ ‘org-texinfo-format-headline-function’ 14113‘:texinfo-format-inlinetask-function’ ‘org-texinfo-format-inlinetask-function’ 14114‘:texinfo-inactive-timestamp-format’ ‘org-texinfo-inactive-timestamp-format’ 14115‘:texinfo-link-with-unknown-path-format’ ‘org-texinfo-link-with-unknown-path-format’ 14116‘:texinfo-node-description-column’ ‘org-texinfo-node-description-column’ 14117‘:texinfo-table-scientific-notation’ ‘org-texinfo-table-scientific-notation’ 14118‘:texinfo-tables-verbatim’ ‘org-texinfo-tables-verbatim’ 14119‘:texinfo-text-markup-alist’ ‘org-texinfo-text-markup-alist’ 14120 14121 14122File: org.info, Node: Publishing links, Next: Site map, Prev: Publishing options, Up: Configuration 14123 1412414.1.6 Publishing links 14125----------------------- 14126 14127To create a link from one Org file to another, you would use something 14128like ‘[[file:foo.org][The foo]]’ or simply ‘[[file:foo.org]]’ (see *note 14129External Links::). When published, this link becomes a link to 14130‘foo.html’. You can thus interlink the pages of your “Org web” project 14131and the links will work as expected when you publish them to HTML. If 14132you also publish the Org source file and want to link to it, use an 14133‘http’ link instead of a ‘file:’ link, because ‘file’ links are 14134converted to link to the corresponding ‘.html’ file. 14135 14136 You may also link to related files, such as images. Provided you are 14137careful with relative file names, and provided you have also configured 14138Org to upload the related files, these links will work too. See *note 14139Complex example::, for an example of this usage. 14140 14141 Eventually, links between published documents can contain some search 14142options (see *note Search Options::), which will be resolved to the 14143appropriate location in the linked file. For example, once published to 14144HTML, the following links all point to a dedicated anchor in ‘foo.html’. 14145 14146 [[file:foo.org::*heading]] 14147 [[file:foo.org::#custom-id]] 14148 [[file:foo.org::target]] 14149 14150 14151File: org.info, Node: Site map, Next: Generating an index, Prev: Publishing links, Up: Configuration 14152 1415314.1.7 Generating a sitemap 14154--------------------------- 14155 14156The following properties may be used to control publishing of a map of 14157files for a given project. 14158 14159‘:auto-sitemap’ 14160 When non-‘nil’, publish a sitemap during 14161 ‘org-publish-current-project’ or ‘org-publish-all’. 14162 14163‘:sitemap-filename’ 14164 Filename for output of sitemap. Defaults to ‘sitemap.org’, which 14165 becomes ‘sitemap.html’. 14166 14167‘:sitemap-title’ 14168 Title of sitemap page. Defaults to name of file. 14169 14170‘:sitemap-format-entry’ 14171 With this option one can tell how a site-map entry is formatted in 14172 the site-map. It is a function called with three arguments: the 14173 file or directory name relative to base directory of the project, 14174 the site-map style and the current project. It is expected to 14175 return a string. Default value turns file names into links and use 14176 document titles as descriptions. For specific formatting needs, 14177 one can use ‘org-publish-find-date’, ‘org-publish-find-title’ and 14178 ‘org-publish-find-property’, to retrieve additional information 14179 about published documents. 14180 14181‘:sitemap-function’ 14182 Plug-in function to use for generation of the sitemap. It is 14183 called with two arguments: the title of the site-map and a 14184 representation of the files and directories involved in the project 14185 as a nested list, which can further be transformed using 14186 ‘org-list-to-generic’, ‘org-list-to-subtree’ and alike. Default 14187 value generates a plain list of links to all files in the project. 14188 14189‘:sitemap-sort-folders’ 14190 Where folders should appear in the sitemap. Set this to ‘first’ 14191 (default) or ‘last’ to display folders first or last, respectively. 14192 When set to ‘ignore’, folders are ignored altogether. Any other 14193 value mixes files and folders. This variable has no effect when 14194 site-map style is ‘tree’. 14195 14196‘:sitemap-sort-files’ 14197 How the files are sorted in the site map. Set this to 14198 ‘alphabetically’ (default), ‘chronologically’ or 14199 ‘anti-chronologically’. ‘chronologically’ sorts the files with 14200 older date first while ‘anti-chronologically’ sorts the files with 14201 newer date first. ‘alphabetically’ sorts the files alphabetically. 14202 The date of a file is retrieved with ‘org-publish-find-date’. 14203 14204‘:sitemap-ignore-case’ 14205 Should sorting be case-sensitive? Default ‘nil’. 14206 14207‘:sitemap-file-entry-format’ 14208 With this option one can tell how a sitemap’s entry is formatted in 14209 the sitemap. This is a format string with some escape sequences: 14210 ‘%t’ stands for the title of the file, ‘%a’ stands for the author 14211 of the file and ‘%d’ stands for the date of the file. The date is 14212 retrieved with the ‘org-publish-find-date’ function and formatted 14213 with ‘org-publish-sitemap-date-format’. Default ‘%t’. 14214 14215‘:sitemap-date-format’ 14216 Format string for the ‘format-time-string’ function that tells how 14217 a sitemap entry’s date is to be formatted. This property bypasses 14218 ‘org-publish-sitemap-date-format’ which defaults to ‘%Y-%m-%d’. 14219 14220 14221File: org.info, Node: Generating an index, Prev: Site map, Up: Configuration 14222 1422314.1.8 Generating an index 14224-------------------------- 14225 14226Org mode can generate an index across the files of a publishing project. 14227 14228‘:makeindex’ 14229 When non-‘nil’, generate in index in the file ‘theindex.org’ and 14230 publish it as ‘theindex.html’. 14231 14232 The file is created when first publishing a project with the 14233‘:makeindex’ set. The file only contains a statement ‘#+INCLUDE: 14234"theindex.inc"’. You can then build around this include statement by 14235adding a title, style information, etc. 14236 14237 Index entries are specified with ‘INDEX’ keyword. An entry that 14238contains an exclamation mark creates a sub item. 14239 14240 *** Curriculum Vitae 14241 #+INDEX: CV 14242 #+INDEX: Application!CV 14243 14244 14245File: org.info, Node: Uploading Files, Next: Sample Configuration, Prev: Configuration, Up: Publishing 14246 1424714.2 Uploading Files 14248==================== 14249 14250For those people already utilizing third party sync tools such as Rsync 14251or Unison, it might be preferable not to use the built-in remote 14252publishing facilities of Org mode which rely heavily on Tramp. Tramp, 14253while very useful and powerful, tends not to be so efficient for 14254multiple file transfer and has been known to cause problems under heavy 14255usage. 14256 14257 Specialized synchronization utilities offer several advantages. In 14258addition to timestamp comparison, they also do content and 14259permissions/attribute checks. For this reason you might prefer to 14260publish your web to a local directory—possibly even _in place_ with your 14261Org files—and then use Unison or Rsync to do the synchronization with 14262the remote host. 14263 14264 Since Unison, for example, can be configured as to which files to 14265transfer to a certain remote destination, it can greatly simplify the 14266project publishing definition. Simply keep all files in the correct 14267location, process your Org files with ‘org-publish’ and let the 14268synchronization tool do the rest. You do not need, in this scenario, to 14269include attachments such as JPG, CSS or PNG files in the project 14270definition since the third-party tool syncs them. 14271 14272 Publishing to a local directory is also much faster than to a remote 14273one, so that you can afford more easily to republish entire projects. 14274If you set ‘org-publish-use-timestamps-flag’ to ‘nil’, you gain the main 14275benefit of re-including any changed external files such as source 14276example files you might include with ‘INCLUDE’ keyword. The timestamp 14277mechanism in Org is not smart enough to detect if included files have 14278been modified. 14279 14280 14281File: org.info, Node: Sample Configuration, Next: Triggering Publication, Prev: Uploading Files, Up: Publishing 14282 1428314.3 Sample Configuration 14284========================= 14285 14286Below we provide two example configurations. The first one is a simple 14287project publishing only a set of Org files. The second example is more 14288complex, with a multi-component project. 14289 14290* Menu: 14291 14292* Simple example:: One-component publishing. 14293* Complex example:: A multi-component publishing example. 14294 14295 14296File: org.info, Node: Simple example, Next: Complex example, Up: Sample Configuration 14297 1429814.3.1 Example: simple publishing configuration 14299----------------------------------------------- 14300 14301This example publishes a set of Org files to the ‘public_html’ directory 14302on the local machine. 14303 14304 (setq org-publish-project-alist 14305 '(("org" 14306 :base-directory "~/org/" 14307 :publishing-directory "~/public_html" 14308 :section-numbers nil 14309 :table-of-contents nil 14310 :style "<link rel=\"stylesheet\" 14311 href=\"../other/mystyle.css\" 14312 type=\"text/css\"/>"))) 14313 14314 14315File: org.info, Node: Complex example, Prev: Simple example, Up: Sample Configuration 14316 1431714.3.2 Example: complex publishing configuration 14318------------------------------------------------ 14319 14320This more complicated example publishes an entire website, including Org 14321files converted to HTML, image files, Emacs Lisp source code, and style 14322sheets. The publishing directory is remote and private files are 14323excluded. 14324 14325 To ensure that links are preserved, care should be taken to replicate 14326your directory structure on the web server, and to use relative file 14327paths. For example, if your Org files are kept in ‘~/org/’ and your 14328publishable images in ‘~/images/’, you would link to an image with 14329 14330 file:../images/myimage.png 14331 14332 On the web server, the relative path to the image should be the same. 14333You can accomplish this by setting up an ‘images/’ folder in the right 14334place on the web server, and publishing images to it. 14335 14336 (setq org-publish-project-alist 14337 '(("orgfiles" 14338 :base-directory "~/org/" 14339 :base-extension "org" 14340 :publishing-directory "/ssh:user@host:~/html/notebook/" 14341 :publishing-function org-html-publish-to-html 14342 :exclude "PrivatePage.org" ;; regexp 14343 :headline-levels 3 14344 :section-numbers nil 14345 :with-toc nil 14346 :html-head "<link rel=\"stylesheet\" 14347 href=\"../other/mystyle.css\" type=\"text/css\"/>" 14348 :html-preamble t) 14349 14350 ("images" 14351 :base-directory "~/images/" 14352 :base-extension "jpg\\|gif\\|png" 14353 :publishing-directory "/ssh:user@host:~/html/images/" 14354 :publishing-function org-publish-attachment) 14355 14356 ("other" 14357 :base-directory "~/other/" 14358 :base-extension "css\\|el" 14359 :publishing-directory "/ssh:user@host:~/html/other/" 14360 :publishing-function org-publish-attachment) 14361 ("website" :components ("orgfiles" "images" "other")))) 14362 14363 14364File: org.info, Node: Triggering Publication, Prev: Sample Configuration, Up: Publishing 14365 1436614.4 Triggering Publication 14367=========================== 14368 14369Once properly configured, Org can publish with the following commands: 14370 14371‘C-c C-e P x’ (‘org-publish’) 14372 Prompt for a specific project and publish all files that belong to 14373 it. 14374 14375‘C-c C-e P p’ (‘org-publish-current-project’) 14376 Publish the project containing the current file. 14377 14378‘C-c C-e P f’ (‘org-publish-current-file’) 14379 Publish only the current file. 14380 14381‘C-c C-e P a’ (‘org-publish-all’) 14382 Publish every project. 14383 14384 Org uses timestamps to track when a file has changed. The above 14385functions normally only publish changed files. You can override this 14386and force publishing of all files by giving a prefix argument to any of 14387the commands above, or by customizing the variable 14388‘org-publish-use-timestamps-flag’. This may be necessary in particular 14389if files include other files via ‘SETUPFILE’ or ‘INCLUDE’ keywords. 14390 14391 14392File: org.info, Node: Working with Source Code, Next: Miscellaneous, Prev: Publishing, Up: Top 14393 1439415 Working with Source Code 14395*************************** 14396 14397Source code here refers to any plain text collection of computer 14398instructions, possibly with comments, written using a human-readable 14399programming language. Org can manage source code in an Org document 14400when the source code is identified with begin and end markers. Working 14401with source code begins with identifying source code blocks. A source 14402code block can be placed almost anywhere in an Org document; it is not 14403restricted to the preamble or the end of the document. However, Org 14404cannot manage a source code block if it is placed inside an Org comment 14405or within a fixed width section. 14406 14407 Here is an example source code block in the Emacs Lisp language: 14408 14409 #+BEGIN_SRC emacs-lisp 14410 (defun org-xor (a b) 14411 "Exclusive or." 14412 (if a (not b) b)) 14413 #+END_SRC 14414 14415 Source code blocks are one of many Org block types, which also 14416include “center”, “comment”, “dynamic”, “example”, “export”, “quote”, 14417“special”, and “verse”. This section pertains to blocks between 14418‘#+BEGIN_SRC’ and ‘#+END_SRC’. 14419 14420 Details of Org’s facilities for working with source code are 14421described in the following sections. 14422 14423* Menu: 14424 14425* Features Overview:: Enjoy the versatility of source blocks. 14426* Structure of Code Blocks:: Code block syntax described. 14427* Using Header Arguments:: Different ways to set header arguments. 14428* Environment of a Code Block:: Arguments, sessions, working directory... 14429* Evaluating Code Blocks:: Place results of evaluation in the Org buffer. 14430* Results of Evaluation:: Choosing a results type, post-processing... 14431* Exporting Code Blocks:: Export contents and/or results. 14432* Extracting Source Code:: Create pure source code files. 14433* Languages:: List of supported code block languages. 14434* Editing Source Code:: Language major-mode editing. 14435* Noweb Reference Syntax:: Literate programming in Org mode. 14436* Library of Babel:: Use and contribute to a library of useful code blocks. 14437* Key bindings and Useful Functions:: Work quickly with code blocks. 14438* Batch Execution:: Call functions from the command line. 14439 14440 14441File: org.info, Node: Features Overview, Next: Structure of Code Blocks, Up: Working with Source Code 14442 1444315.1 Features Overview 14444====================== 14445 14446Org can manage the source code in the block delimited by ‘#+BEGIN_SRC’ 14447... ‘#+END_SRC’ in several ways that can simplify housekeeping tasks 14448essential to modern source code maintenance. Org can edit, format, 14449extract, export, and publish source code blocks. Org can also compile 14450and execute a source code block, then capture the results. The Org mode 14451literature sometimes refers to source code blocks as _live code_ blocks 14452because they can alter the content of the Org document or the material 14453that it exports. Users can control how live they want each source code 14454block by tweaking the header arguments (see *note Using Header 14455Arguments::) for compiling, execution, extraction, and exporting. 14456 14457 For editing and formatting a source code block, Org uses an 14458appropriate Emacs major mode that includes features specifically 14459designed for source code in that language. 14460 14461 Org can extract one or more source code blocks and write them to one 14462or more source files—a process known as _tangling_ in literate 14463programming terminology. 14464 14465 For exporting and publishing, Org’s back-ends can format a source 14466code block appropriately, often with native syntax highlighting. 14467 14468 For executing and compiling a source code block, the user can 14469configure Org to select the appropriate compiler. Org provides 14470facilities to collect the result of the execution or compiler output, 14471insert it into the Org document, and/or export it. In addition to text 14472results, Org can insert links to other data types, including audio, 14473video, and graphics. Org can also link a compiler error message to the 14474appropriate line in the source code block. 14475 14476 An important feature of Org’s management of source code blocks is the 14477ability to pass variables, functions, and results to one another using a 14478common syntax for source code blocks in any language. Although most 14479literate programming facilities are restricted to one language or 14480another, Org’s language-agnostic approach lets the literate programmer 14481match each programming task with the appropriate computer language and 14482to mix them all together in a single Org document. This 14483interoperability among languages explains why Org’s source code 14484management facility was named _Org Babel_ by its originators, Eric 14485Schulte and Dan Davison. 14486 14487 Org mode fulfills the promise of easy verification and maintenance of 14488publishing reproducible research by keeping text, data, code, 14489configuration settings of the execution environment, the results of the 14490execution, and associated narratives, claims, references, and internal 14491and external links in a single Org document. 14492 14493 14494File: org.info, Node: Structure of Code Blocks, Next: Using Header Arguments, Prev: Features Overview, Up: Working with Source Code 14495 1449615.2 Structure of Code Blocks 14497============================= 14498 14499Org offers two ways to structure source code in Org documents: in a 14500source code block, and directly inline. Both specifications are shown 14501below. 14502 14503 A source code block conforms to this structure: 14504 14505 #+NAME: <name> 14506 #+BEGIN_SRC <language> <switches> <header arguments> 14507 <body> 14508 #+END_SRC 14509 14510 Do not be put-off by having to remember the source block syntax. Org 14511mode offers a command for wrapping existing text in a block (see *note 14512Structure Templates::). Org also works with other completion systems in 14513Emacs, some of which predate Org and have custom domain-specific 14514languages for defining templates. Regular use of templates reduces 14515errors, increases accuracy, and maintains consistency. 14516 14517 An inline code block conforms to this structure: 14518 14519 src_<language>{<body>} 14520 14521or 14522 14523 src_<language>[<header arguments>]{<body>} 14524 14525‘#+NAME: <name>’ 14526 Optional. Names the source block so it can be called, like a 14527 function, from other source blocks or inline code to evaluate or to 14528 capture the results. Code from other blocks, other files, and from 14529 table formulas (see *note The Spreadsheet::) can use the name to 14530 reference a source block. This naming serves the same purpose as 14531 naming Org tables. Org mode requires unique names. For duplicate 14532 names, Org mode’s behavior is undefined. 14533 14534‘#+BEGIN_SRC’ ... ‘#+END_SRC’ 14535 Mandatory. They mark the start and end of a block that Org 14536 requires. The ‘#+BEGIN_SRC’ line takes additional arguments, as 14537 described next. 14538 14539‘<language>’ 14540 Mandatory. It is the identifier of the source code language in the 14541 block. See *note Languages::, for identifiers of supported 14542 languages. 14543 14544‘<switches>’ 14545 Optional. Switches provide finer control of the code execution, 14546 export, and format (see the discussion of switches in *note Literal 14547 Examples::). 14548 14549‘<header arguments>’ 14550 Optional. Heading arguments control many aspects of evaluation, 14551 export and tangling of code blocks (see *note Using Header 14552 Arguments::). Using Org’s properties feature, header arguments can 14553 be selectively applied to the entire buffer or specific sub-trees 14554 of the Org document. 14555 14556‘<body>’ 14557 Source code in the dialect of the specified language identifier. 14558 14559 14560File: org.info, Node: Using Header Arguments, Next: Environment of a Code Block, Prev: Structure of Code Blocks, Up: Working with Source Code 14561 1456215.3 Using Header Arguments 14563=========================== 14564 14565Org comes with many header arguments common to all languages. New 14566header arguments are added for specific languages as they become 14567available for use in source code blocks. A header argument is specified 14568with an initial colon followed by the argument’s name in lowercase. 14569 14570 Since header arguments can be set in several ways, Org prioritizes 14571them in case of overlaps or conflicts by giving local settings a higher 14572priority. Header values in function calls, for example, override header 14573values from global defaults. 14574 14575System-wide header arguments 14576---------------------------- 14577 14578System-wide values of header arguments can be specified by customizing 14579the ‘org-babel-default-header-args’ variable, which defaults to the 14580following values: 14581 14582 :session => "none" 14583 :results => "replace" 14584 :exports => "code" 14585 :cache => "no" 14586 :noweb => "no" 14587 14588 The example below sets ‘:noweb’ header arguments to ‘yes’, which 14589makes Org expand ‘:noweb’ references by default. 14590 14591 (setq org-babel-default-header-args 14592 (cons '(:noweb . "yes") 14593 (assq-delete-all :noweb org-babel-default-header-args))) 14594 14595 Each language can have separate default header arguments by 14596customizing the variable ‘org-babel-default-header-args:<LANG>’, where 14597<LANG> is the name of the language. For details, see the 14598language-specific online documentation at 14599<https://orgmode.org/worg/org-contrib/babel/>. 14600 14601Header arguments in Org mode properties 14602--------------------------------------- 14603 14604For header arguments applicable to the buffer, use ‘PROPERTY’ keyword 14605anywhere in the Org file (see *note Property Syntax::). 14606 14607 The following example makes all the R code blocks execute in the same 14608session. Setting ‘:results’ to ‘silent’ ignores the results of 14609executions for all blocks, not just R code blocks; no results inserted 14610for any block. 14611 14612 #+PROPERTY: header-args:R :session *R* 14613 #+PROPERTY: header-args :results silent 14614 14615 Header arguments set through Org’s property drawers (see *note 14616Property Syntax::) apply at the sub-tree level on down. Since these 14617property drawers can appear anywhere in the file hierarchy, Org uses 14618outermost call or source block to resolve the values. Org ignores 14619‘org-use-property-inheritance’ setting. 14620 14621 In this example, ‘:cache’ defaults to ‘yes’ for all code blocks in 14622the sub-tree. 14623 14624 * sample header 14625 :PROPERTIES: 14626 :header-args: :cache yes 14627 :END: 14628 14629 Properties defined through ‘org-set-property’ function, bound to ‘C-c 14630C-x p’, apply to all active languages. They override properties set in 14631‘org-babel-default-header-args’. 14632 14633 Language-specific header arguments are also read from properties 14634‘header-args:<LANG>’ where <LANG> is the language identifier. For 14635example, 14636 14637 * Heading 14638 :PROPERTIES: 14639 :header-args:clojure: :session *clojure-1* 14640 :header-args:R: :session *R* 14641 :END: 14642 ** Subheading 14643 :PROPERTIES: 14644 :header-args:clojure: :session *clojure-2* 14645 :END: 14646 14647would force separate sessions for Clojure blocks in ‘Heading’ and 14648‘Subheading’, but use the same session for all R blocks. Blocks in 14649‘Subheading’ inherit settings from ‘Heading’. 14650 14651Code block specific header arguments 14652------------------------------------ 14653 14654Header arguments are most commonly set at the source code block level, 14655on the ‘#+BEGIN_SRC’ line. Arguments set at this level take precedence 14656over those set in the ‘org-babel-default-header-args’ variable, and also 14657those set as header properties. 14658 14659 In the following example, setting ‘:results’ to ‘silent’ makes it 14660ignore results of the code execution. Setting ‘:exports’ to ‘code’ 14661exports only the body of the code block to HTML or LaTeX. 14662 14663 #+NAME: factorial 14664 #+BEGIN_SRC haskell :results silent :exports code :var n=0 14665 fac 0 = 1 14666 fac n = n * fac (n-1) 14667 #+END_SRC 14668 14669 The same header arguments in an inline code block: 14670 14671 src_haskell[:exports both]{fac 5} 14672 14673 Code block header arguments can span multiple lines using ‘#+HEADER:’ 14674on each line. Note that Org currently accepts the plural spelling of 14675‘#+HEADER:’ only as a convenience for backward-compatibility. It may be 14676removed at some point. 14677 14678 Multi-line header arguments on an unnamed code block: 14679 14680 #+HEADER: :var data1=1 14681 #+BEGIN_SRC emacs-lisp :var data2=2 14682 (message "data1:%S, data2:%S" data1 data2) 14683 #+END_SRC 14684 14685 #+RESULTS: 14686 : data1:1, data2:2 14687 14688 Multi-line header arguments on a named code block: 14689 14690 #+NAME: named-block 14691 #+HEADER: :var data=2 14692 #+BEGIN_SRC emacs-lisp 14693 (message "data:%S" data) 14694 #+END_SRC 14695 14696 #+RESULTS: named-block 14697 : data:2 14698 14699Header arguments in function calls 14700---------------------------------- 14701 14702Header arguments in function calls are the most specific and override 14703all other settings in case of an overlap. They get the highest 14704priority. Two ‘#+CALL:’ examples are shown below. For the complete 14705syntax of ‘CALL’ keyword, see *note Evaluating Code Blocks::. 14706 14707 In this example, ‘:exports results’ header argument is applied to the 14708evaluation of the ‘#+CALL:’ line. 14709 14710 #+CALL: factorial(n=5) :exports results 14711 14712 In this example, ‘:session special’ header argument is applied to the 14713evaluation of ‘factorial’ code block. 14714 14715 #+CALL: factorial[:session special](n=5) 14716 14717 14718File: org.info, Node: Environment of a Code Block, Next: Evaluating Code Blocks, Prev: Using Header Arguments, Up: Working with Source Code 14719 1472015.4 Environment of a Code Block 14721================================ 14722 14723Passing arguments 14724----------------- 14725 14726Use ‘var’ for passing arguments to source code blocks. The specifics of 14727variables in code blocks vary by the source language and are covered in 14728the language-specific documentation. The syntax for ‘var’, however, is 14729the same for all languages. This includes declaring a variable, and 14730assigning a default value. 14731 14732 The following syntax is used to pass arguments to code blocks using 14733the ‘var’ header argument. 14734 14735 :var NAME=ASSIGN 14736 14737NAME is the name of the variable bound in the code block body. ASSIGN 14738is a literal value, such as a string, a number, a reference to a table, 14739a list, a literal example, another code block—with or without 14740arguments—or the results of evaluating a code block. 14741 14742 Here are examples of passing values by reference: 14743 14744table 14745 A table named with a ‘NAME’ keyword. 14746 14747 #+NAME: example-table 14748 | 1 | 14749 | 2 | 14750 | 3 | 14751 | 4 | 14752 14753 #+NAME: table-length 14754 #+BEGIN_SRC emacs-lisp :var table=example-table 14755 (length table) 14756 #+END_SRC 14757 14758 #+RESULTS: table-length 14759 : 4 14760 14761 When passing a table, you can treat specially the row, or the 14762 column, containing labels for the columns, or the rows, in the 14763 table. 14764 14765 The ‘colnames’ header argument accepts ‘yes’, ‘no’, or ‘nil’ 14766 values. The default value is ‘nil’: if an input table has column 14767 names—because the second row is a horizontal rule—then Org removes 14768 the column names, processes the table, puts back the column names, 14769 and then writes the table to the results block. Using ‘yes’, Org 14770 does the same to the first row, even if the initial table does not 14771 contain any horizontal rule. When set to ‘no’, Org does not 14772 pre-process column names at all. 14773 14774 #+NAME: less-cols 14775 | a | 14776 |---| 14777 | b | 14778 | c | 14779 14780 #+BEGIN_SRC python :var tab=less-cols :colnames nil 14781 return [[val + '*' for val in row] for row in tab] 14782 #+END_SRC 14783 14784 #+RESULTS: 14785 | a | 14786 |----| 14787 | b* | 14788 | c* | 14789 14790 Similarly, the ‘rownames’ header argument can take two values: 14791 ‘yes’ or ‘no’. When set to ‘yes’, Org removes the first column, 14792 processes the table, puts back the first column, and then writes 14793 the table to the results block. The default is ‘no’, which means 14794 Org does not pre-process the first column. Note that Emacs Lisp 14795 code blocks ignore ‘rownames’ header argument because of the ease 14796 of table-handling in Emacs. 14797 14798 #+NAME: with-rownames 14799 | one | 1 | 2 | 3 | 4 | 5 | 14800 | two | 6 | 7 | 8 | 9 | 10 | 14801 14802 #+BEGIN_SRC python :var tab=with-rownames :rownames yes 14803 return [[val + 10 for val in row] for row in tab] 14804 #+END_SRC 14805 14806 #+RESULTS: 14807 | one | 11 | 12 | 13 | 14 | 15 | 14808 | two | 16 | 17 | 18 | 19 | 20 | 14809 14810list 14811 A simple named list. 14812 14813 #+NAME: example-list 14814 - simple 14815 - not 14816 - nested 14817 - list 14818 14819 #+BEGIN_SRC emacs-lisp :var x=example-list 14820 (print x) 14821 #+END_SRC 14822 14823 #+RESULTS: 14824 | simple | list | 14825 14826 Note that only the top level list items are passed along. Nested 14827 list items are ignored. 14828 14829code block without arguments 14830 A code block name, as assigned by ‘NAME’ keyword from the example 14831 above, optionally followed by parentheses. 14832 14833 #+BEGIN_SRC emacs-lisp :var length=table-length() 14834 (* 2 length) 14835 #+END_SRC 14836 14837 #+RESULTS: 14838 : 8 14839 14840code block with arguments 14841 A code block name, as assigned by ‘NAME’ keyword, followed by 14842 parentheses and optional arguments passed within the parentheses. 14843 14844 #+NAME: double 14845 #+BEGIN_SRC emacs-lisp :var input=8 14846 (* 2 input) 14847 #+END_SRC 14848 14849 #+RESULTS: double 14850 : 16 14851 14852 #+NAME: squared 14853 #+BEGIN_SRC emacs-lisp :var input=double(input=1) 14854 (* input input) 14855 #+END_SRC 14856 14857 #+RESULTS: squared 14858 : 4 14859 14860literal example 14861 A literal example block named with a ‘NAME’ keyword. 14862 14863 #+NAME: literal-example 14864 #+BEGIN_EXAMPLE 14865 A literal example 14866 on two lines 14867 #+END_EXAMPLE 14868 14869 #+NAME: read-literal-example 14870 #+BEGIN_SRC emacs-lisp :var x=literal-example 14871 (concatenate #'string x " for you.") 14872 #+END_SRC 14873 14874 #+RESULTS: read-literal-example 14875 : A literal example 14876 : on two lines for you. 14877 14878 Indexing variable values enables referencing portions of a variable. 14879Indexes are 0 based with negative values counting backwards from the 14880end. If an index is separated by commas then each subsequent section 14881indexes as the next dimension. Note that this indexing occurs _before_ 14882other table-related header arguments are applied, such as ‘hlines’, 14883‘colnames’ and ‘rownames’. The following example assigns the last cell 14884of the first row the table ‘example-table’ to the variable ‘data’: 14885 14886 #+NAME: example-table 14887 | 1 | a | 14888 | 2 | b | 14889 | 3 | c | 14890 | 4 | d | 14891 14892 #+BEGIN_SRC emacs-lisp :var data=example-table[0,-1] 14893 data 14894 #+END_SRC 14895 14896 #+RESULTS: 14897 : a 14898 14899 Two integers separated by a colon reference a range of variable 14900values. In that case the entire inclusive range is referenced. For 14901example the following assigns the middle three rows of ‘example-table’ 14902to ‘data’. 14903 14904 #+NAME: example-table 14905 | 1 | a | 14906 | 2 | b | 14907 | 3 | c | 14908 | 4 | d | 14909 | 5 | 3 | 14910 14911 #+BEGIN_SRC emacs-lisp :var data=example-table[1:3] 14912 data 14913 #+END_SRC 14914 14915 #+RESULTS: 14916 | 2 | b | 14917 | 3 | c | 14918 | 4 | d | 14919 14920 To pick the entire range, use an empty index, or the single character 14921‘*’. ‘0:-1’ does the same thing. Example below shows how to reference 14922the first column only. 14923 14924 #+NAME: example-table 14925 | 1 | a | 14926 | 2 | b | 14927 | 3 | c | 14928 | 4 | d | 14929 14930 #+BEGIN_SRC emacs-lisp :var data=example-table[,0] 14931 data 14932 #+END_SRC 14933 14934 #+RESULTS: 14935 | 1 | 2 | 3 | 4 | 14936 14937 Index referencing can be used for tables and code blocks. Index 14938referencing can handle any number of dimensions. Commas delimit 14939multiple dimensions, as shown below. 14940 14941 #+NAME: 3D 14942 #+BEGIN_SRC emacs-lisp 14943 '(((1 2 3) (4 5 6) (7 8 9)) 14944 ((10 11 12) (13 14 15) (16 17 18)) 14945 ((19 20 21) (22 23 24) (25 26 27))) 14946 #+END_SRC 14947 14948 #+BEGIN_SRC emacs-lisp :var data=3D[1,,1] 14949 data 14950 #+END_SRC 14951 14952 #+RESULTS: 14953 | 11 | 14 | 17 | 14954 14955 Note that row names and column names are not removed prior to 14956variable indexing. You need to take them into account, even when 14957‘colnames’ or ‘rownames’ header arguments remove them. 14958 14959 Emacs lisp code can also set the values for variables. To 14960differentiate a value from Lisp code, Org interprets any value starting 14961with ‘(’, ‘[’, ‘'’ or ‘`’ as Emacs Lisp code. The result of evaluating 14962that code is then assigned to the value of that variable. The following 14963example shows how to reliably query and pass the file name of the Org 14964mode buffer to a code block using headers. We need reliability here 14965because the file’s name could change once the code in the block starts 14966executing. 14967 14968 #+BEGIN_SRC sh :var filename=(buffer-file-name) :exports both 14969 wc -w $filename 14970 #+END_SRC 14971 14972 Note that values read from tables and lists are not mistakenly 14973evaluated as Emacs Lisp code, as illustrated in the following example. 14974 14975 #+NAME: table 14976 | (a b c) | 14977 14978 #+HEADER: :var data=table[0,0] 14979 #+BEGIN_SRC perl 14980 $data 14981 #+END_SRC 14982 14983 #+RESULTS: 14984 : (a b c) 14985 14986Using sessions 14987-------------- 14988 14989Two code blocks can share the same environment. The ‘session’ header 14990argument is for running multiple source code blocks under one session. 14991Org runs code blocks with the same session name in the same interpreter 14992process. 14993 14994‘none’ 14995 Default. Each code block gets a new interpreter process to 14996 execute. The process terminates once the block is evaluated. 14997 14998STRING 14999 Any string besides ‘none’ turns that string into the name of that 15000 session. For example, ‘:session STRING’ names it ‘STRING’. If 15001 ‘session’ has no value, then the session name is derived from the 15002 source language identifier. Subsequent blocks with the same source 15003 code language use the same session. Depending on the language, 15004 state variables, code from other blocks, and the overall 15005 interpreted environment may be shared. Some interpreted languages 15006 support concurrent sessions when subsequent source code language 15007 blocks change session names. 15008 15009 Only languages that provide interactive evaluation can have session 15010support. Not all languages provide this support, such as C and ditaa. 15011Even languages, such as Python and Haskell, that do support interactive 15012evaluation impose limitations on allowable language constructs that can 15013run interactively. Org inherits those limitations for those code blocks 15014running in a session. 15015 15016Choosing a working directory 15017---------------------------- 15018 15019The ‘dir’ header argument specifies the default directory during code 15020block execution. If it is absent, then the directory associated with 15021the current buffer is used. In other words, supplying ‘:dir DIRECTORY’ 15022temporarily has the same effect as changing the current directory with 15023‘M-x cd <RET> DIRECTORY’, and then not setting ‘dir’. Under the 15024surface, ‘dir’ simply sets the value of the Emacs variable 15025‘default-directory’. Setting ‘mkdirp’ header argument to a non-‘nil’ 15026value creates the directory, if necessary. 15027 15028 For example, to save the plot file in the ‘Work/’ folder of the home 15029directory—notice tilde is expanded: 15030 15031 #+BEGIN_SRC R :file myplot.png :dir ~/Work 15032 matplot(matrix(rnorm(100), 10), type="l") 15033 #+END_SRC 15034 15035 To evaluate the code block on a remote machine, supply a remote 15036directory name using Tramp syntax. For example: 15037 15038 #+BEGIN_SRC R :file plot.png :dir /scp:dand@yakuba.princeton.edu: 15039 plot(1:10, main=system("hostname", intern=TRUE)) 15040 #+END_SRC 15041 15042 Org first captures the text results as usual for insertion in the Org 15043file. Then Org also inserts a link to the remote file, thanks to Emacs 15044Tramp. Org constructs the remote path to the file name from ‘dir’ and 15045‘default-directory’, as illustrated here: 15046 15047 [[file:/scp:dand@yakuba.princeton.edu:/home/dand/plot.png][plot.png]] 15048 15049 When ‘dir’ is used with ‘session’, Org sets the starting directory 15050for a new session. But Org does not alter the directory of an already 15051existing session. 15052 15053 Do not use ‘dir’ with ‘:exports results’ or with ‘:exports both’ to 15054avoid Org inserting incorrect links to remote files. That is because 15055Org does not expand ‘default directory’ to avoid some underlying 15056portability issues. 15057 15058Inserting headers and footers 15059----------------------------- 15060 15061The ‘prologue’ header argument is for appending to the top of the code 15062block for execution, like a reset instruction. For example, you may use 15063‘:prologue "reset"’ in a Gnuplot code block or, for every such block: 15064 15065 (add-to-list 'org-babel-default-header-args:gnuplot 15066 '((:prologue . "reset"))) 15067 15068 15069 Likewise, the value of the ‘epilogue’ header argument is for 15070appending to the end of the code block for execution. 15071 15072 15073File: org.info, Node: Evaluating Code Blocks, Next: Results of Evaluation, Prev: Environment of a Code Block, Up: Working with Source Code 15074 1507515.5 Evaluating Code Blocks 15076=========================== 15077 15078A note about security: With code evaluation comes the risk of harm. Org 15079safeguards by prompting for user’s permission before executing any code 15080in the source block. To customize this safeguard, or disable it, see 15081*note Code Evaluation Security::. 15082 15083How to evaluate source code 15084--------------------------- 15085 15086Org captures the results of the code block evaluation and inserts them 15087in the Org file, right after the code block. The insertion point is 15088after a newline and the ‘RESULTS’ keyword. Org creates the ‘RESULTS’ 15089keyword if one is not already there. 15090 15091 By default, Org enables only Emacs Lisp code blocks for execution. 15092See *note Languages:: to enable other languages. 15093 15094 Org provides many ways to execute code blocks. ‘C-c C-c’ or ‘C-c C-v 15095e’ with the point on a code block(1) calls the 15096‘org-babel-execute-src-block’ function, which executes the code in the 15097block, collects the results, and inserts them in the buffer. 15098 15099 By calling a named code block(2) from an Org mode buffer or a table. 15100Org can call the named code blocks from the current Org mode buffer or 15101from the “Library of Babel” (see *note Library of Babel::). 15102 15103 The syntax for ‘CALL’ keyword is: 15104 15105 #+CALL: <name>(<arguments>) 15106 #+CALL: <name>[<inside header arguments>](<arguments>) <end header arguments> 15107 15108 The syntax for inline named code blocks is: 15109 15110 ... call_<name>(<arguments>) ... 15111 ... call_<name>[<inside header arguments>](<arguments>)[<end header arguments>] ... 15112 15113 When inline syntax is used, the result is wrapped based on the 15114variable ‘org-babel-inline-result-wrap’, which by default is set to 15115‘"=%s="’ to produce verbatim text suitable for markup. 15116 15117‘<name>’ 15118 This is the name of the code block (see *note Structure of Code 15119 Blocks::) to be evaluated in the current document. If the block is 15120 located in another file, start ‘<name>’ with the file name followed 15121 by a colon. For example, in order to execute a block named 15122 ‘clear-data’ in ‘file.org’, you can write the following: 15123 15124 #+CALL: file.org:clear-data() 15125 15126‘<arguments>’ 15127 Org passes arguments to the code block using standard function call 15128 syntax. For example, a ‘#+CALL:’ line that passes ‘4’ to a code 15129 block named ‘double’, which declares the header argument ‘:var 15130 n=2’, would be written as: 15131 15132 #+CALL: double(n=4) 15133 15134 Note how this function call syntax is different from the header 15135 argument syntax. 15136 15137‘<inside header arguments>’ 15138 Org passes inside header arguments to the named code block using 15139 the header argument syntax. Inside header arguments apply to code 15140 block evaluation. For example, ‘[:results output]’ collects 15141 results printed to stdout during code execution of that block. 15142 Note how this header argument syntax is different from the function 15143 call syntax. 15144 15145‘<end header arguments>’ 15146 End header arguments affect the results returned by the code block. 15147 For example, ‘:results html’ wraps the results in a ‘#+BEGIN_EXPORT 15148 html’ block before inserting the results in the Org buffer. 15149 15150Limit code block evaluation 15151--------------------------- 15152 15153The ‘eval’ header argument can limit evaluation of specific code blocks 15154and ‘CALL’ keyword. It is useful for protection against evaluating 15155untrusted code blocks by prompting for a confirmation. 15156 15157‘never’ or ‘no’ 15158 Org never evaluates the source code. 15159 15160‘query’ 15161 Org prompts the user for permission to evaluate the source code. 15162 15163‘never-export’ or ‘no-export’ 15164 Org does not evaluate the source code when exporting, yet the user 15165 can evaluate it interactively. 15166 15167‘query-export’ 15168 Org prompts the user for permission to evaluate the source code 15169 during export. 15170 15171 If ‘eval’ header argument is not set, then Org determines whether to 15172evaluate the source code from the ‘org-confirm-babel-evaluate’ variable 15173(see *note Code Evaluation Security::). 15174 15175Cache results of evaluation 15176--------------------------- 15177 15178The ‘cache’ header argument is for caching results of evaluating code 15179blocks. Caching results can avoid re-evaluating a code block that have 15180not changed since the previous run. To benefit from the cache and avoid 15181redundant evaluations, the source block must have a result already 15182present in the buffer, and neither the header arguments—including the 15183value of ‘var’ references—nor the text of the block itself has changed 15184since the result was last computed. This feature greatly helps avoid 15185long-running calculations. For some edge cases, however, the cached 15186results may not be reliable. 15187 15188 The caching feature is best for when code blocks are pure functions, 15189that is functions that return the same value for the same input 15190arguments (see *note Environment of a Code Block::), and that do not 15191have side effects, and do not rely on external variables other than the 15192input arguments. Functions that depend on a timer, file system objects, 15193and random number generators are clearly unsuitable for caching. 15194 15195 A note of warning: when ‘cache’ is used in a session, caching may 15196cause unexpected results. 15197 15198 When the caching mechanism tests for any source code changes, it does 15199not expand noweb style references (see *note Noweb Reference Syntax::). 15200 15201 The ‘cache’ header argument can have one of two values: ‘yes’ or 15202‘no’. 15203 15204‘no’ 15205 Default. No caching of results; code block evaluated every time. 15206 15207‘yes’ 15208 Whether to run the code or return the cached results is determined 15209 by comparing the SHA1 hash value of the combined code block and 15210 arguments passed to it. This hash value is packed on the 15211 ‘#+RESULTS:’ line from previous evaluation. When hash values 15212 match, Org does not evaluate the code block. When hash values 15213 mismatch, Org evaluates the code block, inserts the results, 15214 recalculates the hash value, and updates ‘#+RESULTS:’ line. 15215 15216 In this example, both functions are cached. But ‘caller’ runs only 15217if the result from ‘random’ has changed since the last run. 15218 15219 #+NAME: random 15220 #+BEGIN_SRC R :cache yes 15221 runif(1) 15222 #+END_SRC 15223 15224 #+RESULTS[a2a72cd647ad44515fab62e144796432793d68e1]: random 15225 0.4659510825295 15226 15227 #+NAME: caller 15228 #+BEGIN_SRC emacs-lisp :var x=random :cache yes 15229 x 15230 #+END_SRC 15231 15232 #+RESULTS[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller 15233 0.254227238707244 15234 15235 ---------- Footnotes ---------- 15236 15237 (1) The option ‘org-babel-no-eval-on-ctrl-c-ctrl-c’ can be used to 15238remove code evaluation from the ‘C-c C-c’ key binding. 15239 15240 (2) Actually, the constructs ‘call_<name>()’ and ‘src_<lang>{}’ are 15241not evaluated when they appear in a keyword (see *note In-buffer 15242Settings::). 15243 15244 15245File: org.info, Node: Results of Evaluation, Next: Exporting Code Blocks, Prev: Evaluating Code Blocks, Up: Working with Source Code 15246 1524715.6 Results of Evaluation 15248========================== 15249 15250How Org handles results of a code block execution depends on many header 15251arguments working together. The primary determinant, however, is the 15252‘results’ header argument. It accepts four classes of options. Each 15253code block can take only one option per class: 15254 15255Collection 15256 For how the results should be collected from the code block; 15257 15258Type 15259 For which type of result the code block will return; affects how 15260 Org processes and inserts results in the Org buffer; 15261 15262Format 15263 For the result; affects how Org processes results; 15264 15265Handling 15266 For inserting results once they are properly formatted. 15267 15268Collection 15269---------- 15270 15271Collection options specify the results. Choose one of the options; they 15272are mutually exclusive. 15273 15274‘value’ 15275 Default for most Babel libraries(1). Functional mode. Org gets 15276 the value by wrapping the code in a function definition in the 15277 language of the source block. That is why when using ‘:results 15278 value’, code should execute like a function and return a value. 15279 For languages like Python, an explicit ‘return’ statement is 15280 mandatory when using ‘:results value’. Result is the value 15281 returned by the last statement in the code block. 15282 15283 When evaluating the code block in a session (see *note Environment 15284 of a Code Block::), Org passes the code to an interpreter running 15285 as an interactive Emacs inferior process. Org gets the value from 15286 the source code interpreter’s last statement output. Org has to 15287 use language-specific methods to obtain the value. For example, 15288 from the variable ‘_’ in Ruby, and the value of ‘.Last.value’ in R. 15289 15290‘output’ 15291 Scripting mode. Org passes the code to an external process running 15292 the interpreter. Org returns the contents of the standard output 15293 stream as text results. 15294 15295 When using a session, Org passes the code to the interpreter 15296 running as an interactive Emacs inferior process. Org concatenates 15297 any text output from the interpreter and returns the collection as 15298 a result. 15299 15300Type 15301---- 15302 15303Type tells what result types to expect from the execution of the code 15304block. Choose one of the options; they are mutually exclusive. The 15305default behavior is to automatically determine the result type. 15306 15307‘table’ 15308‘vector’ 15309 Interpret the results as an Org table. If the result is a single 15310 value, create a table with one row and one column. Usage example: 15311 ‘:results value table’. 15312 15313 In-between each table row or below the table headings, sometimes 15314 results have horizontal lines, which are also known as “hlines”. 15315 The ‘hlines’ argument with the default ‘no’ value strips such lines 15316 from the input table. For most code, this is desirable, or else 15317 those ‘hline’ symbols raise unbound variable errors. A ‘yes’ 15318 accepts such lines, as demonstrated in the following example. 15319 15320 #+NAME: many-cols 15321 | a | b | c | 15322 |---+---+---| 15323 | d | e | f | 15324 |---+---+---| 15325 | g | h | i | 15326 15327 #+NAME: no-hline 15328 #+BEGIN_SRC python :var tab=many-cols :hlines no 15329 return tab 15330 #+END_SRC 15331 15332 #+RESULTS: no-hline 15333 | a | b | c | 15334 | d | e | f | 15335 | g | h | i | 15336 15337 #+NAME: hlines 15338 #+BEGIN_SRC python :var tab=many-cols :hlines yes 15339 return tab 15340 #+END_SRC 15341 15342 #+RESULTS: hlines 15343 | a | b | c | 15344 |---+---+---| 15345 | d | e | f | 15346 |---+---+---| 15347 | g | h | i | 15348 15349‘list’ 15350 Interpret the results as an Org list. If the result is a single 15351 value, create a list of one element. 15352 15353‘scalar’ 15354‘verbatim’ 15355 Interpret literally and insert as quoted text. Do not create a 15356 table. Usage example: ‘:results value verbatim’. 15357 15358‘file’ 15359 Interpret as a filename. Save the results of execution of the code 15360 block to that file, then insert a link to it. You can control both 15361 the filename and the description associated to the link. 15362 15363 Org first tries to generate the filename from the value of the 15364 ‘file’ header argument and the directory specified using the 15365 ‘output-dir’ header arguments. If ‘output-dir’ is not specified, 15366 Org assumes it is the current directory. 15367 15368 #+BEGIN_SRC asymptote :results value file :file circle.pdf :output-dir img/ 15369 size(2cm); 15370 draw(unitcircle); 15371 #+END_SRC 15372 15373 If ‘file’ header argument is missing, Org generates the base name 15374 of the output file from the name of the code block, and its 15375 extension from the ‘file-ext’ header argument. In that case, both 15376 the name and the extension are mandatory. 15377 15378 #+name: circle 15379 #+BEGIN_SRC asymptote :results value file :file-ext pdf 15380 size(2cm); 15381 draw(unitcircle); 15382 #+END_SRC 15383 15384 The ‘file-desc’ header argument defines the description (see *note 15385 Link Format::) for the link. If ‘file-desc’ is present but has no 15386 value, the ‘file’ value is used as the link description. When this 15387 argument is not present, the description is omitted. 15388 15389 By default, Org assumes that a table written to a file has 15390 TAB-delimited output. You can choose a different separator with 15391 the ‘sep’ header argument. 15392 15393 The ‘file-mode’ header argument defines the file permissions. To 15394 make it executable, use ‘:file-mode (identity #o755)’. 15395 15396 #+BEGIN_SRC shell :results file :file script.sh :file-mode (identity #o755) 15397 echo "#!/bin/bash" 15398 echo "echo Hello World" 15399 #+END_SRC 15400 15401Format 15402------ 15403 15404Format pertains to the type of the result returned by the code block. 15405Choose one of the options; they are mutually exclusive. The default 15406follows from the type specified above. 15407 15408‘code’ 15409 Result enclosed in a code block. Useful for parsing. Usage 15410 example: ‘:results value code’. 15411 15412‘drawer’ 15413 Result wrapped in a ‘RESULTS’ drawer. Useful for containing ‘raw’ 15414 or ‘org’ results for later scripting and automated processing. 15415 Usage example: ‘:results value drawer’. 15416 15417‘html’ 15418 Results enclosed in a ‘BEGIN_EXPORT html’ block. Usage example: 15419 ‘:results value html’. 15420 15421‘latex’ 15422 Results enclosed in a ‘BEGIN_EXPORT latex’ block. Usage example: 15423 ‘:results value latex’. 15424 15425‘link’ 15426‘graphics’ 15427 When used along with ‘file’ type, the result is a link to the file 15428 specified in ‘:file’ header argument. However, unlike plain ‘file’ 15429 type, nothing is written to the disk. The block is used for its 15430 side-effects only, as in the following example: 15431 15432 #+begin_src shell :results file link :file "download.tar.gz" 15433 wget -c "http://example.com/download.tar.gz" 15434 #+end_src 15435 15436‘org’ 15437 Results enclosed in a ‘BEGIN_SRC org’ block. For comma-escape, 15438 either ‘<TAB>’ in the block, or export the file. Usage example: 15439 ‘:results value org’. 15440 15441‘pp’ 15442 Result converted to pretty-print source code. Enclosed in a code 15443 block. Languages supported: Emacs Lisp, Python, and Ruby. Usage 15444 example: ‘:results value pp’. 15445 15446‘raw’ 15447 Interpreted as raw Org mode. Inserted directly into the buffer. 15448 Aligned if it is a table. Usage example: ‘:results value raw’. 15449 15450 The ‘wrap’ header argument unconditionally marks the results block by 15451appending strings to ‘#+BEGIN_’ and ‘#+END_’. If no string is 15452specified, Org wraps the results in a ‘#+BEGIN_results’ ... 15453‘#+END_results’ block. It takes precedent over the ‘results’ value 15454listed above. E.g., 15455 15456 #+BEGIN_SRC emacs-lisp :results html :wrap EXPORT markdown 15457 "<blink>Welcome back to the 90's</blink>" 15458 #+END_SRC 15459 15460 #+RESULTS: 15461 #+BEGIN_EXPORT markdown 15462 <blink>Welcome back to the 90's</blink> 15463 #+END_EXPORT 15464 15465Handling 15466-------- 15467 15468Handling options after collecting the results. 15469 15470‘silent’ 15471 Do not insert results in the Org mode buffer, but echo them in the 15472 minibuffer. Usage example: ‘:results output silent’. 15473 15474‘replace’ 15475 Default. Insert results in the Org buffer. Remove previous 15476 results. Usage example: ‘:results output replace’. 15477 15478‘append’ 15479 Append results to the Org buffer. Latest results are at the 15480 bottom. Does not remove previous results. Usage example: 15481 ‘:results output append’. 15482 15483‘prepend’ 15484 Prepend results to the Org buffer. Latest results are at the top. 15485 Does not remove previous results. Usage example: ‘:results output 15486 prepend’. 15487 15488Post-processing 15489--------------- 15490 15491The ‘post’ header argument is for post-processing results from block 15492evaluation. When ‘post’ has any value, Org binds the results to 15493‘*this*’ variable for easy passing to ‘var’ header argument 15494specifications (see *note Environment of a Code Block::). That makes 15495results available to other code blocks, or even for direct Emacs Lisp 15496code execution. 15497 15498 The following two examples illustrate ‘post’ header argument in 15499action. The first one shows how to attach an ‘ATTR_LATEX’ keyword using 15500‘post’. 15501 15502 #+NAME: attr_wrap 15503 #+BEGIN_SRC sh :var data="" :var width="\\textwidth" :results output 15504 echo "#+ATTR_LATEX: :width $width" 15505 echo "$data" 15506 #+END_SRC 15507 15508 #+HEADER: :file /tmp/it.png 15509 #+BEGIN_SRC dot :post attr_wrap(width="5cm", data=*this*) :results drawer 15510 digraph{ 15511 a -> b; 15512 b -> c; 15513 c -> a; 15514 } 15515 #+end_src 15516 15517 #+RESULTS: 15518 :RESULTS: 15519 #+ATTR_LATEX :width 5cm 15520 [[file:/tmp/it.png]] 15521 :END: 15522 15523 The second example shows use of ‘colnames’ header argument in ‘post’ 15524to pass data between code blocks. 15525 15526 #+NAME: round-tbl 15527 #+BEGIN_SRC emacs-lisp :var tbl="" fmt="%.3f" 15528 (mapcar (lambda (row) 15529 (mapcar (lambda (cell) 15530 (if (numberp cell) 15531 (format fmt cell) 15532 cell)) 15533 row)) 15534 tbl) 15535 #+end_src 15536 15537 #+BEGIN_SRC R :colnames yes :post round-tbl[:colnames yes](*this*) 15538 set.seed(42) 15539 data.frame(foo=rnorm(1)) 15540 #+END_SRC 15541 15542 #+RESULTS: 15543 | foo | 15544 |-------| 15545 | 1.371 | 15546 15547 ---------- Footnotes ---------- 15548 15549 (1) Actually, the constructs ‘call_<name>()’ and ‘src_<lang>{}’ are 15550not evaluated when they appear in a keyword (see *note In-buffer 15551Settings::). 15552 15553 15554File: org.info, Node: Exporting Code Blocks, Next: Extracting Source Code, Prev: Results of Evaluation, Up: Working with Source Code 15555 1555615.7 Exporting Code Blocks 15557========================== 15558 15559It is possible to export the _code_ of code blocks, the _results_ of 15560code block evaluation, _both_ the code and the results of code block 15561evaluation, or _none_. Org defaults to exporting _code_ for most 15562languages. For some languages, such as ditaa, Org defaults to 15563_results_. To export just the body of code blocks, see *note Literal 15564Examples::. To selectively export sub-trees of an Org document, see 15565*note Exporting::. 15566 15567 The ‘exports’ header argument is to specify if that part of the Org 15568file is exported to, say, HTML or LaTeX formats. 15569 15570‘code’ 15571 The default. The body of code is included into the exported file. 15572 Example: ‘:exports code’. 15573 15574‘results’ 15575 The results of evaluation of the code is included in the exported 15576 file. Example: ‘:exports results’. 15577 15578‘both’ 15579 Both the code and results of evaluation are included in the 15580 exported file. Example: ‘:exports both’. 15581 15582‘none’ 15583 Neither the code nor the results of evaluation is included in the 15584 exported file. Whether the code is evaluated at all depends on 15585 other options. Example: ‘:exports none’. 15586 15587 To stop Org from evaluating code blocks to speed exports, use the 15588header argument ‘:eval never-export’ (see *note Evaluating Code 15589Blocks::). To stop Org from evaluating code blocks for greater 15590security, set the ‘org-export-use-babel’ variable to ‘nil’, but 15591understand that header arguments will have no effect. 15592 15593 Turning off evaluation comes in handy when batch processing. For 15594example, markup languages for wikis, which have a high risk of untrusted 15595code. Stopping code block evaluation also stops evaluation of all 15596header arguments of the code block. This may not be desirable in some 15597circumstances. So during export, to allow evaluation of just the header 15598arguments but not any code evaluation in the source block, set ‘:eval 15599never-export’ (see *note Evaluating Code Blocks::). 15600 15601 Org never evaluates code blocks in commented sub-trees when exporting 15602(see *note Comment Lines::). On the other hand, Org does evaluate code 15603blocks in sub-trees excluded from export (see *note Export Settings::). 15604 15605 15606File: org.info, Node: Extracting Source Code, Next: Languages, Prev: Exporting Code Blocks, Up: Working with Source Code 15607 1560815.8 Extracting Source Code 15609=========================== 15610 15611Extracting source code from code blocks is a basic task in literate 15612programming. Org has features to make this easy. In literate 15613programming parlance, documents on creation are _woven_ with code and 15614documentation, and on export, the code is tangled for execution by a 15615computer. Org facilitates weaving and tangling for producing, 15616maintaining, sharing, and exporting literate programming documents. Org 15617provides extensive customization options for extracting source code. 15618 15619 When Org tangles code blocks, it expands, merges, and transforms 15620them. Then Org recomposes them into one or more separate files, as 15621configured through the options. During this tangling process, Org 15622expands variables in the source code, and resolves any noweb style 15623references (see *note Noweb Reference Syntax::). 15624 15625Header arguments 15626---------------- 15627 15628The ‘tangle’ header argument specifies if the code block is exported to 15629source file(s). 15630 15631‘yes’ 15632 Export the code block to source file. The file name for the source 15633 file is derived from the name of the Org file, and the file 15634 extension is derived from the source code language identifier. 15635 Example: ‘:tangle yes’. 15636 15637‘no’ 15638 The default. Do not extract the code in a source code file. 15639 Example: ‘:tangle no’. 15640 15641FILENAME 15642 Export the code block to source file whose file name is derived 15643 from any string passed to the ‘tangle’ header argument. Org 15644 derives the file name as being relative to the directory of the Org 15645 file’s location. Example: ‘:tangle FILENAME’. 15646 15647 The ‘mkdirp’ header argument creates parent directories for tangled 15648files if the directory does not exist. A ‘yes’ value enables directory 15649creation whereas ‘no’ inhibits it. 15650 15651 The ‘comments’ header argument controls inserting comments into 15652tangled files. These are above and beyond whatever comments may already 15653exist in the code block. 15654 15655‘no’ 15656 The default. Do not insert any extra comments during tangling. 15657 15658‘link’ 15659 Wrap the code block in comments. Include links pointing back to 15660 the place in the Org file from where the code was tangled. 15661 15662‘yes’ 15663 Kept for backward compatibility; same as ‘link’. 15664 15665‘org’ 15666 Nearest headline text from Org file is inserted as comment. The 15667 exact text that is inserted is picked from the leading context of 15668 the source block. 15669 15670‘both’ 15671 Includes both ‘link’ and ‘org’ options. 15672 15673‘noweb’ 15674 Includes ‘link’ option, expands noweb references (see *note Noweb 15675 Reference Syntax::), and wraps them in link comments inside the 15676 body of the code block. 15677 15678 The ‘padline’ header argument controls insertion of newlines to pad 15679source code in the tangled file. 15680 15681‘yes’ 15682 Default. Insert a newline before and after each code block in the 15683 tangled file. 15684 15685‘no’ 15686 Do not insert newlines to pad the tangled code blocks. 15687 15688 The ‘shebang’ header argument can turn results into executable script 15689files. By setting it to a string value—for example, ‘:shebang 15690"#!/bin/bash"’—Org inserts that string as the first line of the tangled 15691file that the code block is extracted to. Org then turns on the tangled 15692file’s executable permission. 15693 15694 The ‘tangle-mode’ header argument specifies what permissions to set 15695for tangled files by ‘set-file-modes’. For example, to make a read-only 15696tangled file, use ‘:tangle-mode (identity #o444)’. To make it 15697executable, use ‘:tangle-mode (identity #o755)’. It also overrides 15698executable permission granted by ‘shebang’. When multiple source code 15699blocks tangle to a single file with different and conflicting 15700‘tangle-mode’ header arguments, Org’s behavior is undefined. 15701 15702 By default Org expands code blocks during tangling. The ‘no-expand’ 15703header argument turns off such expansions. Note that one side-effect of 15704expansion by ‘org-babel-expand-src-block’ also assigns values (see *note 15705Environment of a Code Block::) to variables. Expansions also replace 15706noweb references with their targets (see *note Noweb Reference 15707Syntax::). Some of these expansions may cause premature assignment, 15708hence this option. This option makes a difference only for tangling. 15709It has no effect when exporting since code blocks for execution have to 15710be expanded anyway. 15711 15712Functions 15713--------- 15714 15715‘org-babel-tangle’ 15716 Tangle the current file. Bound to ‘C-c C-v t’. 15717 15718 With prefix argument only tangle the current code block. 15719 15720‘org-babel-tangle-file’ 15721 Choose a file to tangle. Bound to ‘C-c C-v f’. 15722 15723Hooks 15724----- 15725 15726‘org-babel-post-tangle-hook’ 15727 This hook is run from within code files tangled by 15728 ‘org-babel-tangle’, making it suitable for post-processing, 15729 compilation, and evaluation of code in the tangled files. 15730 15731Jumping between code and Org 15732---------------------------- 15733 15734Debuggers normally link errors and messages back to the source code. 15735But for tangled files, we want to link back to the Org file, not to the 15736tangled source file. To make this extra jump, Org uses 15737‘org-babel-tangle-jump-to-org’ function with two additional source code 15738block header arguments: 15739 15740 1. Set ‘padline’ to true—this is the default setting. 15741 2. Set ‘comments’ to ‘link’, which makes Org insert links to the Org 15742 file. 15743 15744 15745File: org.info, Node: Languages, Next: Editing Source Code, Prev: Extracting Source Code, Up: Working with Source Code 15746 1574715.9 Languages 15748============== 15749 15750Code blocks in the following languages are supported. 15751 15752Language Identifier Language Identifier 15753------------------------------------------------------------------------ 15754Asymptote ‘asymptote’ Lisp ‘lisp’ 15755Awk ‘awk’ Lua ‘lua’ 15756C ‘C’ MATLAB ‘matlab’ 15757C++ ‘C++’(1) Mscgen ‘mscgen’ 15758Clojure ‘clojure’ Objective Caml ‘ocaml’ 15759CSS ‘css’ Octave ‘octave’ 15760D ‘D’(2) Org mode ‘org’ 15761ditaa ‘ditaa’ Oz ‘oz’ 15762Emacs Calc ‘calc’ Perl ‘perl’ 15763Emacs Lisp ‘emacs-lisp’ Plantuml ‘plantuml’ 15764Eshell ‘eshell’ Processing.js ‘processing’ 15765Fortran ‘fortran’ Python ‘python’ 15766Gnuplot ‘gnuplot’ R ‘R’ 15767GNU Screen ‘screen’ Ruby ‘ruby’ 15768Graphviz ‘dot’ Sass ‘sass’ 15769Haskell ‘haskell’ Scheme ‘scheme’ 15770Java ‘java’ Sed ‘sed’ 15771Javascript ‘js’ shell ‘sh’ 15772LaTeX ‘latex’ SQL ‘sql’ 15773Ledger ‘ledger’ SQLite ‘sqlite’ 15774Lilypond ‘lilypond’ Vala ‘vala’ 15775 15776 Additional documentation for some languages is at 15777<https://orgmode.org/worg/org-contrib/babel/languages.html>. 15778 15779 By default, only Emacs Lisp is enabled for evaluation. To enable or 15780disable other languages, customize the ‘org-babel-load-languages’ 15781variable either through the Emacs customization interface, or by adding 15782code to the init file as shown next. 15783 15784 In this example, evaluation is disabled for Emacs Lisp, and enabled 15785for R. 15786 15787 (org-babel-do-load-languages 15788 'org-babel-load-languages 15789 '((emacs-lisp . nil) 15790 (R . t))) 15791 15792 Note that this is not the only way to enable a language. Org also 15793enables languages when loaded with ‘require’ statement. For example, 15794the following enables execution of Clojure code blocks: 15795 15796 (require 'ob-clojure) 15797 15798 ---------- Footnotes ---------- 15799 15800 (1) C++ language is handled in ‘ob-C.el’. Even though the identifier 15801for such source blocks is ‘C++’, you activate it by loading the C 15802language. 15803 15804 (2) D language is handled in ‘ob-C.el’. Even though the identifier 15805for such source blocks is ‘D’, you activate it by loading the C 15806language. 15807 15808 15809File: org.info, Node: Editing Source Code, Next: Noweb Reference Syntax, Prev: Languages, Up: Working with Source Code 15810 1581115.10 Editing Source Code 15812========================= 15813 15814Use ‘C-c '’ to edit the current code block. It opens a new major mode 15815edit buffer containing the body of the source code block, ready for any 15816edits. Use ‘C-c '’ again to close the buffer and return to the Org 15817buffer. 15818 15819 ‘C-x C-s’ saves the buffer and updates the contents of the Org 15820buffer. Set ‘org-edit-src-auto-save-idle-delay’ to save the base buffer 15821after a certain idle delay time. Set ‘org-edit-src-turn-on-auto-save’ 15822to auto-save this buffer into a separate file using Auto-save mode. 15823 15824 While editing the source code in the major mode, the Org Src minor 15825mode remains active. It provides these customization variables as 15826described below. For even more variables, look in the customization 15827group ‘org-edit-structure’. 15828 15829‘org-src-lang-modes’ 15830 If an Emacs major-mode named ‘<LANG>-mode’ exists, where <LANG> is 15831 the language identifier from code block’s header line, then the 15832 edit buffer uses that major mode. Use this variable to arbitrarily 15833 map language identifiers to major modes. 15834 15835‘org-src-window-setup’ 15836 For specifying Emacs window arrangement when the new edit buffer is 15837 created. 15838 15839‘org-src-preserve-indentation’ 15840 Default is ‘nil’. Source code is indented. This indentation 15841 applies during export or tangling, and depending on the context, 15842 may alter leading spaces and tabs. When non-‘nil’, source code is 15843 aligned with the leftmost column. No lines are modified during 15844 export or tangling, which is very useful for white-space sensitive 15845 languages, such as Python. 15846 15847‘org-src-ask-before-returning-to-edit-buffer’ 15848 When ‘nil’, Org returns to the edit buffer without further prompts. 15849 The default prompts for a confirmation. 15850 15851 Set ‘org-src-fontify-natively’ to non-‘nil’ to turn on native code 15852fontification in the _Org_ buffer. Fontification of code blocks can 15853give visual separation of text and code on the display page. To further 15854customize the appearance of ‘org-block’ for specific languages, 15855customize ‘org-src-block-faces’. The following example shades the 15856background of regular blocks, and colors source blocks only for Python 15857and Emacs Lisp languages. 15858 15859 (require 'color) 15860 (set-face-attribute 'org-block nil :background 15861 (color-darken-name 15862 (face-attribute 'default :background) 3)) 15863 15864 (setq org-src-block-faces '(("emacs-lisp" (:background "#EEE2FF")) 15865 ("python" (:background "#E5FFB8")))) 15866 15867 15868File: org.info, Node: Noweb Reference Syntax, Next: Library of Babel, Prev: Editing Source Code, Up: Working with Source Code 15869 1587015.11 Noweb Reference Syntax 15871============================ 15872 15873Source code blocks can include references to other source code blocks, 15874using a noweb(1) style syntax: 15875 15876 <<CODE-BLOCK-ID>> 15877 15878where CODE-BLOCK-ID refers to either the ‘NAME’ of a single source code 15879block, or a collection of one or more source code blocks sharing the 15880same ‘noweb-ref’ header argument (see *note Using Header Arguments::). 15881Org can replace such references with the source code of the block or 15882blocks being referenced, or, in the case of a single source code block 15883named with ‘NAME’, with the results of an evaluation of that block. 15884 15885 The ‘noweb’ header argument controls expansion of noweb syntax 15886references. Expansions occur when source code blocks are evaluated, 15887tangled, or exported. 15888 15889‘no’ 15890 Default. No expansion of noweb syntax references in the body of 15891 the code when evaluating, tangling, or exporting. 15892 15893‘yes’ 15894 Expansion of noweb syntax references in the body of the code block 15895 when evaluating, tangling, or exporting. 15896 15897‘tangle’ 15898 Expansion of noweb syntax references in the body of the code block 15899 when tangling. No expansion when evaluating or exporting. 15900 15901‘no-export’ 15902 Expansion of noweb syntax references in the body of the code block 15903 when evaluating or tangling. No expansion when exporting. 15904 15905‘strip-export’ 15906 Expansion of noweb syntax references in the body of the code block 15907 when expanding prior to evaluating or tangling. Removes noweb 15908 syntax references when exporting. 15909 15910‘eval’ 15911 Expansion of noweb syntax references in the body of the code block 15912 only before evaluating. 15913 15914 In the most simple case, the contents of a single source block is 15915inserted within other blocks. Thus, in following example, 15916 15917 #+NAME: initialization 15918 #+BEGIN_SRC emacs-lisp 15919 (setq sentence "Never a foot too far, even.") 15920 #+END_SRC 15921 15922 #+BEGIN_SRC emacs-lisp :noweb yes 15923 <<initialization>> 15924 (reverse sentence) 15925 #+END_SRC 15926 15927the second code block is expanded as 15928 15929 #+BEGIN_SRC emacs-lisp :noweb yes 15930 (setq sentence "Never a foot too far, even.") 15931 (reverse sentence) 15932 #+END_SRC 15933 15934 You may also include the contents of multiple blocks sharing a common 15935‘noweb-ref’ header argument, which can be set at the file, sub-tree, or 15936code block level. In the example Org file shown next, the body of the 15937source code in each block is extracted for concatenation to a pure code 15938file when tangled. 15939 15940 #+BEGIN_SRC sh :tangle yes :noweb yes :shebang #!/bin/sh 15941 <<fullest-disk>> 15942 #+END_SRC 15943 * the mount point of the fullest disk 15944 :PROPERTIES: 15945 :header-args: :noweb-ref fullest-disk 15946 :END: 15947 15948 ** query all mounted disks 15949 #+BEGIN_SRC sh 15950 df \ 15951 #+END_SRC 15952 15953 ** strip the header row 15954 #+BEGIN_SRC sh 15955 |sed '1d' \ 15956 #+END_SRC 15957 15958 ** output mount point of fullest disk 15959 #+BEGIN_SRC sh 15960 |awk '{if (u < +$5) {u = +$5; m = $6}} END {print m}' 15961 #+END_SRC 15962 15963 By default a newline separates each noweb reference concatenation. 15964To use a different separator, edit the ‘noweb-sep’ header argument. 15965 15966 Alternatively, Org can include the results of evaluation of a single 15967code block rather than its body. Evaluation occurs when parentheses, 15968possibly including arguments, are appended to the code block name, as 15969shown below. 15970 15971 <<NAME(optional arguments)>> 15972 15973 Note that in this case, a code block name set by ‘NAME’ keyword is 15974required; the reference set by ‘noweb-ref’ will not work when evaluation 15975is desired. 15976 15977 Here is an example that demonstrates how the exported content changes 15978when noweb style references are used with parentheses versus without. 15979Given: 15980 15981 #+NAME: some-code 15982 #+BEGIN_SRC python :var num=0 :results output :exports none 15983 print(num*10) 15984 #+END_SRC 15985 15986this code block: 15987 15988 #+BEGIN_SRC text :noweb yes 15989 <<some-code>> 15990 #+END_SRC 15991 15992expands to: 15993 15994 print(num*10) 15995 15996 Below, a similar noweb style reference is used, but with parentheses, 15997while setting a variable ‘num’ to 10: 15998 15999 #+BEGIN_SRC text :noweb yes 16000 <<some-code(num=10)>> 16001 #+END_SRC 16002 16003Note that the expansion now contains the results of the code block 16004‘some-code’, not the code block itself: 16005 16006 100 16007 16008 Noweb insertions honor prefix characters that appear before the noweb 16009syntax reference. This behavior is illustrated in the following 16010example. Because the ‘<<example>>’ noweb reference appears behind the 16011SQL comment syntax, each line of the expanded noweb reference is 16012commented. With: 16013 16014 #+NAME: example 16015 #+BEGIN_SRC text 16016 this is the 16017 multi-line body of example 16018 #+END_SRC 16019 16020this code block: 16021 16022 #+BEGIN_SRC sql :noweb yes 16023 ---<<example>> 16024 #+END_SRC 16025 16026expands to: 16027 16028 #+BEGIN_SRC sql :noweb yes 16029 ---this is the 16030 ---multi-line body of example 16031 #+END_SRC 16032 16033 Since this change does not affect noweb replacement text without 16034newlines in them, inline noweb references are acceptable. 16035 16036 This feature can also be used for management of indentation in 16037exported code snippets. With: 16038 16039 #+NAME: if-true 16040 #+BEGIN_SRC python :exports none 16041 print('do things when true') 16042 #+end_src 16043 16044 #+name: if-false 16045 #+begin_src python :exports none 16046 print('do things when false') 16047 #+end_src 16048 16049this code block: 16050 16051 #+begin_src python :noweb yes :results output 16052 if true: 16053 <<if-true>> 16054 else: 16055 <<if-false>> 16056 #+end_src 16057 16058expands to: 16059 16060 if true: 16061 print('do things when true') 16062 else: 16063 print('do things when false') 16064 16065 When in doubt about the outcome of a source code block expansion, you 16066can preview the results with the following command: 16067 16068‘C-c C-v v’ or ‘C-c C-v C-v’ (‘org-babel-expand-src-block’) 16069 Expand the current source code block according to its header 16070 arguments and pop open the results in a preview buffer. 16071 16072 ---------- Footnotes ---------- 16073 16074 (1) For noweb literate programming details, see 16075<http://www.cs.tufts.edu/~nr/noweb/>. 16076 16077 16078File: org.info, Node: Library of Babel, Next: Key bindings and Useful Functions, Prev: Noweb Reference Syntax, Up: Working with Source Code 16079 1608015.12 Library of Babel 16081====================== 16082 16083The “Library of Babel” is a collection of code blocks. Like a function 16084library, these code blocks can be called from other Org files. A 16085collection of useful code blocks is available on Worg 16086(https://orgmode.org/worg/library-of-babel.html). For remote code block 16087evaluation syntax, see *note Evaluating Code Blocks::. 16088 16089 For any user to add code to the library, first save the code in 16090regular code blocks of an Org file, and then load the Org file with 16091‘org-babel-lob-ingest’, which is bound to ‘C-c C-v i’. 16092 16093 16094File: org.info, Node: Key bindings and Useful Functions, Next: Batch Execution, Prev: Library of Babel, Up: Working with Source Code 16095 1609615.13 Key bindings and Useful Functions 16097======================================= 16098 16099Many common Org mode key sequences are re-bound depending on the 16100context. 16101 16102 Active key bindings in code blocks: 16103 16104Key binding Function 16105-------------------------------------------------------- 16106‘C-c C-c’ ‘org-babel-execute-src-block’ 16107‘C-c C-o’ ‘org-babel-open-src-block-result’ 16108‘M-<UP>’ ‘org-babel-load-in-session’ 16109‘M-<DOWN>’ ‘org-babel-pop-to-session’ 16110 16111 Active key bindings in Org mode buffer: 16112 16113Key binding Function 16114-------------------------------------------------------------------------- 16115‘C-c C-v p’ or ‘C-c C-v C-p’ ‘org-babel-previous-src-block’ 16116‘C-c C-v n’ or ‘C-c C-v C-n’ ‘org-babel-next-src-block’ 16117‘C-c C-v e’ or ‘C-c C-v C-e’ ‘org-babel-execute-maybe’ 16118‘C-c C-v o’ or ‘C-c C-v C-o’ ‘org-babel-open-src-block-result’ 16119‘C-c C-v v’ or ‘C-c C-v C-v’ ‘org-babel-expand-src-block’ 16120‘C-c C-v u’ or ‘C-c C-v C-u’ ‘org-babel-goto-src-block-head’ 16121‘C-c C-v g’ or ‘C-c C-v C-g’ ‘org-babel-goto-named-src-block’ 16122‘C-c C-v r’ or ‘C-c C-v C-r’ ‘org-babel-goto-named-result’ 16123‘C-c C-v b’ or ‘C-c C-v C-b’ ‘org-babel-execute-buffer’ 16124‘C-c C-v s’ or ‘C-c C-v C-s’ ‘org-babel-execute-subtree’ 16125‘C-c C-v d’ or ‘C-c C-v C-d’ ‘org-babel-demarcate-block’ 16126‘C-c C-v t’ or ‘C-c C-v C-t’ ‘org-babel-tangle’ 16127‘C-c C-v f’ or ‘C-c C-v C-f’ ‘org-babel-tangle-file’ 16128‘C-c C-v c’ or ‘C-c C-v C-c’ ‘org-babel-check-src-block’ 16129‘C-c C-v j’ or ‘C-c C-v C-j’ ‘org-babel-insert-header-arg’ 16130‘C-c C-v l’ or ‘C-c C-v C-l’ ‘org-babel-load-in-session’ 16131‘C-c C-v i’ or ‘C-c C-v C-i’ ‘org-babel-lob-ingest’ 16132‘C-c C-v I’ or ‘C-c C-v C-I’ ‘org-babel-view-src-block-info’ 16133‘C-c C-v z’ or ‘C-c C-v C-z’ ‘org-babel-switch-to-session-with-code’ 16134‘C-c C-v a’ or ‘C-c C-v C-a’ ‘org-babel-sha1-hash’ 16135‘C-c C-v h’ or ‘C-c C-v C-h’ ‘org-babel-describe-bindings’ 16136‘C-c C-v x’ or ‘C-c C-v C-x’ ‘org-babel-do-key-sequence-in-edit-buffer’ 16137 16138 16139File: org.info, Node: Batch Execution, Prev: Key bindings and Useful Functions, Up: Working with Source Code 16140 1614115.14 Batch Execution 16142===================== 16143 16144Org mode features, including working with source code facilities can be 16145invoked from the command line. This enables building shell scripts for 16146batch processing, running automated system tasks, and expanding Org 16147mode’s usefulness. 16148 16149 The sample script shows batch processing of multiple files using 16150‘org-babel-tangle’. 16151 16152 #!/bin/sh 16153 # Tangle files with Org mode 16154 # 16155 emacs -Q --batch --eval " 16156 (progn 16157 (require 'ob-tangle) 16158 (dolist (file command-line-args-left) 16159 (with-current-buffer (find-file-noselect file) 16160 (org-babel-tangle)))) 16161 " "$@" 16162 16163 16164File: org.info, Node: Miscellaneous, Next: Hacking, Prev: Working with Source Code, Up: Top 16165 1616616 Miscellaneous 16167**************** 16168 16169* Menu: 16170 16171* Completion:: ‘M-<TAB>’ guesses completions. 16172* Structure Templates:: Quick insertion of structural elements. 16173* Speed Keys:: Electric commands at the beginning of a headline. 16174* Clean View:: Getting rid of leading stars in the outline. 16175* Execute commands in the active region:: Execute commands on multiple items in Org or agenda view. 16176* Dynamic Headline Numbering:: Display and update outline numbering. 16177* The Very Busy C-c C-c Key:: When in doubt, press ‘C-c C-c’. 16178* In-buffer Settings:: Overview of keywords. 16179* Org Syntax:: Formal description of Org’s syntax. 16180* Documentation Access:: Read documentation about current syntax. 16181* Escape Character:: Prevent Org from interpreting your writing. 16182* Code Evaluation Security:: Org files evaluate in-line code. 16183* Interaction:: With other Emacs packages. 16184* TTY Keys:: Using Org on a tty. 16185* Protocols:: External access to Emacs and Org. 16186* Org Crypt:: Encrypting Org files. 16187* Org Mobile:: Viewing and capture on a mobile device. 16188 16189 16190File: org.info, Node: Completion, Next: Structure Templates, Up: Miscellaneous 16191 1619216.1 Completion 16193=============== 16194 16195Org has in-buffer completions. Unlike minibuffer completions, which are 16196useful for quick command interactions, Org’s in-buffer completions are 16197more suitable for content creation in Org documents. Type one or more 16198letters and invoke the hot key to complete the text in-place. Depending 16199on the context and the keys, Org offers different types of completions. 16200No minibuffer is involved. Such mode-specific hot keys have become an 16201integral part of Emacs and Org provides several shortcuts. 16202 16203‘M-<TAB>’ 16204 16205 Complete word at point. 16206 16207 • At the beginning of an empty headline, complete TODO keywords. 16208 16209 • After ‘\’, complete TeX symbols supported by the exporter. 16210 16211 • After ‘:’ in a headline, complete tags. Org deduces the list 16212 of tags from the ‘TAGS’ in-buffer option (see *note Setting 16213 Tags::), the variable ‘org-tag-alist’, or from all tags used 16214 in the current buffer. 16215 16216 • After ‘:’ and not in a headline, complete property keys. The 16217 list of keys is constructed dynamically from all keys used in 16218 the current buffer. 16219 16220 • After ‘[[’, complete link abbreviations (see *note Link 16221 Abbreviations::). 16222 16223 • After ‘[[*’, complete headlines in the current buffer so that 16224 they can be used in search links like: ‘[[*find this 16225 headline]]’ 16226 16227 • After ‘#+’, complete the special keywords like ‘TYP_TODO’ or 16228 file-specific ‘OPTIONS’. After option keyword is complete, 16229 pressing ‘M-<TAB>’ again inserts example settings for this 16230 keyword. 16231 16232 • After ‘STARTUP’ keyword, complete startup items. 16233 16234 • When point is anywhere else, complete dictionary words using 16235 Ispell. 16236 16237 16238File: org.info, Node: Structure Templates, Next: Speed Keys, Prev: Completion, Up: Miscellaneous 16239 1624016.2 Structure Templates 16241======================== 16242 16243With just a few keystrokes, it is possible to insert empty structural 16244blocks, such as ‘#+BEGIN_SRC’ ... ‘#+END_SRC’, or to wrap existing text 16245in such a block. 16246 16247‘C-c C-,’ (‘org-insert-structure-template’) 16248 Prompt for a type of block structure, and insert the block at 16249 point. If the region is active, it is wrapped in the block. First 16250 prompts the user for keys, which are used to look up a structure 16251 type from the variable below. If the key is ‘<TAB>’, ‘<RET>’, or 16252 ‘<SPC>’, the user is prompted to enter a block type. 16253 16254 Available structure types are defined in 16255‘org-structure-template-alist’, see the docstring for adding or changing 16256values. 16257 16258 Org Tempo expands snippets to structures defined in 16259‘org-structure-template-alist’ and ‘org-tempo-keywords-alist’. For 16260example, ‘< s <TAB>’ creates a code block. Enable it by customizing 16261‘org-modules’ or add ‘(require 'org-tempo)’ to your Emacs init file(1). 16262 16263‘a’ ‘#+BEGIN_EXPORT ascii’ ... ‘#+END_EXPORT’ 16264‘c’ ‘#+BEGIN_CENTER’ ... ‘#+END_CENTER’ 16265‘C’ ‘#+BEGIN_COMMENT’ ... ‘#+END_COMMENT’ 16266‘e’ ‘#+BEGIN_EXAMPLE’ ... ‘#+END_EXAMPLE’ 16267‘E’ ‘#+BEGIN_EXPORT’ ... ‘#+END_EXPORT’ 16268‘h’ ‘#+BEGIN_EXPORT html’ ... ‘#+END_EXPORT’ 16269‘l’ ‘#+BEGIN_EXPORT latex’ ... ‘#+END_EXPORT’ 16270‘q’ ‘#+BEGIN_QUOTE’ ... ‘#+END_QUOTE’ 16271‘s’ ‘#+BEGIN_SRC’ ... ‘#+END_SRC’ 16272‘v’ ‘#+BEGIN_VERSE’ ... ‘#+END_VERSE’ 16273 16274 ---------- Footnotes ---------- 16275 16276 (1) For more information, please refer to the commentary section in 16277‘org-tempo.el’. 16278 16279 16280File: org.info, Node: Speed Keys, Next: Clean View, Prev: Structure Templates, Up: Miscellaneous 16281 1628216.3 Speed Keys 16283=============== 16284 16285Single keystrokes can execute custom commands in an Org file when point 16286is on a headline. Without the extra burden of a meta or modifier key, 16287Speed Keys can speed navigation or execute custom commands. Besides 16288faster navigation, Speed Keys may come in handy on small mobile devices 16289that do not have full keyboards. Speed Keys may also work on TTY 16290devices known for their problems when entering Emacs key chords. 16291 16292 By default, Org has Speed Keys disabled. To activate Speed Keys, set 16293the variable ‘org-use-speed-commands’ to a non-‘nil’ value. To trigger 16294a Speed Key, point must be at the beginning of an Org headline, before 16295any of the stars. 16296 16297 Org comes with a pre-defined list of Speed Keys. To add or modify 16298Speed Keys, customize the variable, ‘org-speed-commands-user’. For more 16299details, see the variable’s docstring. With Speed Keys activated, ‘M-x 16300org-speed-command-help’, or ‘?’ when point is at the beginning of an Org 16301headline, shows currently active Speed Keys, including the user-defined 16302ones. 16303 16304 16305File: org.info, Node: Clean View, Next: Execute commands in the active region, Prev: Speed Keys, Up: Miscellaneous 16306 1630716.4 A Cleaner Outline View 16308=========================== 16309 16310Org’s outline with stars and no indents can look cluttered for short 16311documents. For _book-like_ long documents, the effect is not as 16312noticeable. Org provides an alternate stars and indentation scheme, as 16313shown on the right in the following table. It displays only one star 16314and indents text to line up with the heading: 16315 16316 * Top level headline | * Top level headline 16317 ** Second level | * Second level 16318 *** Third level | * Third level 16319 some text | some text 16320 *** Third level | * Third level 16321 more text | more text 16322 * Another top level headline | * Another top level headline 16323 16324 Org can achieve this in two ways, (1) by just displaying the buffer 16325in this way without changing it, or (2) by actually indenting every line 16326in the desired amount with hard spaces and hiding leading stars. 16327 16328* Menu: 16329 16330* Org Indent Mode:: 16331* Hard indentation:: 16332 16333 16334File: org.info, Node: Org Indent Mode, Next: Hard indentation, Up: Clean View 16335 1633616.4.1 Org Indent Mode 16337---------------------- 16338 16339To display the buffer in the indented view, activate Org Indent minor 16340mode, using ‘M-x org-indent-mode’. Text lines that are not headlines 16341are prefixed with virtual spaces to vertically align with the headline 16342text(1). 16343 16344 To make more horizontal space, the headlines are shifted by two 16345characters. Configure ‘org-indent-indentation-per-level’ variable for a 16346different number. 16347 16348 By default, Org Indent mode turns off ‘org-adapt-indentation’ and 16349does hide leading stars by locally setting ‘org-hide-leading-stars’ to 16350‘t’: only one star on each headline is visible, the rest are masked with 16351the same font color as the background. If you want to customize this 16352default behavior, see ‘org-indent-mode-turns-on-hiding-stars’ and 16353‘org-indent-mode-turns-off-org-adapt-indentation’. 16354 16355 To globally turn on Org Indent mode for all files, customize the 16356variable ‘org-startup-indented’. To control it for individual files, 16357use ‘STARTUP’ keyword as follows: 16358 16359 #+STARTUP: indent 16360 #+STARTUP: noindent 16361 16362 ---------- Footnotes ---------- 16363 16364 (1) Org Indent mode also sets ‘wrap-prefix’ correctly for indenting 16365and wrapping long lines of headlines or text. This minor mode also 16366handles Visual Line mode and directly applied settings through 16367‘word-wrap’. 16368 16369 16370File: org.info, Node: Hard indentation, Prev: Org Indent Mode, Up: Clean View 16371 1637216.4.2 Hard indentation 16373----------------------- 16374 16375It is possible to use hard spaces to achieve the indentation instead, if 16376the bare ASCII file should have the indented look also outside Emacs(1). 16377With Org’s support, you have to indent all lines to line up with the 16378outline headers. You would use these settings(2): 16379 16380 (setq org-adapt-indentation t 16381 org-hide-leading-stars t 16382 org-odd-levels-only t) 16383 16384_Indentation of text below headlines_ (‘org-adapt-indentation’) 16385 The first setting modifies paragraph filling, line wrapping, and 16386 structure editing commands to preserving or adapting the 16387 indentation as appropriate. 16388 16389_Hiding leading stars_ (‘org-hide-leading-stars’) 16390 The second setting makes leading stars invisible by applying the 16391 face ‘org-hide’ to them. For per-file preference, use these file 16392 ‘STARTUP’ options: 16393 16394 #+STARTUP: hidestars 16395 #+STARTUP: showstars 16396 16397_Odd levels_ (‘org-odd-levels-only’) 16398 The third setting makes Org use only odd levels, 1, 3, 5, ..., in 16399 the outline to create more indentation. On a per-file level, 16400 control this with: 16401 16402 #+STARTUP: odd 16403 #+STARTUP: oddeven 16404 16405 To convert a file between single and double stars layouts, use ‘M-x 16406 org-convert-to-odd-levels’ and ‘M-x org-convert-to-oddeven-levels’. 16407 16408 ---------- Footnotes ---------- 16409 16410 (1) This works, but requires extra effort. Org Indent mode is more 16411convenient for most applications. 16412 16413 (2) ‘org-adapt-indentation’ can also be set to ‘'headline-data’, in 16414which case only data lines below the headline will be indented. 16415 16416 16417File: org.info, Node: Execute commands in the active region, Next: Dynamic Headline Numbering, Prev: Clean View, Up: Miscellaneous 16418 1641916.5 Execute commands in the active region 16420========================================== 16421 16422When in an Org buffer and the region is active, some commands will apply 16423to all the subtrees in the active region. For example, hitting ‘C-c 16424C-s’ when multiple headlines are within the active region will 16425successively prompt you for a new schedule date and time. To disable 16426this, set the option ‘org-loop-over-headlines-in-active-region’ to 16427non-‘t’, activate the region and run the command normally. 16428 16429 ‘org-agenda-loop-over-headlines-in-active-region’ is the equivalent 16430option of the agenda buffer, where you can also use *note bulk editing 16431of selected entries: Bulk remote editing selected entries. 16432 16433 Not all commands can loop in the active region and what subtrees or 16434headlines are considered can be refined: see the docstrings of these 16435options for more details. 16436 16437 16438File: org.info, Node: Dynamic Headline Numbering, Next: The Very Busy C-c C-c Key, Prev: Execute commands in the active region, Up: Miscellaneous 16439 1644016.6 Dynamic Headline Numbering 16441=============================== 16442 16443The Org Num minor mode, toggled with ‘M-x org-num-mode’, displays 16444outline numbering on top of headlines. It also updates it automatically 16445upon changes to the structure of the document. 16446 16447 By default, all headlines are numbered. You can limit numbering to 16448specific headlines according to their level, tags, ‘COMMENT’ keyword, or 16449‘UNNUMBERED’ property. Set ‘org-num-max-level’, ‘org-num-skip-tags’, 16450‘org-num-skip-commented’, ‘org-num-skip-unnumbered’, or 16451‘org-num-skip-footnotes’ accordingly. 16452 16453 If ‘org-num-skip-footnotes’ is non-‘nil’, footnotes sections (see 16454*note Creating Footnotes::) are not numbered either. 16455 16456 You can control how the numbering is displayed by setting 16457‘org-num-face’ and ‘org-num-format-function’. 16458 16459 You can also turn this mode globally for all Org files by setting the 16460option ‘org-startup-numerated’ to ‘t’, or locally on a file by using 16461‘#+startup: num’. 16462 16463 16464File: org.info, Node: The Very Busy C-c C-c Key, Next: In-buffer Settings, Prev: Dynamic Headline Numbering, Up: Miscellaneous 16465 1646616.7 The Very Busy ‘C-c C-c’ Key 16467================================ 16468 16469The ‘C-c C-c’ key in Org serves many purposes depending on the context. 16470It is probably the most over-worked, multi-purpose key combination in 16471Org. Its uses are well documented throughout this manual, but here is a 16472consolidated list for easy reference. 16473 16474 • If column view (see *note Column View::) is on, exit column view. 16475 16476 • If any highlights shown in the buffer from the creation of a sparse 16477 tree, or from clock display, remove such highlights. 16478 16479 • If point is in one of the special ‘KEYWORD’ lines, scan the buffer 16480 for these lines and update the information. Also reset the Org 16481 file cache used to temporary store the contents of URLs used as 16482 values for keywords like ‘SETUPFILE’. 16483 16484 • If point is inside a table, realign the table. 16485 16486 • If point is on a ‘TBLFM’ keyword, re-apply the formulas to the 16487 entire table. 16488 16489 • If the current buffer is a capture buffer, close the note and file 16490 it. With a prefix argument, also jump to the target location after 16491 saving the note. 16492 16493 • If point is on a ‘<<<target>>>’, update radio targets and 16494 corresponding links in this buffer. 16495 16496 • If point is on a property line or at the start or end of a property 16497 drawer, offer property commands. 16498 16499 • If point is at a footnote reference, go to the corresponding 16500 definition, and _vice versa_. 16501 16502 • If point is on a statistics cookie, update it. 16503 16504 • If point is in a plain list item with a checkbox, toggle the status 16505 of the checkbox. 16506 16507 • If point is on a numbered item in a plain list, renumber the 16508 ordered list. 16509 16510 • If point is on the ‘#+BEGIN’ line of a dynamic block, the block is 16511 updated. 16512 16513 • If point is at a timestamp, fix the day name in the timestamp. 16514 16515 16516File: org.info, Node: In-buffer Settings, Next: Org Syntax, Prev: The Very Busy C-c C-c Key, Up: Miscellaneous 16517 1651816.8 Summary of In-Buffer Settings 16519================================== 16520 16521In-buffer settings start with ‘#+’, followed by a keyword, a colon, and 16522then a word for each setting. Org accepts multiple settings on the same 16523line. Org also accepts multiple lines for a keyword. This manual 16524describes these settings throughout. A summary follows here. 16525 16526 ‘C-c C-c’ activates any changes to the in-buffer settings. Closing 16527and reopening the Org file in Emacs also activates the changes. 16528 16529‘#+ARCHIVE: %s_done::’ 16530 Sets the archive location of the agenda file. The corresponding 16531 variable is ‘org-archive-location’. 16532 16533‘#+CATEGORY’ 16534 Sets the category of the agenda file, which applies to the entire 16535 document. 16536 16537‘#+COLUMNS: %25ITEM ...’ 16538 Set the default format for columns view. This format applies when 16539 columns view is invoked in locations where no ‘COLUMNS’ property 16540 applies. 16541 16542‘#+CONSTANTS: name1=value1 ...’ 16543 Set file-local values for constants that table formulas can use. 16544 This line sets the local variable 16545 ‘org-table-formula-constants-local’. The global version of this 16546 variable is ‘org-table-formula-constants’. 16547 16548‘#+FILETAGS: :tag1:tag2:tag3:’ 16549 Set tags that all entries in the file inherit from, including the 16550 top-level entries. 16551 16552‘#+LINK: linkword replace’ 16553 Each line specifies one abbreviation for one link. Use multiple 16554 ‘LINK’ keywords for more, see *note Link Abbreviations::. The 16555 corresponding variable is ‘org-link-abbrev-alist’. 16556 16557‘#+PRIORITIES: highest lowest default’ 16558 This line sets the limits and the default for the priorities. All 16559 three must be either letters A–Z or numbers 0–9. The highest 16560 priority must have a lower ASCII number than the lowest priority. 16561 16562‘#+PROPERTY: Property_Name Value’ 16563 This line sets a default inheritance value for entries in the 16564 current buffer, most useful for specifying the allowed values of a 16565 property. 16566 16567‘#+SETUPFILE: file’ 16568 The setup file or a URL pointing to such file is for additional 16569 in-buffer settings. Org loads this file and parses it for any 16570 settings in it only when Org opens the main file. If URL is 16571 specified, the contents are downloaded and stored in a temporary 16572 file cache. ‘C-c C-c’ on the settings line parses and loads the 16573 file, and also resets the temporary file cache. Org also parses 16574 and loads the document during normal exporting process. Org parses 16575 the contents of this document as if it was included in the buffer. 16576 It can be another Org file. To visit the file—not a URL—use ‘C-c 16577 '’ while point is on the line with the file name. 16578 16579‘#+STARTUP:’ 16580 Startup options Org uses when first visiting a file. 16581 16582 The first set of options deals with the initial visibility of the 16583 outline tree. The corresponding variable for global default 16584 settings is ‘org-startup-folded’ with a default value of 16585 ‘showeverything’. 16586 16587 ‘overview’ Top-level headlines only. 16588 ‘content’ All headlines. 16589 ‘showall’ No folding on any entry. 16590 ‘showeverything’ Show even drawer contents. 16591 16592 Dynamic virtual indentation is controlled by the variable 16593 ‘org-startup-indented’(1). 16594 16595 ‘indent’ Start with Org Indent mode turned on. 16596 ‘noindent’ Start with Org Indent mode turned off. 16597 16598 Dynamic virtual numeration of headlines is controlled by the 16599 variable ‘org-startup-numerated’. 16600 16601 ‘num’ Start with Org num mode turned on. 16602 ‘nonum’ Start with Org num mode turned off. 16603 16604 Aligns tables consistently upon visiting a file. The corresponding 16605 variable is ‘org-startup-align-all-tables’ with ‘nil’ as default 16606 value. 16607 16608 ‘align’ Align all tables. 16609 ‘noalign’ Do not align tables on startup. 16610 16611 Shrink table columns with a width cookie. The corresponding 16612 variable is ‘org-startup-shrink-all-tables’ with ‘nil’ as default 16613 value. 16614 16615 When visiting a file, inline images can be automatically displayed. 16616 The corresponding variable is ‘org-startup-with-inline-images’, 16617 with a default value ‘nil’ to avoid delays when visiting a file. 16618 16619 ‘inlineimages’ Show inline images. 16620 ‘noinlineimages’ Do not show inline images on startup. 16621 16622 Logging the closing and reopening of TODO items and clock intervals 16623 can be configured using these options (see variables 16624 ‘org-log-done’, ‘org-log-note-clock-out’, and ‘org-log-repeat’). 16625 16626 ‘logdone’ Record a timestamp when an item is marked as done. 16627 ‘lognotedone’ Record timestamp and a note when DONE. 16628 ‘nologdone’ Do not record when items are marked as done. 16629 ‘logrepeat’ Record a time when reinstating a repeating item. 16630 ‘lognoterepeat’ Record a note when reinstating a repeating item. 16631 ‘nologrepeat’ Do not record when reinstating repeating item. 16632 ‘lognoteclock-out’ Record a note when clocking out. 16633 ‘nolognoteclock-out’ Do not record a note when clocking out. 16634 ‘logreschedule’ Record a timestamp when scheduling time changes. 16635 ‘lognotereschedule’ Record a note when scheduling time changes. 16636 ‘nologreschedule’ Do not record when a scheduling date changes. 16637 ‘logredeadline’ Record a timestamp when deadline changes. 16638 ‘lognoteredeadline’ Record a note when deadline changes. 16639 ‘nologredeadline’ Do not record when a deadline date changes. 16640 ‘logrefile’ Record a timestamp when refiling. 16641 ‘lognoterefile’ Record a note when refiling. 16642 ‘nologrefile’ Do not record when refiling. 16643 16644 Here are the options for hiding leading stars in outline headings, 16645 and for indenting outlines. The corresponding variables are 16646 ‘org-hide-leading-stars’ and ‘org-odd-levels-only’, both with a 16647 default setting ‘nil’ (meaning ‘showstars’ and ‘oddeven’). 16648 16649 ‘hidestars’ Make all but one of the stars starting a headline invisible. 16650 ‘showstars’ Show all stars starting a headline. 16651 ‘indent’ Virtual indentation according to outline level. 16652 ‘noindent’ No virtual indentation according to outline level. 16653 ‘odd’ Allow only odd outline levels (1, 3, ...). 16654 ‘oddeven’ Allow all outline levels. 16655 16656 To turn on custom format overlays over timestamps (variables 16657 ‘org-put-time-stamp-overlays’ and 16658 ‘org-time-stamp-overlay-formats’), use: 16659 16660 ‘customtime’ Overlay custom time format. 16661 16662 The following options influence the table spreadsheet (variable 16663 ‘constants-unit-system’). 16664 16665 ‘constcgs’ ‘constants.el’ should use the c-g-s unit system. 16666 ‘constSI’ ‘constants.el’ should use the SI unit system. 16667 16668 To influence footnote settings, use the following keywords. The 16669 corresponding variables are ‘org-footnote-define-inline’, 16670 ‘org-footnote-auto-label’, and ‘org-footnote-auto-adjust’. 16671 16672 ‘fninline’ Define footnotes inline. 16673 ‘fnnoinline’ Define footnotes in separate section. 16674 ‘fnlocal’ Define footnotes near first reference, but not inline. 16675 ‘fnprompt’ Prompt for footnote labels. 16676 ‘fnauto’ Create ‘[fn:1]’-like labels automatically (default). 16677 ‘fnconfirm’ Offer automatic label for editing or confirmation. 16678 ‘fnadjust’ Automatically renumber and sort footnotes. 16679 ‘nofnadjust’ Do not renumber and sort automatically. 16680 16681 To hide blocks on startup, use these keywords. The corresponding 16682 variable is ‘org-hide-block-startup’. 16683 16684 ‘hideblocks’ Hide all begin/end blocks on startup. 16685 ‘nohideblocks’ Do not hide blocks on startup. 16686 16687 The display of entities as UTF-8 characters is governed by the 16688 variable ‘org-pretty-entities’ and the keywords 16689 16690 ‘entitiespretty’ Show entities as UTF-8 characters where possible. 16691 ‘entitiesplain’ Leave entities plain. 16692 16693‘#+TAGS: TAG1(c1) TAG2(c2)’ 16694 These lines (several such lines are allowed) specify the valid tags 16695 in this file, and (potentially) the corresponding _fast tag 16696 selection_ keys. The corresponding variable is ‘org-tag-alist’. 16697 16698‘#+TODO:’ 16699‘#+SEQ_TODO:’ 16700‘#+TYP_TODO:’ 16701 These lines set the TODO keywords and their interpretation in the 16702 current file. The corresponding variable is ‘org-todo-keywords’. 16703 16704 ---------- Footnotes ---------- 16705 16706 (1) Note that Org Indent mode also sets the ‘wrap-prefix’ property, 16707such that Visual Line mode (or purely setting ‘word-wrap’) wraps long 16708lines, including headlines, correctly indented. 16709 16710 16711File: org.info, Node: Org Syntax, Next: Documentation Access, Prev: In-buffer Settings, Up: Miscellaneous 16712 1671316.9 Org Syntax 16714=============== 16715 16716A reference document providing a formal description of Org’s syntax is 16717available as a draft on Worg 16718(https://orgmode.org/worg/dev/org-syntax.html), written and maintained 16719by Nicolas Goaziou. It defines Org’s core internal concepts such as 16720“headlines”, “sections”, “affiliated keywords”, “(greater) elements” and 16721“objects”. Each part of an Org document belongs to one of the previous 16722categories. 16723 16724 To explore the abstract structure of an Org buffer, run this in a 16725buffer: 16726 16727 M-: (org-element-parse-buffer) <RET> 16728 16729It outputs a list containing the buffer’s content represented as an 16730abstract structure. The export engine relies on the information stored 16731in this list. Most interactive commands—e.g., for structure 16732editing—also rely on the syntactic meaning of the surrounding context. 16733 16734 You can probe the syntax of your documents with the command 16735 16736 M-x org-lint <RET> 16737 16738It runs a number of checks to find common mistakes. It then displays 16739their location in a dedicated buffer, along with a description and a 16740“trust level”, since false-positive are possible. From there, you can 16741operate on the reports with the following keys: 16742 16743‘C-j’, ‘<TAB>’ Display the offending line 16744‘<RET>’ Move point to the offending line 16745‘g’ Check the document again 16746‘h’ Hide all reports from the same checker 16747‘i’ Also remove them from all subsequent checks 16748‘S’ Sort reports by the column at point 16749 16750 16751File: org.info, Node: Documentation Access, Next: Escape Character, Prev: Org Syntax, Up: Miscellaneous 16752 1675316.10 Context Dependent Documentation 16754===================================== 16755 16756‘C-c C-x I’ in an Org file tries to open a suitable section of the Org 16757manual depending on the syntax at point. For example, using it on a 16758headline displays “Document Structure” section. 16759 16760 ‘q’ closes the Info window. 16761 16762 16763File: org.info, Node: Escape Character, Next: Code Evaluation Security, Prev: Documentation Access, Up: Miscellaneous 16764 1676516.11 Escape Character 16766====================== 16767 16768You may sometimes want to write text that looks like Org syntax, but 16769should really read as plain text. Org may use a specific escape 16770character in some situations, i.e., a backslash in macros (see *note 16771Macro Replacement::) and links (see *note Link Format::), or a comma in 16772source and example blocks (see *note Literal Examples::). In the 16773general case, however, we suggest to use the zero width space. You can 16774insert one with any of the following: 16775 16776 C-x 8 <RET> zero width space <RET> 16777 C-x 8 <RET> 200B <RET> 16778 16779 For example, in order to write ‘[[1,2]]’ as-is in your document, you 16780may write instead 16781 16782 [X[1,2]] 16783 16784 where ‘X’ denotes the zero width space character. 16785 16786 16787File: org.info, Node: Code Evaluation Security, Next: Interaction, Prev: Escape Character, Up: Miscellaneous 16788 1678916.12 Code Evaluation and Security Issues 16790========================================= 16791 16792Unlike plain text, running code comes with risk. Each source code 16793block, in terms of risk, is equivalent to an executable file. Org 16794therefore puts a few confirmation prompts by default. This is to alert 16795the casual user from accidentally running untrusted code. 16796 16797 For users who do not run code blocks or write code regularly, Org’s 16798default settings should suffice. However, some users may want to tweak 16799the prompts for fewer interruptions. To weigh the risks of automatic 16800execution of code blocks, here are some details about code evaluation. 16801 16802 Org evaluates code in the following circumstances: 16803 16804_Source code blocks_ 16805 Org evaluates source code blocks in an Org file during export. Org 16806 also evaluates a source code block with the ‘C-c C-c’ key chord. 16807 Users exporting or running code blocks must load files only from 16808 trusted sources. Be wary of customizing variables that remove or 16809 alter default security measures. 16810 16811 -- User Option: org-confirm-babel-evaluate 16812 When ‘t’, Org prompts the user for confirmation before 16813 executing each code block. When ‘nil’, Org executes code 16814 blocks without prompting the user for confirmation. When this 16815 option is set to a custom function, Org invokes the function 16816 with these two arguments: the source code language and the 16817 body of the code block. The custom function must return 16818 either a ‘t’ or ‘nil’, which determines if the user is 16819 prompted. Each source code language can be handled separately 16820 through this function argument. 16821 16822 For example, here is how to execute ditaa code blocks without 16823 prompting: 16824 16825 (defun my-org-confirm-babel-evaluate (lang body) 16826 (not (string= lang "ditaa"))) ;don't ask for ditaa 16827 (setq org-confirm-babel-evaluate #'my-org-confirm-babel-evaluate) 16828 16829_Following ‘shell’ and ‘elisp’ links_ 16830 Org has two link types that can directly evaluate code (see *note 16831 External Links::). Because such code is not visible, these links 16832 have a potential risk. Org therefore prompts the user when it 16833 encounters such links. The customization variables are: 16834 16835 -- User Option: org-link-shell-confirm-function 16836 Function that prompts the user before executing a shell link. 16837 16838 -- User Option: org-link-elisp-confirm-function 16839 Function that prompts the user before executing an Emacs Lisp 16840 link. 16841 16842_Formulas in tables_ 16843 Formulas in tables (see *note The Spreadsheet::) are code that is 16844 evaluated either by the Calc interpreter, or by the Emacs Lisp 16845 interpreter. 16846 16847 16848File: org.info, Node: Interaction, Next: TTY Keys, Prev: Code Evaluation Security, Up: Miscellaneous 16849 1685016.13 Interaction with Other Packages 16851===================================== 16852 16853Org’s compatibility and the level of interaction with other Emacs 16854packages are documented here. 16855 16856* Menu: 16857 16858* Cooperation:: Packages Org cooperates with. 16859* Conflicts:: Packages that lead to conflicts. 16860 16861 16862File: org.info, Node: Cooperation, Next: Conflicts, Up: Interaction 16863 1686416.13.1 Packages that Org cooperates with 16865----------------------------------------- 16866 16867‘calc.el’ by Dave Gillespie 16868 16869 Org uses the Calc package for implementing spreadsheet 16870 functionality in its tables (see *note The Spreadsheet::). Org 16871 also uses Calc for embedded calculations. See *note GNU Emacs Calc 16872 Manual: (calc)Embedded Mode. 16873 16874‘constants.el’ by Carsten Dominik 16875 16876 Org can use names for constants in formulas in tables. Org can 16877 also use calculation suffixes for units, such as ‘M’ for ‘Mega’. 16878 For a standard collection of such constants, install the 16879 ‘constants’ package. Install version 2.0 of this package, 16880 available at <http://www.astro.uva.nl/~dominik/Tools>. Org checks 16881 if the function ‘constants-get’ has been autoloaded. Installation 16882 instructions are in the file ‘constants.el’. 16883 16884‘cdlatex.el’ by Carsten Dominik 16885 16886 Org mode can make use of the CDLaTeX package to efficiently enter 16887 LaTeX fragments into Org files. See *note CDLaTeX mode::. 16888 16889‘imenu.el’ by Ake Stenhoff and Lars Lindberg 16890 16891 Imenu creates dynamic menus based on an index of items in a file. 16892 Org mode supports Imenu menus. Enable it with a mode hook as 16893 follows: 16894 16895 (add-hook 'org-mode-hook 16896 (lambda () (imenu-add-to-menubar "Imenu"))) 16897 16898 By default the index is two levels deep—you can modify the depth 16899 using the option ‘org-imenu-depth’. 16900 16901‘speedbar.el’ by Eric M. Ludlam 16902 16903 Speedbar package creates a special Emacs frame for displaying files 16904 and index items in files. Org mode supports Speedbar; users can 16905 drill into Org files directly from the Speedbar. The ‘<’ in the 16906 Speedbar frame tweaks the agenda commands to that file or to a 16907 subtree. 16908 16909‘table.el’ by Takaaki Ota 16910 16911 Complex ASCII tables with automatic line wrapping, column- and 16912 row-spanning, and alignment can be created using the Emacs table 16913 package by Takaaki Ota. Org mode recognizes such tables and 16914 exports them properly. ‘C-c '’ to edit these tables in a special 16915 buffer, much like Org’s code blocks. Because of interference with 16916 other Org mode functionality, Takaaki Ota tables cannot be edited 16917 directly in the Org buffer. 16918 16919 ‘C-c '’ (‘org-edit-special’) 16920 Edit a ‘table.el’ table. Works when point is in a ‘table.el’ 16921 table. 16922 16923 ‘C-c ~’ (‘org-table-create-with-table.el’) 16924 Insert a ‘table.el’ table. If there is already a table at 16925 point, this command converts it between the ‘table.el’ format 16926 and the Org mode format. See the documentation string of the 16927 command ‘org-convert-table’ for the restrictions under which 16928 this is possible. 16929 16930 16931File: org.info, Node: Conflicts, Prev: Cooperation, Up: Interaction 16932 1693316.13.2 Packages that conflict with Org mode 16934-------------------------------------------- 16935 16936In Emacs, shift-selection combines motions of point with shift key to 16937enlarge regions. Emacs sets this mode by default. This conflicts with 16938Org’s use of ‘S-<cursor>’ commands to change timestamps, TODO keywords, 16939priorities, and item bullet types, etc. Since ‘S-<cursor>’ commands 16940outside of specific contexts do not do anything, Org offers the variable 16941‘org-support-shift-select’ for customization. Org mode accommodates 16942shift selection by (i) making it available outside of the special 16943contexts where special commands apply, and (ii) extending an existing 16944active region even if point moves across a special context. 16945 16946‘cua.el’ by Kim F. Storm 16947 Org key bindings conflict with ‘S-<cursor>’ keys used by CUA mode. 16948 For Org to relinquish these bindings to CUA mode, configure the 16949 variable ‘org-replace-disputed-keys’. When set, Org moves the 16950 following key bindings in Org files, and in the agenda buffer—but 16951 not during date selection. 16952 16953 ‘S-<UP>’ ⇒ ‘M-p’ ‘S-<DOWN>’ ⇒ ‘M-n’ 16954 ‘S-<LEFT>’ ⇒ ‘M--’ ‘S-<RIGHT>’ ⇒ ‘M-+’ 16955 ‘C-S-<LEFT>’ ⇒ ‘M-S--’ ‘C-S-<RIGHT>’ ⇒ ‘M-S-+’ 16956 16957 Yes, these are unfortunately more difficult to remember. If you 16958 want to have other replacement keys, look at the variable 16959 ‘org-disputed-keys’. 16960 16961‘ecomplete.el’ by Lars Magne Ingebrigtsen 16962 Ecomplete provides “electric” address completion in address header 16963 lines in message buffers. Sadly Orgtbl mode cuts Ecomplete’s power 16964 supply: no completion happens when Orgtbl mode is enabled in 16965 message buffers while entering text in address header lines. If 16966 one wants to use ecomplete one should _not_ follow the advice to 16967 automagically turn on Orgtbl mode in message buffers (see *note 16968 Orgtbl Mode::), but instead—after filling in the message 16969 headers—turn on Orgtbl mode manually when needed in the messages 16970 body. 16971 16972‘filladapt.el’ by Kyle Jones 16973 Org mode tries to do the right thing when filling paragraphs, list 16974 items and other elements. Many users reported problems using both 16975 ‘filladapt.el’ and Org mode, so a safe thing to do is to disable 16976 filladapt like this: 16977 16978 (add-hook 'org-mode-hook 'turn-off-filladapt-mode) 16979 16980‘viper.el’ by Michael Kifer 16981 16982 Viper uses ‘C-c /’ and therefore makes this key not access the 16983 corresponding Org mode command ‘org-sparse-tree’. You need to find 16984 another key for this command, or override the key in 16985 ‘viper-vi-global-user-map’ with 16986 16987 (define-key viper-vi-global-user-map "C-c /" 'org-sparse-tree) 16988 16989‘windmove.el’ by Hovav Shacham 16990 16991 This package also uses the ‘S-<cursor>’ keys, so everything written 16992 in the paragraph above about CUA mode also applies here. If you 16993 want to make the windmove function active in locations where Org 16994 mode does not have special functionality on ‘S-<cursor>’, add this 16995 to your configuration: 16996 16997 ;; Make windmove work in Org mode: 16998 (add-hook 'org-shiftup-final-hook 'windmove-up) 16999 (add-hook 'org-shiftleft-final-hook 'windmove-left) 17000 (add-hook 'org-shiftdown-final-hook 'windmove-down) 17001 (add-hook 'org-shiftright-final-hook 'windmove-right) 17002 17003‘yasnippet.el’ 17004 The way Org mode binds the ‘<TAB>’ key (binding to ‘[tab]’ instead 17005 of ‘"\t"’) overrules YASnippet’s access to this key. The following 17006 code fixed this problem: 17007 17008 (add-hook 'org-mode-hook 17009 (lambda () 17010 (setq-local yas/trigger-key [tab]) 17011 (define-key yas/keymap [tab] 'yas/next-field-or-maybe-expand))) 17012 17013 The latest version of YASnippet does not play well with Org mode. 17014 If the above code does not fix the conflict, start by defining the 17015 following function: 17016 17017 (defun yas/org-very-safe-expand () 17018 (let ((yas/fallback-behavior 'return-nil)) (yas/expand))) 17019 17020 Then, tell Org mode to use that function: 17021 17022 (add-hook 'org-mode-hook 17023 (lambda () 17024 (make-variable-buffer-local 'yas/trigger-key) 17025 (setq yas/trigger-key [tab]) 17026 (add-to-list 'org-tab-first-hook 'yas/org-very-safe-expand) 17027 (define-key yas/keymap [tab] 'yas/next-field))) 17028 17029 17030File: org.info, Node: TTY Keys, Next: Protocols, Prev: Interaction, Up: Miscellaneous 17031 1703216.14 Using Org on a TTY 17033======================== 17034 17035Org provides alternative key bindings for TTY and modern mobile devices 17036that cannot perform movement commands on point and key bindings with 17037modifier keys. Some of these workarounds may be more cumbersome than 17038necessary. Users should look into customizing these further based on 17039their usage needs. For example, the normal ‘S-<cursor>’ for editing 17040timestamp might be better with ‘C-c .’ chord. 17041 17042Default Alternative 1 Speed key Alternative 2 17043---------------------------------------------------------------- 17044‘S-<TAB>’ ‘C-u <TAB>’ ‘C’ 17045‘M-<LEFT>’ ‘C-c C-x l’ ‘l’ ‘Esc <LEFT>’ 17046‘M-S-<LEFT>’ ‘C-c C-x L’ ‘L’ 17047‘M-<RIGHT>’ ‘C-c C-x r’ ‘r’ ‘Esc <RIGHT>’ 17048‘M-S-<RIGHT>’ ‘C-c C-x R’ ‘R’ 17049‘M-<UP>’ ‘C-c C-x u’ ‘Esc <UP>’ 17050‘M-S-<UP>’ ‘C-c C-x U’ ‘U’ 17051‘M-<DOWN>’ ‘C-c C-x d’ ‘Esc <DOWN>’ 17052‘M-S-<DOWN>’ ‘C-c C-x D’ ‘D’ 17053‘S-<RET>’ ‘C-c C-x c’ 17054‘M-<RET>’ ‘C-c C-x m’ ‘Esc <RET>’ 17055‘M-S-<RET>’ ‘C-c C-x M’ 17056‘S-<LEFT>’ ‘C-c <LEFT>’ 17057‘S-<RIGHT>’ ‘C-c <RIGHT>’ 17058‘S-<UP>’ ‘C-c <UP>’ 17059‘S-<DOWN>’ ‘C-c <DOWN>’ 17060‘C-S-<LEFT>’ ‘C-c C-x <LEFT>’ 17061‘C-S-<RIGHT>’ ‘C-c C-x <RIGHT>’ 17062 17063 17064File: org.info, Node: Protocols, Next: Org Crypt, Prev: TTY Keys, Up: Miscellaneous 17065 1706616.15 Protocols for External Access 17067=================================== 17068 17069Org protocol is a tool to trigger custom actions in Emacs from external 17070applications. Any application that supports calling external programs 17071with an URL as argument may be used with this functionality. For 17072example, you can configure bookmarks in your web browser to send a link 17073to the current page to Org and create a note from it using capture (see 17074*note Capture::). You can also create a bookmark that tells Emacs to 17075open the local source file of a remote website you are browsing. 17076 17077 In order to use Org protocol from an application, you need to 17078register ‘org-protocol://’ as a valid scheme-handler. External calls 17079are passed to Emacs through the ‘emacsclient’ command, so you also need 17080to ensure an Emacs server is running. More precisely, when the 17081application calls 17082 17083 emacsclient org-protocol://PROTOCOL?key1=val1&key2=val2 17084 17085Emacs calls the handler associated to PROTOCOL with argument ‘(:key1 17086val1 :key2 val2)’. 17087 17088 Org protocol comes with three predefined protocols, detailed in the 17089following sections. Configure ‘org-protocol-protocol-alist’ to define 17090your own. 17091 17092* Menu: 17093 17094* The store-link protocol:: Store a link, push URL to kill-ring. 17095* The capture protocol:: Fill a buffer with external information. 17096* The open-source protocol:: Edit published contents. 17097 17098 17099File: org.info, Node: The store-link protocol, Next: The capture protocol, Up: Protocols 17100 1710116.15.1 The ‘store-link’ protocol 17102--------------------------------- 17103 17104Using the ‘store-link’ handler, you can copy links, to that they can be 17105inserted using ‘M-x org-insert-link’ or yanking. More precisely, the 17106command 17107 17108 emacsclient org-protocol://store-link?url=URL&title=TITLE 17109 17110stores the following link: 17111 17112 [[URL][TITLE]] 17113 17114 In addition, URL is pushed on the kill-ring for yanking. You need to 17115encode URL and TITLE if they contain slashes, and probably quote those 17116for the shell. 17117 17118 To use this feature from a browser, add a bookmark with an arbitrary 17119name, e.g., ‘Org: store-link’ and enter this as _Location_: 17120 17121 javascript:location.href='org-protocol://store-link?url='+ 17122 encodeURIComponent(location.href); 17123 17124 17125File: org.info, Node: The capture protocol, Next: The open-source protocol, Prev: The store-link protocol, Up: Protocols 17126 1712716.15.2 The ‘capture’ protocol 17128------------------------------ 17129 17130Activating the “capture” handler pops up a ‘Capture’ buffer in Emacs, 17131using acapture template. 17132 17133 emacsclient org-protocol://capture?template=X?url=URL?title=TITLE?body=BODY 17134 17135 To use this feature, add a bookmark with an arbitrary name, e.g., 17136‘Org: capture’, and enter this as ‘Location’: 17137 17138 javascript:location.href='org-protocol://capture?template=x'+ 17139 '&url='+encodeURIComponent(window.location.href)+ 17140 '&title='+encodeURIComponent(document.title)+ 17141 '&body='+encodeURIComponent(window.getSelection()); 17142 17143 The capture template to be used can be specified in the bookmark 17144(like ‘X’ above). If unspecified, the template key is set in the 17145variable ‘org-protocol-default-template-key’. The following template 17146placeholders are available: 17147 17148 %:link The URL 17149 %:description The webpage title 17150 %:annotation Equivalent to [[%:link][%:description]] 17151 %i The selected text 17152 17153 17154File: org.info, Node: The open-source protocol, Prev: The capture protocol, Up: Protocols 17155 1715616.15.3 The ‘open-source’ protocol 17157---------------------------------- 17158 17159The ‘open-source’ handler is designed to help with editing local sources 17160when reading a document. To that effect, you can use a bookmark with 17161the following location: 17162 17163 javascript:location.href='org-protocol://open-source?&url='+ 17164 encodeURIComponent(location.href) 17165 17166 The variable ‘org-protocol-project-alist’ maps URLs to local file 17167names, by stripping URL parameters from the end and replacing the 17168‘:base-url’ with ‘:working-directory’ and ‘:online-suffix’ with 17169‘:working-suffix’. For example, assuming you own a local copy of 17170‘https://orgmode.org/worg/’ contents at ‘/home/user/worg’, you can set 17171‘org-protocol-project-alist’ to the following 17172 17173 (setq org-protocol-project-alist 17174 '(("Worg" 17175 :base-url "https://orgmode.org/worg/" 17176 :working-directory "/home/user/worg/" 17177 :online-suffix ".html" 17178 :working-suffix ".org"))) 17179 17180If you are now browsing 17181‘https://orgmode.org/worg/org-contrib/org-protocol.html’ and find a typo 17182or have an idea about how to enhance the documentation, simply click the 17183bookmark and start editing. 17184 17185 However, such mapping may not always yield the desired results. 17186Suppose you maintain an online store located at ‘http://example.com/’. 17187The local sources reside in ‘/home/user/example/’. It is common 17188practice to serve all products in such a store through one file and 17189rewrite URLs that do not match an existing file on the server. That 17190way, a request to ‘http://example.com/print/posters.html’ might be 17191rewritten on the server to something like 17192‘http://example.com/shop/products.php/posters.html.php’. The 17193‘open-source’ handler probably cannot find a file named 17194‘/home/user/example/print/posters.html.php’ and fails. 17195 17196 Such an entry in ‘org-protocol-project-alist’ may hold an additional 17197property ‘:rewrites’. This property is a list of cons cells, each of 17198which maps a regular expression to a path relative to the 17199‘:working-directory’. 17200 17201 Now map the URL to the path ‘/home/user/example/products.php’ by 17202adding ‘:rewrites’ rules like this: 17203 17204 (setq org-protocol-project-alist 17205 '(("example.com" 17206 :base-url "http://example.com/" 17207 :working-directory "/home/user/example/" 17208 :online-suffix ".php" 17209 :working-suffix ".php" 17210 :rewrites (("example.com/print/" . "products.php") 17211 ("example.com/$" . "index.php"))))) 17212 17213Since ‘example.com/$’ is used as a regular expression, it maps 17214‘http://example.com/’, ‘https://example.com’, ‘http://www.example.com/’ 17215and similar to ‘/home/user/example/index.php’. 17216 17217 The ‘:rewrites’ rules are searched as a last resort if and only if no 17218existing file name is matched. 17219 17220 Two functions can help you filling ‘org-protocol-project-alist’ with 17221valid contents: ‘org-protocol-create’ and ‘org-protocol-create-for-org’. 17222The latter is of use if you’re editing an Org file that is part of a 17223publishing project. 17224 17225 17226File: org.info, Node: Org Crypt, Next: Org Mobile, Prev: Protocols, Up: Miscellaneous 17227 1722816.16 Org Crypt 17229=============== 17230 17231Org Crypt encrypts the text of an entry, but not the headline, or 17232properties. Behind the scene, it uses the Emacs EasyPG library to 17233encrypt and decrypt files. 17234 17235 Any text below a headline that has a ‘crypt’ tag is automatically 17236encrypted when the file is saved. To use a different tag, customize the 17237‘org-crypt-tag-matcher’ setting. 17238 17239 Here is a suggestion for Org Crypt settings in Emacs init file: 17240 17241 (require 'org-crypt) 17242 (org-crypt-use-before-save-magic) 17243 (setq org-tags-exclude-from-inheritance '("crypt")) 17244 17245 (setq org-crypt-key nil) 17246 ;; GPG key to use for encryption 17247 ;; Either the Key ID or set to nil to use symmetric encryption. 17248 17249 (setq auto-save-default nil) 17250 ;; Auto-saving does not cooperate with org-crypt.el: so you need to 17251 ;; turn it off if you plan to use org-crypt.el quite often. Otherwise, 17252 ;; you'll get an (annoying) message each time you start Org. 17253 17254 ;; To turn it off only locally, you can insert this: 17255 ;; 17256 ;; # -*- buffer-auto-save-file-name: nil; -*- 17257 17258 It’s possible to use different keys for different headings by 17259specifying the respective key as property ‘CRYPTKEY’, e.g.: 17260 17261 * Totally secret :crypt: 17262 :PROPERTIES: 17263 :CRYPTKEY: 0x0123456789012345678901234567890123456789 17264 :END: 17265 17266 Excluding the ‘crypt’ tag from inheritance prevents already encrypted 17267text from being encrypted again. 17268 17269 17270File: org.info, Node: Org Mobile, Prev: Org Crypt, Up: Miscellaneous 17271 1727216.17 Org Mobile 17273================ 17274 17275Org Mobile is a protocol for synchronizing Org files between Emacs and 17276other applications, e.g., on mobile devices. It enables offline-views 17277and capture support for an Org mode system that is rooted on a “real” 17278computer. The external application can also record changes to existing 17279entries. 17280 17281 This appendix describes Org’s support for agenda view formats 17282compatible with Org Mobile. It also describes synchronizing changes, 17283such as to notes, between the mobile application and the computer. 17284 17285 To change tags and TODO states in the mobile application, first 17286customize the variables ‘org-todo-keywords’, ‘org-tag-alist’ and 17287‘org-tag-persistent-alist’. These should cover all the important tags 17288and TODO keywords, even if Org files use only some of them. Though the 17289mobile application is expected to support in-buffer settings, it is 17290required to understand TODO states _sets_ (see *note Per-file 17291keywords::) and _mutually exclusive_ tags (see *note Setting Tags::) 17292only for those set in these variables. 17293 17294* Menu: 17295 17296* Setting up the staging area:: For the mobile device. 17297* Pushing to the mobile application:: Uploading Org files and agendas. 17298* Pulling from the mobile application:: Integrating captured and flagged items. 17299 17300 17301File: org.info, Node: Setting up the staging area, Next: Pushing to the mobile application, Up: Org Mobile 17302 1730316.17.1 Setting up the staging area 17304----------------------------------- 17305 17306The mobile application needs access to a file directory on a server(1) 17307to interact with Emacs. Pass its location through the 17308‘org-mobile-directory’ variable. If you can mount that directory 17309locally just set the variable to point to that directory: 17310 17311 (setq org-mobile-directory "~/orgmobile/") 17312 17313 Alternatively, by using TRAMP (see *note TRAMP User Manual: 17314(tramp)Top.), ‘org-mobile-directory’ may point to a remote directory 17315accessible through, for example, SSH, SCP, or DAVS: 17316 17317 (setq org-mobile-directory "/davs:user@remote.host:/org/webdav/") 17318 17319 With a public server, consider encrypting the files. Org also 17320requires OpenSSL installed on the local computer. To turn on 17321encryption, set the same password in the mobile application and in 17322Emacs. Set the password in the variable ‘org-mobile-use-encryption’(2). 17323Note that even after the mobile application encrypts the file contents, 17324the file name remains visible on the file systems of the local computer, 17325the server, and the mobile device. 17326 17327 ---------- Footnotes ---------- 17328 17329 (1) For a server to host files, consider using a WebDAV server, such 17330as Nextcloud (https://nextcloud.com). Additional help is at this FAQ 17331entry (https://orgmode.org/worg/org-faq.html#mobileorg_webdav). 17332 17333 (2) If Emacs is configured for safe storing of passwords, then 17334configure the variable ‘org-mobile-encryption-password’; please read the 17335docstring of that variable. 17336 17337 17338File: org.info, Node: Pushing to the mobile application, Next: Pulling from the mobile application, Prev: Setting up the staging area, Up: Org Mobile 17339 1734016.17.2 Pushing to the mobile application 17341----------------------------------------- 17342 17343The command ‘org-mobile-push’ copies files listed in ‘org-mobile-files’ 17344into the staging area. Files include agenda files (as listed in 17345‘org-agenda-files’). Customize ‘org-mobile-files’ to add other files. 17346File names are staged with paths relative to ‘org-directory’, so all 17347files should be inside this directory(1). 17348 17349 Push creates a special Org file ‘agendas.org’ with custom agenda 17350views defined by the user(2). 17351 17352 Finally, Org writes the file ‘index.org’, containing links to other 17353files. The mobile application reads this file first from the server to 17354determine what other files to download for agendas. For faster 17355downloads, it is expected to only read files whose checksums(3) have 17356changed. 17357 17358 ---------- Footnotes ---------- 17359 17360 (1) Symbolic links in ‘org-directory’ need to have the same name as 17361their targets. 17362 17363 (2) While creating the agendas, Org mode forces ‘ID’ properties on 17364all referenced entries, so that these entries can be uniquely identified 17365if Org Mobile flags them for further action. To avoid setting 17366properties configure the variable ‘org-mobile-force-id-on-agenda-items’ 17367to ‘nil’. Org mode then relies on outline paths, assuming they are 17368unique. 17369 17370 (3) Checksums are stored automatically in the file ‘checksums.dat’. 17371 17372 17373File: org.info, Node: Pulling from the mobile application, Prev: Pushing to the mobile application, Up: Org Mobile 17374 1737516.17.3 Pulling from the mobile application 17376------------------------------------------- 17377 17378The command ‘org-mobile-pull’ synchronizes changes with the server. 17379More specifically, it first pulls the Org files for viewing. It then 17380appends captured entries and pointers to flagged or changed entries to 17381the file ‘mobileorg.org’ on the server. Org ultimately integrates its 17382data in an inbox file format, through the following steps: 17383 17384 1. Org moves all entries found in ‘mobileorg.org’(1) and appends them 17385 to the file pointed to by the variable ‘org-mobile-inbox-for-pull’. 17386 It should reside neither in the staging area nor on the server. 17387 Each captured entry and each editing event is a top-level entry in 17388 the inbox file. 17389 17390 2. After moving the entries, Org processes changes to the shared 17391 files. Some of them are applied directly and without user 17392 interaction. Examples include changes to tags, TODO state, 17393 headline and body text. Entries requiring further action are 17394 tagged as ‘FLAGGED’. Org marks entries with problems with an error 17395 message in the inbox. They have to be resolved manually. 17396 17397 3. Org generates an agenda view for flagged entries for user 17398 intervention to clean up. For notes stored in flagged entries, Org 17399 displays them in the echo area when point is on the corresponding 17400 agenda item. 17401 17402 ‘?’ 17403 Pressing ‘?’ displays the entire flagged note in another 17404 window. Org also pushes it to the kill ring. To store 17405 flagged note as a normal note, use ‘? z C-y C-c C-c’. 17406 Pressing ‘?’ twice does these things: first it removes the 17407 ‘FLAGGED’ tag; second, it removes the flagged note from the 17408 property drawer; third, it signals that manual editing of the 17409 flagged entry is now finished. 17410 17411 From the agenda dispatcher, ‘?’ returns to the view to finish 17412processing flagged entries. Note that these entries may not be the most 17413recent since the mobile application searches files that were last 17414pulled. To get an updated agenda view with changes since the last pull, 17415pull again. 17416 17417 ---------- Footnotes ---------- 17418 17419 (1) The file will be empty after this operation. 17420 17421 17422File: org.info, Node: Hacking, Next: History and Acknowledgments, Prev: Miscellaneous, Up: Top 17423 17424Appendix A Hacking 17425****************** 17426 17427This appendix describes some ways a user can extend the functionality of 17428Org. 17429 17430* Menu: 17431 17432* Hooks: Hooks (2). How to reach into Org’s internals. 17433* Add-on Packages:: Available extensions. 17434* Adding Hyperlink Types:: New custom link types. 17435* Adding Export Back-ends:: How to write new export back-ends. 17436* Tables in Arbitrary Syntax:: Orgtbl for LaTeX and other programs. 17437* Dynamic Blocks:: Automatically filled blocks. 17438* Special Agenda Views:: Customized views. 17439* Speeding Up Your Agendas:: Tips on how to speed up your agendas. 17440* Extracting Agenda Information:: Post-processing agenda information. 17441* Using the Property API:: Writing programs that use entry properties. 17442* Using the Mapping API:: Mapping over all or selected entries. 17443 17444 17445File: org.info, Node: Hooks (2), Next: Add-on Packages, Up: Hacking 17446 17447A.1 Hooks 17448========= 17449 17450Org has a large number of hook variables for adding functionality. This 17451appendix illustrates using a few. A complete list of hooks with 17452documentation is maintained by the Worg project at 17453<https://orgmode.org/worg/doc.html#hooks>. 17454 17455 17456File: org.info, Node: Add-on Packages, Next: Adding Hyperlink Types, Prev: Hooks (2), Up: Hacking 17457 17458A.2 Add-on Packages 17459=================== 17460 17461Various authors wrote a large number of add-on packages for Org. 17462 17463 These packages are not part of Emacs, but they are distributed as 17464contributed packages with the separate release available at 17465<https://orgmode.org>. See the ‘contrib/README’ file in the source code 17466directory for a list of contributed files. Worg page with more 17467information is at: <https://orgmode.org/worg/org-contrib/>. 17468 17469 17470File: org.info, Node: Adding Hyperlink Types, Next: Adding Export Back-ends, Prev: Add-on Packages, Up: Hacking 17471 17472A.3 Adding Hyperlink Types 17473========================== 17474 17475Org has many built-in hyperlink types (see *note Hyperlinks::), and an 17476interface for adding new link types. The following example shows the 17477process of adding Org links to Unix man pages, which look like this 17478 17479 [[man:printf][The printf manual]] 17480 17481The following ‘ol-man.el’ file implements it 17482 17483 ;;; ol-man.el - Support for links to man pages in Org mode 17484 (require 'ol) 17485 17486 (org-link-set-parameters "man" 17487 :follow #'org-man-open 17488 :export #'org-man-export 17489 :store #'org-man-store-link) 17490 17491 (defcustom org-man-command 'man 17492 "The Emacs command to be used to display a man page." 17493 :group 'org-link 17494 :type '(choice (const man) (const woman))) 17495 17496 (defun org-man-open (path _) 17497 "Visit the manpage on PATH. 17498 PATH should be a topic that can be thrown at the man command." 17499 (funcall org-man-command path)) 17500 17501 (defun org-man-store-link () 17502 "Store a link to a man page." 17503 (when (memq major-mode '(Man-mode woman-mode)) 17504 ;; This is a man page, we do make this link. 17505 (let* ((page (org-man-get-page-name)) 17506 (link (concat "man:" page)) 17507 (description (format "Man page for %s" page))) 17508 (org-link-store-props 17509 :type "man" 17510 :link link 17511 :description description)))) 17512 17513 (defun org-man-get-page-name () 17514 "Extract the page name from the buffer name." 17515 ;; This works for both `Man-mode' and `woman-mode'. 17516 (if (string-match " \\(\\S-+\\)\\*" (buffer-name)) 17517 (match-string 1 (buffer-name)) 17518 (error "Cannot create link to this man page"))) 17519 17520 (defun org-man-export (link description format _) 17521 "Export a man page link from Org files." 17522 (let ((path (format "http://man.he.net/?topic=%s§ion=all" link)) 17523 (desc (or description link))) 17524 (pcase format 17525 (`html (format "<a target=\"_blank\" href=\"%s\">%s</a>" path desc)) 17526 (`latex (format "\\href{%s}{%s}" path desc)) 17527 (`texinfo (format "@uref{%s,%s}" path desc)) 17528 (`ascii (format "%s (%s)" desc path)) 17529 (t path)))) 17530 17531 (provide ol-man) 17532 ;;; ol-man.el ends here 17533 17534To activate links to man pages in Org, enter this in the Emacs init 17535file: 17536 17537 (require 'ol-man) 17538 17539A review of ‘ol-man.el’: 17540 17541 1. First, ‘(require 'ol)’ ensures that ‘ol.el’ is loaded. 17542 17543 2. Then ‘org-link-set-parameters’ defines a new link type with ‘man’ 17544 prefix and associates functions for following, exporting and 17545 storing such links. See the variable ‘org-link-parameters’ for a 17546 complete list of possible associations. 17547 17548 3. The rest of the file implements necessary variables and functions. 17549 17550 For example, ‘org-man-store-link’ is responsible for storing a link 17551 when ‘org-store-link’ (see *note Handling Links::) is called from a 17552 buffer displaying a man page. It first checks if the major mode is 17553 appropriate. If check fails, the function returns ‘nil’, which 17554 means it isn’t responsible for creating a link to the current 17555 buffer. Otherwise the function makes a link string by combining 17556 the ‘man:’ prefix with the man topic. It also provides a default 17557 description. The function ‘org-insert-link’ can insert it back 17558 into an Org buffer later on. 17559 17560 17561File: org.info, Node: Adding Export Back-ends, Next: Tables in Arbitrary Syntax, Prev: Adding Hyperlink Types, Up: Hacking 17562 17563A.4 Adding Export Back-ends 17564=========================== 17565 17566Org’s export engine makes it easy for writing new back-ends. The 17567framework on which the engine was built makes it easy to derive new 17568back-ends from existing ones. 17569 17570 The two main entry points to the export engine are: 17571‘org-export-define-backend’ and ‘org-export-define-derived-backend’. To 17572grok these functions, see ‘ox-latex.el’ for an example of defining a new 17573back-end from scratch, and ‘ox-beamer.el’ for an example of deriving 17574from an existing engine. 17575 17576 For creating a new back-end from scratch, first set its name as a 17577symbol in an alist consisting of elements and export functions. To make 17578the back-end visible to the export dispatcher, set ‘:menu-entry’ 17579keyword. For export options specific to this back-end, set the 17580‘:options-alist’. 17581 17582 For creating a new back-end from an existing one, set 17583‘:translate-alist’ to an alist of export functions. This alist replaces 17584the parent back-end functions. 17585 17586 For complete documentation, see the Org Export Reference on Worg 17587(https://orgmode.org/worg/dev/org-export-reference.html). 17588 17589 17590File: org.info, Node: Tables in Arbitrary Syntax, Next: Dynamic Blocks, Prev: Adding Export Back-ends, Up: Hacking 17591 17592A.5 Tables in Arbitrary Syntax 17593============================== 17594 17595Due to Org’s success in handling tables with Orgtbl, a frequently 17596requested feature is the use of Org’s table functions in other modes, 17597e.g., LaTeX. This would be hard to do in a general way without 17598complicated customization nightmares. Moreover, that would take Org 17599away from its simplicity roots that Orgtbl has proven. There is, 17600however, an alternate approach to accomplishing the same. 17601 17602 This approach involves implementing a custom _translate_ function 17603that operates on a native Org _source table_ to produce a table in 17604another format. This strategy would keep the excellently working Orgtbl 17605simple and isolate complications, if any, confined to the translate 17606function. To add more alien table formats, we just add more translate 17607functions. Also the burden of developing custom translate functions for 17608new table formats is in the hands of those who know those formats best. 17609 17610* Menu: 17611 17612* Radio tables:: Sending and receiving radio tables. 17613* A LaTeX example:: Step by step, almost a tutorial. 17614* Translator functions:: Copy and modify. 17615 17616 17617File: org.info, Node: Radio tables, Next: A LaTeX example, Up: Tables in Arbitrary Syntax 17618 17619A.5.1 Radio tables 17620------------------ 17621 17622Radio tables are target locations for translated tables that are not 17623near their source. Org finds the target location and inserts the 17624translated table. 17625 17626 The key to finding the target location is the magic words ‘BEGIN/END 17627RECEIVE ORGTBL’. They have to appear as comments in the current mode. 17628If the mode is C, then: 17629 17630 /* BEGIN RECEIVE ORGTBL table_name */ 17631 /* END RECEIVE ORGTBL table_name */ 17632 17633 At the location of source, Org needs a special line to direct Orgtbl 17634to translate and to find the target for inserting the translated table. 17635For example: 17636 17637 #+ORGTBL: SEND table_name translation_function arguments ... 17638 17639‘table_name’ is the table’s reference name, which is also used in the 17640receiver lines, and the ‘translation_function’ is the Lisp function that 17641translates. This line, in addition, may also contain alternating key 17642and value arguments at the end. The translation function gets these 17643values as a property list. A few standard parameters are already 17644recognized and acted upon before the translation function is called: 17645 17646‘:skip N’ 17647 Skip the first N lines of the table. Hlines do count; include them 17648 if they are to be skipped. 17649 17650‘:skipcols (n1 n2 ...)’ 17651 List of columns to be skipped. First Org automatically discards 17652 columns with calculation marks and then sends the table to the 17653 translator function, which then skips columns as specified in 17654 ‘skipcols’. 17655 17656 To keep the source table intact in the buffer without being disturbed 17657when the source file is compiled or otherwise being worked on, use one 17658of these strategies: 17659 17660 • Place the table in a block comment. For example, in C mode you 17661 could wrap the table between ‘/*’ and ‘*/’ lines. 17662 17663 • Put the table after an “end” statement. For example ‘\bye’ in TeX 17664 and ‘\end{document}’ in LaTeX. 17665 17666 • Comment and un-comment each line of the table during edits. The 17667 ‘M-x orgtbl-toggle-comment’ command makes toggling easy. 17668 17669 17670File: org.info, Node: A LaTeX example, Next: Translator functions, Prev: Radio tables, Up: Tables in Arbitrary Syntax 17671 17672A.5.2 A LaTeX example of radio tables 17673------------------------------------- 17674 17675To wrap a source table in LaTeX, use the ‘comment’ environment provided 17676by ‘comment.sty’(1). To activate it, put ‘\usepackage{comment}’ in the 17677document header. Orgtbl mode inserts a radio table skeleton(2) with the 17678command ‘M-x orgtbl-insert-radio-table’, which prompts for a table name. 17679For example, if ‘salesfigures’ is the name, the template inserts: 17680 17681 % BEGIN RECEIVE ORGTBL salesfigures 17682 % END RECEIVE ORGTBL salesfigures 17683 \begin{comment} 17684 #+ORGTBL: SEND salesfigures orgtbl-to-latex 17685 | | | 17686 \end{comment} 17687 17688The line ‘#+ORGTBL: SEND’ tells Orgtbl mode to use the function 17689‘orgtbl-to-latex’ to convert the table to LaTeX format, then insert the 17690table at the target (receive) location named ‘salesfigures’. Now the 17691table is ready for data entry. It can even use spreadsheet features(3): 17692 17693 % BEGIN RECEIVE ORGTBL salesfigures 17694 % END RECEIVE ORGTBL salesfigures 17695 \begin{comment} 17696 #+ORGTBL: SEND salesfigures orgtbl-to-latex 17697 | Month | Days | Nr sold | per day | 17698 |-------+------+---------+---------| 17699 | Jan | 23 | 55 | 2.4 | 17700 | Feb | 21 | 16 | 0.8 | 17701 | March | 22 | 278 | 12.6 | 17702 #+TBLFM: $4=$3/$2;%.1f 17703 % $ (optional extra dollar to keep Font Lock happy, see footnote) 17704 \end{comment} 17705 17706 After editing, ‘C-c C-c’ inserts the translated table at the target 17707location, between the two marker lines. 17708 17709 For hand-made custom tables, note that the translator needs to skip 17710the first two lines of the source table. Also the command has to 17711_splice_ out the target table without the header and footer. 17712 17713 \begin{tabular}{lrrr} 17714 Month & \multicolumn{1}{c}{Days} & Nr.\ sold & per day\\ 17715 % BEGIN RECEIVE ORGTBL salesfigures 17716 % END RECEIVE ORGTBL salesfigures 17717 \end{tabular} 17718 % 17719 \begin{comment} 17720 #+ORGTBL: SEND salesfigures orgtbl-to-latex :splice t :skip 2 17721 | Month | Days | Nr sold | per day | 17722 |-------+------+---------+---------| 17723 | Jan | 23 | 55 | 2.4 | 17724 | Feb | 21 | 16 | 0.8 | 17725 | March | 22 | 278 | 12.6 | 17726 #+TBLFM: $4=$3/$2;%.1f 17727 \end{comment} 17728 17729 The LaTeX translator function ‘orgtbl-to-latex’ is already part of 17730Orgtbl mode and uses a ‘tabular’ environment to typeset the table and 17731marks horizontal lines with ‘\hline’. For additional parameters to 17732control output, see *note Translator functions::: 17733 17734‘:splice BOOLEAN’ 17735 When {{{var(BOOLEAN}}} is non-‘nil’, return only table body lines; 17736 i.e., not wrapped in ‘tabular’ environment. Default is ‘nil’. 17737 17738‘:fmt FMT’ 17739 Format string to warp each field. It should contain ‘%s’ for the 17740 original field value. For example, to wrap each field value in 17741 dollar symbol, you could use ‘:fmt "$%s$"’. Format can also wrap a 17742 property list with column numbers and formats, for example ‘:fmt (2 17743 "$%s$" 4 "%s\\%%")’. In place of a string, a function of one 17744 argument can be used; the function must return a formatted string. 17745 17746‘:efmt EFMT’ 17747 Format numbers as exponentials. The spec should have ‘%s’ twice 17748 for inserting mantissa and exponent, for example 17749 ‘"%s\\times10^{%s}"’. This may also be a property list with column 17750 numbers and formats, for example ‘:efmt (2 "$%s\\times10^{%s}$" 4 17751 "$%s\\cdot10^{%s}$")’. After EFMT has been applied to a value, 17752 FMT—see above—is also applied. Functions with two arguments can be 17753 supplied instead of strings. By default, no special formatting is 17754 applied. 17755 17756 ---------- Footnotes ---------- 17757 17758 (1) <https://www.ctan.org/pkg/comment> 17759 17760 (2) By default this works only for LaTeX, HTML, and Texinfo. 17761Configure the variable ‘orgtbl-radio-table-templates’ to install 17762templates for other modes. 17763 17764 (3) If the ‘TBLFM’ keyword contains an odd number of dollar 17765characters, this may cause problems with Font Lock in LaTeX mode. As 17766shown in the example you can fix this by adding an extra line inside the 17767‘comment’ environment that is used to balance the dollar expressions. 17768If you are using AUCTeX with the font-latex library, a much better 17769solution is to add the ‘comment’ environment to the variable 17770‘LaTeX-verbatim-environments’. 17771 17772 17773File: org.info, Node: Translator functions, Prev: A LaTeX example, Up: Tables in Arbitrary Syntax 17774 17775A.5.3 Translator functions 17776-------------------------- 17777 17778Orgtbl mode has built-in translator functions: ‘orgtbl-to-csv’ 17779(comma-separated values), ‘orgtbl-to-tsv’ (TAB-separated values), 17780‘orgtbl-to-latex’, ‘orgtbl-to-html’, ‘orgtbl-to-texinfo’, 17781‘orgtbl-to-unicode’ and ‘orgtbl-to-orgtbl’. They use the generic 17782translator, ‘orgtbl-to-generic’, which delegates translations to various 17783export back-ends. 17784 17785 Properties passed to the function through the ‘ORGTBL SEND’ line take 17786precedence over properties defined inside the function. For example, 17787this overrides the default LaTeX line endings, ‘\\’, with ‘\\[2mm]’: 17788 17789 #+ORGTBL: SEND test orgtbl-to-latex :lend " \\\\[2mm]" 17790 17791 For a new language translator, define a converter function. It can 17792be a generic function, such as shown in this example. It marks a 17793beginning and ending of a table with ‘!BTBL!’ and ‘!ETBL!’; a beginning 17794and ending of lines with ‘!BL!’ and ‘!EL!’; and uses a TAB for a field 17795separator: 17796 17797 (defun orgtbl-to-language (table params) 17798 "Convert the orgtbl-mode TABLE to language." 17799 (orgtbl-to-generic 17800 table 17801 (org-combine-plists 17802 '(:tstart "!BTBL!" :tend "!ETBL!" :lstart "!BL!" :lend "!EL!" :sep "\t") 17803 params))) 17804 17805The documentation for the ‘orgtbl-to-generic’ function shows a complete 17806list of parameters, each of which can be passed through to 17807‘orgtbl-to-latex’, ‘orgtbl-to-texinfo’, and any other function using 17808that generic function. 17809 17810 For complicated translations the generic translator function could be 17811replaced by a custom translator function. Such a custom function must 17812take two arguments and return a single string containing the formatted 17813table. The first argument is the table whose lines are a list of fields 17814or the symbol ‘hline’. The second argument is the property list 17815consisting of parameters specified in the ‘#+ORGTBL: SEND’ line. Please 17816share your translator functions by posting them to the Org users mailing 17817list, at <emacs-orgmode@gnu.org>. 17818 17819 17820File: org.info, Node: Dynamic Blocks, Next: Special Agenda Views, Prev: Tables in Arbitrary Syntax, Up: Hacking 17821 17822A.6 Dynamic Blocks 17823================== 17824 17825Org supports _dynamic blocks_ in Org documents. They are inserted with 17826begin and end markers like any other code block, but the contents are 17827updated automatically by a user function. 17828 17829 You can insert a dynamic block with 17830‘org-dynamic-block-insert-dblock’, which is bound to ‘C-c C-x x’ by 17831default. For example, ‘C-c C-x x c l o c k t a b l e <RET>’ inserts a 17832table that updates the work time (see *note Clocking Work Time::). 17833 17834 Dynamic blocks can have names and function parameters. The syntax is 17835similar to source code block specifications: 17836 17837 #+BEGIN: myblock :parameter1 value1 :parameter2 value2 ... 17838 ... 17839 #+END: 17840 17841 These commands update dynamic blocks: 17842 17843‘C-c C-x C-u’ (‘org-dblock-update’) 17844 Update dynamic block at point. 17845 17846‘C-u C-c C-x C-u’ 17847 Update all dynamic blocks in the current file. 17848 17849 Before updating a dynamic block, Org removes content between the 17850‘BEGIN’ and ‘END’ markers. Org then reads the parameters on the ‘BEGIN’ 17851line for passing to the writer function as a plist. The previous 17852content of the dynamic block becomes erased from the buffer and appended 17853to the plist under ‘:content’. 17854 17855 The syntax for naming a writer function with a dynamic block labeled 17856‘myblock’ is: ‘org-dblock-write:myblock’. 17857 17858 The following is an example of a dynamic block and a block writer 17859function that updates the time when the function was last run: 17860 17861 #+BEGIN: block-update-time :format "on %m/%d/%Y at %H:%M" 17862 ... 17863 #+END: 17864 17865The dynamic block’s writer function: 17866 17867 (defun org-dblock-write:block-update-time (params) 17868 (let ((fmt (or (plist-get params :format) "%d. %m. %Y"))) 17869 (insert "Last block update at: " 17870 (format-time-string fmt)))) 17871 17872 To keep dynamic blocks up-to-date in an Org file, use the function, 17873‘org-update-all-dblocks’ in hook, such as ‘before-save-hook’. The 17874‘org-update-all-dblocks’ function does not run if the file is not in Org 17875mode. 17876 17877 Dynamic blocks, like any other block, can be narrowed with 17878‘org-narrow-to-block’. 17879 17880 17881File: org.info, Node: Special Agenda Views, Next: Speeding Up Your Agendas, Prev: Dynamic Blocks, Up: Hacking 17882 17883A.7 Special Agenda Views 17884======================== 17885 17886Org provides a special hook to further limit items in agenda views: 17887‘agenda’, ‘agenda*’(1), ‘todo’, ‘alltodo’, ‘tags’, ‘tags-todo’, 17888‘tags-tree’. Specify a custom function that tests inclusion of every 17889matched item in the view. This function can also skip as much as is 17890needed. 17891 17892 For a global condition applicable to agenda views, use the 17893‘org-agenda-skip-function-global’ variable. Org uses a global condition 17894with ‘org-agenda-skip-function’ for custom searching. 17895 17896 This example defines a function for a custom view showing TODO items 17897with ‘waiting’ status. Manually this is a multi-step search process, 17898but with a custom view, this can be automated as follows: 17899 17900 The custom function searches the subtree for the ‘waiting’ tag and 17901returns ‘nil’ on match. Otherwise it gives the location from where the 17902search continues. 17903 17904 (defun my-skip-unless-waiting () 17905 "Skip trees that are not waiting" 17906 (let ((subtree-end (save-excursion (org-end-of-subtree t)))) 17907 (if (re-search-forward ":waiting:" subtree-end t) 17908 nil ; tag found, do not skip 17909 subtree-end))) ; tag not found, continue after end of subtree 17910 17911 To use this custom function in a custom agenda command: 17912 17913 (org-add-agenda-custom-command 17914 '("b" todo "PROJECT" 17915 ((org-agenda-skip-function 'my-skip-unless-waiting) 17916 (org-agenda-overriding-header "Projects waiting for something: ")))) 17917 17918 Note that this also binds ‘org-agenda-overriding-header’ to a more 17919meaningful string suitable for the agenda view. 17920 17921 Search for entries with a limit set on levels for the custom search. 17922This is a general approach to creating custom searches in Org. To 17923include all levels, use ‘LEVEL>0’(2). Then to selectively pick the 17924matched entries, use ‘org-agenda-skip-function’, which also accepts Lisp 17925forms, such as ‘org-agenda-skip-entry-if’ and 17926‘org-agenda-skip-subtree-if’. For example: 17927 17928‘(org-agenda-skip-entry-if 'scheduled)’ 17929 Skip current entry if it has been scheduled. 17930 17931‘(org-agenda-skip-entry-if 'notscheduled)’ 17932 Skip current entry if it has not been scheduled. 17933 17934‘(org-agenda-skip-entry-if 'deadline)’ 17935 Skip current entry if it has a deadline. 17936 17937‘(org-agenda-skip-entry-if 'scheduled 'deadline)’ 17938 Skip current entry if it has a deadline, or if it is scheduled. 17939 17940‘(org-agenda-skip-entry-if 'todo '("TODO" "WAITING"))’ 17941 Skip current entry if the TODO keyword is TODO or WAITING. 17942 17943‘(org-agenda-skip-entry-if 'todo 'done)’ 17944 Skip current entry if the TODO keyword marks a DONE state. 17945 17946‘(org-agenda-skip-entry-if 'timestamp)’ 17947 Skip current entry if it has any timestamp, may also be deadline or 17948 scheduled. 17949 17950‘(org-agenda-skip-entry-if 'regexp "regular expression")’ 17951 Skip current entry if the regular expression matches in the entry. 17952 17953‘(org-agenda-skip-entry-if 'notregexp "regular expression")’ 17954 Skip current entry unless the regular expression matches. 17955 17956‘(org-agenda-skip-subtree-if 'regexp "regular expression")’ 17957 Same as above, but check and skip the entire subtree. 17958 17959 The following is an example of a search for ‘waiting’ without the 17960special function: 17961 17962 (org-add-agenda-custom-command 17963 '("b" todo "PROJECT" 17964 ((org-agenda-skip-function '(org-agenda-skip-subtree-if 17965 'regexp ":waiting:")) 17966 (org-agenda-overriding-header "Projects waiting for something: ")))) 17967 17968 ---------- Footnotes ---------- 17969 17970 (1) The ‘agenda*’ view is the same as ‘agenda’ except that it only 17971considers _appointments_, i.e., scheduled and deadline items that have a 17972time specification ‘[h]h:mm’ in their time-stamps. 17973 17974 (2) Note that, for ‘org-odd-levels-only’, a level number corresponds 17975to order in the hierarchy, not to the number of stars. 17976 17977 17978File: org.info, Node: Speeding Up Your Agendas, Next: Extracting Agenda Information, Prev: Special Agenda Views, Up: Hacking 17979 17980A.8 Speeding Up Your Agendas 17981============================ 17982 17983Some agenda commands slow down when the Org files grow in size or 17984number. Here are tips to speed up: 17985 17986 • Reduce the number of Org agenda files to avoid slowdowns due to 17987 hard drive accesses. 17988 17989 • Reduce the number of DONE and archived headlines so agenda 17990 operations that skip over these can finish faster. 17991 17992 • Do not dim blocked tasks: 17993 17994 (setq org-agenda-dim-blocked-tasks nil) 17995 17996 • Stop preparing agenda buffers on startup: 17997 17998 (setq org-agenda-inhibit-startup t) 17999 18000 • Disable tag inheritance for agendas: 18001 18002 (setq org-agenda-use-tag-inheritance nil) 18003 18004 These options can be applied to selected agenda views. For more 18005details about generation of agenda views, see the docstrings for the 18006relevant variables, and this dedicated Worg page 18007(https://orgmode.org/worg/agenda-optimization.html) for agenda 18008optimization. 18009 18010 18011File: org.info, Node: Extracting Agenda Information, Next: Using the Property API, Prev: Speeding Up Your Agendas, Up: Hacking 18012 18013A.9 Extracting Agenda Information 18014================================= 18015 18016Org provides commands to access agendas through Emacs batch mode. 18017Through this command-line interface, agendas are automated for further 18018processing or printing. 18019 18020 ‘org-batch-agenda’ creates an agenda view in ASCII and outputs to 18021standard output. This command takes one string parameter. When string 18022consists of a single character, Org uses it as a key to 18023‘org-agenda-custom-commands’. These are the same ones available through 18024the agenda dispatcher (see *note Agenda Dispatcher::). 18025 18026 This example command line directly prints the TODO list to the 18027printer: 18028 18029 emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr 18030 18031 When the string parameter length is two or more characters, Org 18032matches it with tags/TODO strings. For example, this example command 18033line prints items tagged with ‘shop’, but excludes items tagged with 18034‘NewYork’: 18035 18036 emacs -batch -l ~/.emacs \ 18037 -eval '(org-batch-agenda "+shop-NewYork")' | lpr 18038 18039An example showing on-the-fly parameter modifications: 18040 18041 emacs -batch -l ~/.emacs \ 18042 -eval '(org-batch-agenda "a" \ 18043 org-agenda-span (quote month) \ 18044 org-agenda-include-diary nil \ 18045 org-agenda-files (quote ("~/org/project.org")))' \ 18046 | lpr 18047 18048which produces an agenda for the next 30 days from just the 18049‘~/org/projects.org’ file. 18050 18051 For structured processing of agenda output, use 18052‘org-batch-agenda-csv’ with the following fields: 18053 18054category 18055 The category of the item 18056head 18057 The headline, without TODO keyword, TAGS and PRIORITY 18058type 18059 The type of the agenda entry, can be 18060 18061 ‘todo’ selected in TODO match 18062 ‘tagsmatch’ selected in tags match 18063 ‘diary’ imported from diary 18064 ‘deadline’ a deadline 18065 ‘scheduled’ scheduled 18066 ‘timestamp’ appointment, selected by timestamp 18067 ‘closed’ entry was closed on date 18068 ‘upcoming-deadline’ warning about nearing deadline 18069 ‘past-scheduled’ forwarded scheduled item 18070 ‘block’ entry has date block including date 18071 18072todo 18073 The TODO keyword, if any 18074tags 18075 All tags including inherited ones, separated by colons 18076date 18077 The relevant date, like ‘2007-2-14’ 18078time 18079 The time, like ‘15:00-16:50’ 18080extra 18081 String with extra planning info 18082priority-l 18083 The priority letter if any was given 18084priority-n 18085 The computed numerical priority 18086 18087 If the selection of the agenda item was based on a timestamp, 18088including those items with ‘DEADLINE’ and ‘SCHEDULED’ keywords, then Org 18089includes date and time in the output. 18090 18091 If the selection of the agenda item was based on a timestamp (or 18092deadline/scheduled), then Org includes date and time in the output. 18093 18094 Here is an example of a post-processing script in Perl. It takes the 18095CSV output from Emacs and prints with a checkbox: 18096 18097 #!/usr/bin/perl 18098 18099 # define the Emacs command to run 18100 $cmd = "emacs -batch -l ~/.emacs -eval '(org-batch-agenda-csv \"t\")'"; 18101 18102 # run it and capture the output 18103 $agenda = qx{$cmd 2>/dev/null}; 18104 18105 # loop over all lines 18106 foreach $line (split(/\n/,$agenda)) { 18107 # get the individual values 18108 ($category,$head,$type,$todo,$tags,$date,$time,$extra, 18109 $priority_l,$priority_n) = split(/,/,$line); 18110 # process and print 18111 print "[ ] $head\n"; 18112 } 18113 18114 18115File: org.info, Node: Using the Property API, Next: Using the Mapping API, Prev: Extracting Agenda Information, Up: Hacking 18116 18117A.10 Using the Property API 18118=========================== 18119 18120Here is a description of the functions that can be used to work with 18121properties. 18122 18123 -- Function: org-entry-properties &optional pom which 18124 Get all properties of the entry at point-or-marker POM. This 18125 includes the TODO keyword, the tags, time strings for deadline, 18126 scheduled, and clocking, and any additional properties defined in 18127 the entry. The return value is an alist. Keys may occur multiple 18128 times if the property key was used several times. POM may also be 18129 ‘nil’, in which case the current entry is used. If WHICH is ‘nil’ 18130 or ‘all’, get all properties. If WHICH is ‘special’ or ‘standard’, 18131 only get that subclass. 18132 18133 -- Function: org-entry-get pom property &optional inherit 18134 Get value of PROPERTY for entry at point-or-marker POM. By 18135 default, this only looks at properties defined locally in the 18136 entry. If INHERIT is non-‘nil’ and the entry does not have the 18137 property, then also check higher levels of the hierarchy. If 18138 INHERIT is the symbol ‘selective’, use inheritance if and only if 18139 the setting of ‘org-use-property-inheritance’ selects PROPERTY for 18140 inheritance. 18141 18142 -- Function: org-entry-delete pom property 18143 Delete the property PROPERTY from entry at point-or-marker POM. 18144 18145 -- Function: org-entry-put pom property value 18146 Set PROPERTY to VALUES for entry at point-or-marker POM. 18147 18148 -- Function: org-buffer-property-keys &optional include-specials 18149 Get all property keys in the current buffer. 18150 18151 -- Function: org-insert-property-drawer 18152 Insert a property drawer for the current entry. Also 18153 18154 -- Function: org-entry-put-multivalued-property pom property &rest 18155 values 18156 Set PROPERTY at point-or-marker POM to VALUES. VALUES should be a 18157 list of strings. They are concatenated, with spaces as separators. 18158 18159 -- Function: org-entry-get-multivalued-property pom property 18160 Treat the value of the property PROPERTY as a whitespace-separated 18161 list of values and return the values as a list of strings. 18162 18163 -- Function: org-entry-add-to-multivalued-property pom property value 18164 Treat the value of the property PROPERTY as a whitespace-separated 18165 list of values and make sure that VALUE is in this list. 18166 18167 -- Function: org-entry-remove-from-multivalued-property pom property 18168 value 18169 Treat the value of the property PROPERTY as a whitespace-separated 18170 list of values and make sure that VALUE is _not_ in this list. 18171 18172 -- Function: org-entry-member-in-multivalued-property pom property 18173 value 18174 Treat the value of the property PROPERTY as a whitespace-separated 18175 list of values and check if VALUE is in this list. 18176 18177 -- User Option: org-property-allowed-value-functions 18178 Hook for functions supplying allowed values for a specific 18179 property. The functions must take a single argument, the name of 18180 the property, and return a flat list of allowed values. If ‘:ETC’ 18181 is one of the values, use the values as completion help, but allow 18182 also other values to be entered. The functions must return ‘nil’ 18183 if they are not responsible for this property. 18184 18185 18186File: org.info, Node: Using the Mapping API, Prev: Using the Property API, Up: Hacking 18187 18188A.11 Using the Mapping API 18189========================== 18190 18191Org has sophisticated mapping capabilities to find all entries 18192satisfying certain criteria. Internally, this functionality is used to 18193produce agenda views, but there is also an API that can be used to 18194execute arbitrary functions for each or selected entries. The main 18195entry point for this API is: 18196 18197 -- Function: org-map-entries func &optional match scope &rest skip 18198 Call FUNC at each headline selected by MATCH in SCOPE. 18199 18200 FUNC is a function or a Lisp form. With point positioned at the 18201 beginning of the headline, call the function without arguments. 18202 Org returns an alist of return values of calls to the function. 18203 18204 To avoid preserving point, Org wraps the call to FUNC in 18205 ‘save-excursion’ form. After evaluation, Org moves point to the 18206 end of the line that was just processed. Search continues from 18207 that point forward. This may not always work as expected under 18208 some conditions, such as if the current sub-tree was removed by a 18209 previous archiving operation. In such rare circumstances, Org 18210 skips the next entry entirely when it should not. To stop Org from 18211 such skips, make FUNC set the variable ‘org-map-continue-from’ to a 18212 specific buffer position. 18213 18214 MATCH is a tags/property/TODO match. Org iterates only matched 18215 headlines. Org iterates over all headlines when MATCH is ‘nil’ or 18216 ‘t’. 18217 18218 SCOPE determines the scope of this command. It can be any of: 18219 18220 ‘nil’ 18221 The current buffer, respecting the restriction, if any. 18222 18223 ‘tree’ 18224 The subtree started with the entry at point. 18225 18226 ‘region’ 18227 The entries within the active region, if any. 18228 18229 ‘file’ 18230 The current buffer, without restriction. 18231 18232 ‘file-with-archives’ 18233 The current buffer, and any archives associated with it. 18234 18235 ‘agenda’ 18236 All agenda files. 18237 18238 ‘agenda-with-archives’ 18239 All agenda files with any archive files associated with them. 18240 18241 list of filenames 18242 If this is a list, all files in the list are scanned. 18243 18244 The remaining arguments are treated as settings for the scanner’s 18245 skipping facilities. Valid arguments are: 18246 18247 ‘archive’ 18248 Skip trees with the ‘ARCHIVE’ tag. 18249 18250 ‘comment’ 18251 Skip trees with the COMMENT keyword. 18252 18253 function or Lisp form 18254 Used as value for ‘org-agenda-skip-function’, so whenever the 18255 function returns ‘t’, FUNC is called for that entry and search 18256 continues from the point where the function leaves it. 18257 18258 The mapping routine can call any arbitrary function, even functions 18259that change meta data or query the property API (see *note Using the 18260Property API::). Here are some handy functions: 18261 18262 -- Function: org-todo &optional arg 18263 Change the TODO state of the entry. See the docstring of the 18264 functions for the many possible values for the argument ARG. 18265 18266 -- Function: org-priority &optional action 18267 Change the priority of the entry. See the docstring of this 18268 function for the possible values for ACTION. 18269 18270 -- Function: org-toggle-tag tag &optional onoff 18271 Toggle the tag TAG in the current entry. Setting ONOFF to either 18272 ‘on’ or ‘off’ does not toggle tag, but ensure that it is either on 18273 or off. 18274 18275 -- Function: org-promote 18276 Promote the current entry. 18277 18278 -- Function: org-demote 18279 Demote the current entry. 18280 18281 This example turns all entries tagged with ‘TOMORROW’ into TODO 18282entries with keyword ‘UPCOMING’. Org ignores entries in comment trees 18283and archive trees. 18284 18285 (org-map-entries '(org-todo "UPCOMING") 18286 "+TOMORROW" 'file 'archive 'comment) 18287 18288 The following example counts the number of entries with TODO keyword 18289‘WAITING’, in all agenda files. 18290 18291 (length (org-map-entries t "/+WAITING" 'agenda)) 18292 18293 18294File: org.info, Node: History and Acknowledgments, Next: GNU Free Documentation License, Prev: Hacking, Up: Top 18295 18296Appendix B History and Acknowledgments 18297************************************** 18298 18299B.1 From Carsten 18300================ 18301 18302Org was born in 2003, out of frustration over the user interface of the 18303Emacs Outline mode. I was trying to organize my notes and projects, and 18304using Emacs seemed to be the natural way to go. However, having to 18305remember eleven different commands with two or three keys per command, 18306only to hide and show parts of the outline tree, that seemed entirely 18307unacceptable to me. Also, when using outlines to take notes, I 18308constantly wanted to restructure the tree, organizing it parallel to my 18309thoughts and plans. _Visibility cycling_ and _structure editing_ were 18310originally implemented in the package ‘outline-magic.el’, but quickly 18311moved to the more general ‘org.el’. As this environment became 18312comfortable for project planning, the next step was adding _TODO 18313entries_, basic _timestamps_, and _table support_. These areas 18314highlighted the two main goals that Org still has today: to be a new, 18315outline-based, plain text mode with innovative and intuitive editing 18316features, and to incorporate project planning functionality directly 18317into a notes file. 18318 18319 Since the first release, literally thousands of emails to me or to 18320the mailing list <emacs-orgmode@gnu.org> have provided a constant stream 18321of bug reports, feedback, new ideas, and sometimes patches and add-on 18322code. Many thanks to everyone who has helped to improve this package. 18323I am trying to keep here a list of the people who had significant 18324influence in shaping one or more aspects of Org. The list may not be 18325complete, if I have forgotten someone, please accept my apologies and 18326let me know. 18327 18328 Before I get to this list, a few special mentions are in order: 18329 18330Bastien Guerry 18331 Bastien has written a large number of extensions to Org (most of 18332 them integrated into the core by now), including the LaTeX exporter 18333 and the plain list parser. His support during the early days was 18334 central to the success of this project. Bastien also invented 18335 Worg, helped establishing the Web presence of Org, and sponsored 18336 hosting costs for the orgmode.org website. Bastien stepped in as 18337 maintainer of Org between 2011 and 2013, at a time when I 18338 desperately needed a break. 18339 18340Eric Schulte and Dan Davison 18341 Eric and Dan are jointly responsible for the Org Babel system, 18342 which turns Org into a multi-language environment for evaluating 18343 code and doing literate programming and reproducible research. 18344 This has become one of Org’s killer features that define what Org 18345 is today. 18346 18347John Wiegley 18348 John has contributed a number of great ideas and patches directly 18349 to Org, including the attachment system (‘org-attach.el’), 18350 integration with Apple Mail (‘org-mac-message.el’), hierarchical 18351 dependencies of TODO items, habit tracking (‘org-habits.el’), and 18352 encryption (‘org-crypt.el’). Also, the capture system is really an 18353 extended copy of his great ‘remember.el’. 18354 18355Sebastian Rose 18356 Without Sebastian, the HTML/XHTML publishing of Org would be the 18357 pitiful work of an ignorant amateur. Sebastian has pushed this 18358 part of Org onto a much higher level. He also wrote ‘org-info.js’, 18359 a JavaScript program for displaying webpages derived from Org using 18360 an Info-like or a folding interface with single-key navigation. 18361 18362 See below for the full list of contributions! Again, please let me 18363know what I am missing here! 18364 18365B.2 From Bastien 18366================ 18367 18368I (Bastien) have been maintaining Org between 2011 and 2013. This 18369appendix would not be complete without adding a few more acknowledgments 18370and thanks. 18371 18372 I am first grateful to Carsten for his trust while handing me over 18373the maintainership of Org. His unremitting support is what really 18374helped me getting more confident over time, with both the community and 18375the code. 18376 18377 When I took over maintainership, I knew I would have to make Org more 18378collaborative than ever, as I would have to rely on people that are more 18379knowledgeable than I am on many parts of the code. Here is a list of 18380the persons I could rely on, they should really be considered 18381co-maintainers, either of the code or the community: 18382 18383Eric Schulte 18384 Eric is maintaining the Babel parts of Org. His reactivity here 18385 kept me away from worrying about possible bugs here and let me 18386 focus on other parts. 18387 18388Nicolas Goaziou 18389 Nicolas is maintaining the consistency of the deepest parts of Org. 18390 His work on ‘org-element.el’ and ‘ox.el’ has been outstanding, and 18391 it opened the doors for many new ideas and features. He rewrote 18392 many of the old exporters to use the new export engine, and helped 18393 with documenting this major change. More importantly (if that’s 18394 possible), he has been more than reliable during all the work done 18395 for Org 8.0, and always very reactive on the mailing list. 18396 18397Achim Gratz 18398 Achim rewrote the building process of Org, turning some _ad hoc_ 18399 tools into a flexible and conceptually clean process. He patiently 18400 coped with the many hiccups that such a change can create for 18401 users. 18402 18403Nick Dokos 18404 The Org mode mailing list would not be such a nice place without 18405 Nick, who patiently helped users so many times. It is impossible 18406 to overestimate such a great help, and the list would not be so 18407 active without him. 18408 18409 I received support from so many users that it is clearly impossible 18410to be fair when shortlisting a few of them, but Org’s history would not 18411be complete if the ones above were not mentioned in this manual. 18412 18413B.3 List of Contributions 18414========================= 18415 18416 • Russell Adams came up with the idea for drawers. 18417 18418 • Thomas Baumann wrote ‘ol-bbdb.el’ and ‘ol-mhe.el’. 18419 18420 • Christophe Bataillon created the great unicorn logo that we use on 18421 the Org mode website. 18422 18423 • Alex Bochannek provided a patch for rounding timestamps. 18424 18425 • Jan Böcker wrote ‘ol-docview.el’. 18426 18427 • Brad Bozarth showed how to pull RSS feed data into Org files. 18428 18429 • Tom Breton wrote ‘org-choose.el’. 18430 18431 • Charles Cave’s suggestion sparked the implementation of templates 18432 for Remember, which are now templates for capture. 18433 18434 • Pavel Chalmoviansky influenced the agenda treatment of items with 18435 specified time. 18436 18437 • Gregory Chernov patched support for Lisp forms into table 18438 calculations and improved XEmacs compatibility, in particular by 18439 porting ‘nouline.el’ to XEmacs. 18440 18441 • Sacha Chua suggested copying some linking code from Planner. 18442 18443 • Baoqiu Cui contributed the DocBook exporter. 18444 18445 • Eddward DeVilla proposed and tested checkbox statistics. He also 18446 came up with the idea of properties, and that there should be an 18447 API for them. 18448 18449 • Nick Dokos tracked down several nasty bugs. 18450 18451 • Kees Dullemond used to edit projects lists directly in HTML and so 18452 inspired some of the early development, including HTML export. He 18453 also asked for a way to narrow wide table columns. 18454 18455 • Thomas S. Dye contributed documentation on Worg and helped 18456 integrating the Org Babel documentation into the manual. 18457 18458 • Christian Egli converted the documentation into Texinfo format, 18459 inspired the agenda, patched CSS formatting into the HTML exporter, 18460 and wrote ‘org-taskjuggler.el’. 18461 18462 • David Emery provided a patch for custom CSS support in exported 18463 HTML agendas. 18464 18465 • Nic Ferrier contributed mailcap and XOXO support. 18466 18467 • Miguel A. Figueroa-Villanueva implemented hierarchical checkboxes. 18468 18469 • John Foerch figured out how to make incremental search show context 18470 around a match in a hidden outline tree. 18471 18472 • Raimar Finken wrote ‘org-git-line.el’. 18473 18474 • Mikael Fornius works as a mailing list moderator. 18475 18476 • Austin Frank works as a mailing list moderator. 18477 18478 • Eric Fraga drove the development of Beamer export with ideas and 18479 testing. 18480 18481 • Barry Gidden did proofreading the manual in preparation for the 18482 book publication through Network Theory Ltd. 18483 18484 • Niels Giesen had the idea to automatically archive DONE trees. 18485 18486 • Nicolas Goaziou rewrote much of the plain list code. 18487 18488 • Kai Grossjohann pointed out key-binding conflicts with other 18489 packages. 18490 18491 • Brian Gough of Network Theory Ltd publishes the Org mode manual as 18492 a book. 18493 18494 • Bernt Hansen has driven much of the support for auto-repeating 18495 tasks, task state change logging, and the clocktable. His clear 18496 explanations have been critical when we started to adopt the Git 18497 version control system. 18498 18499 • Manuel Hermenegildo has contributed various ideas, small fixes and 18500 patches. 18501 18502 • Phil Jackson wrote ‘ol-irc.el’. 18503 18504 • Scott Jaderholm proposed footnotes, control over whitespace between 18505 folded entries, and column view for properties. 18506 18507 • Matt Jones wrote MobileOrg Android. 18508 18509 • Tokuya Kameshima wrote ‘org-wl.el’ and ‘org-mew.el’. 18510 18511 • Shidai Liu (“Leo”) asked for embedded LaTeX and tested it. He also 18512 provided frequent feedback and some patches. 18513 18514 • Matt Lundin has proposed last-row references for table formulas and 18515 named invisible anchors. He has also worked a lot on the FAQ. 18516 18517 • David Maus wrote ‘org-atom.el’, maintains the issues file for Org, 18518 and is a prolific contributor on the mailing list with competent 18519 replies, small fixes and patches. 18520 18521 • Jason F. McBrayer suggested agenda export to CSV format. 18522 18523 • Max Mikhanosha came up with the idea of refiling. 18524 18525 • Dmitri Minaev sent a patch to set priority limits on a per-file 18526 basis. 18527 18528 • Stefan Monnier provided a patch to keep the Emacs Lisp compiler 18529 happy. 18530 18531 • Richard Moreland wrote MobileOrg for the iPhone. 18532 18533 • Rick Moynihan proposed allowing multiple TODO sequences in a file 18534 and being able to quickly restrict the agenda to a subtree. 18535 18536 • Todd Neal provided patches for links to Info files and Elisp forms. 18537 18538 • Greg Newman refreshed the unicorn logo into its current form. 18539 18540 • Tim O’Callaghan suggested in-file links, search options for general 18541 file links, and tags. 18542 18543 • Osamu Okano wrote ‘orgcard2ref.pl’, a Perl program to create a text 18544 version of the reference card. 18545 18546 • Takeshi Okano translated the manual and David O’Toole’s tutorial 18547 into Japanese. 18548 18549 • Oliver Oppitz suggested multi-state TODO items. 18550 18551 • Scott Otterson sparked the introduction of descriptive text for 18552 links, among other things. 18553 18554 • Pete Phillips helped during the development of the TAGS feature, 18555 and provided frequent feedback. 18556 18557 • Martin Pohlack provided the code snippet to bundle character 18558 insertion into bundles of 20 for undo. 18559 18560 • T. V. Raman reported bugs and suggested improvements. 18561 18562 • Matthias Rempe (Oelde) provided ideas, Windows support, and quality 18563 control. 18564 18565 • Paul Rivier provided the basic implementation of named footnotes. 18566 He also acted as mailing list moderator for some time. 18567 18568 • Kevin Rogers contributed code to access VM files on remote hosts. 18569 18570 • Frank Ruell solved the mystery of the ‘keymapp nil’ bug, a conflict 18571 with ‘allout.el’. 18572 18573 • Jason Riedy generalized the send-receive mechanism for Orgtbl 18574 tables with extensive patches. 18575 18576 • Philip Rooke created the Org reference card, provided lots of 18577 feedback, developed and applied standards to the Org documentation. 18578 18579 • Christian Schlauer proposed angular brackets around links, among 18580 other things. 18581 18582 • Paul Sexton wrote ‘org-ctags.el’. 18583 18584 • Tom Shannon’s ‘organizer-mode.el’ inspired linking to VM/BBDB/Gnus. 18585 18586 • Ilya Shlyakhter proposed the Archive Sibling, line numbering in 18587 literal examples, and remote highlighting for referenced code 18588 lines. 18589 18590 • Stathis Sideris wrote the ‘ditaa.jar’ ASCII to PNG converter that 18591 is now packaged into Org’s ‘contrib/’ directory. 18592 18593 • Daniel Sinder came up with the idea of internal archiving by 18594 locking subtrees. 18595 18596 • Dale Smith proposed link abbreviations. 18597 18598 • James TD Smith has contributed a large number of patches for useful 18599 tweaks and features. 18600 18601 • Adam Spiers asked for global linking commands, inspired the link 18602 extension system, added support for Mairix, and proposed the 18603 mapping API. 18604 18605 • Ulf Stegemann created the table to translate special symbols to 18606 HTML, LaTeX, UTF-8, Latin-1 and ASCII. 18607 18608 • Andy Stewart contributed code to ‘ol-w3m.el’, to copy HTML content 18609 with links transformation to Org syntax. 18610 18611 • David O’Toole wrote ‘org-publish.el’ and drafted the manual chapter 18612 about publishing. 18613 18614 • Jambunathan K. contributed the ODT exporter. 18615 18616 • Sebastien Vauban reported many issues with LaTeX and Beamer export 18617 and enabled source code highlighting in Gnus. 18618 18619 • Stefan Vollmar organized a video-recorded talk at the 18620 Max-Planck-Institute for Neurology. He also inspired the creation 18621 of a concept index for HTML export. 18622 18623 • Jürgen Vollmer contributed code generating the table of contents in 18624 HTML output. 18625 18626 • Samuel Wales has provided important feedback and bug reports. 18627 18628 • Chris Wallace provided a patch implementing the ‘QUOTE’ block. 18629 18630 • David Wainberg suggested archiving, and improvements to the linking 18631 system. 18632 18633 • Carsten Wimmer suggested some changes and helped fix a bug in 18634 linking to Gnus. 18635 18636 • Roland Winkler requested additional key bindings to make Org work 18637 on a TTY. 18638 18639 • Piotr Zielinski wrote ‘org-mouse.el’, proposed agenda blocks and 18640 contributed various ideas and code snippets. 18641 18642 • Marco Wahl wrote ‘ol-eww.el’. 18643 18644 18645File: org.info, Node: GNU Free Documentation License, Next: Main Index, Prev: History and Acknowledgments, Up: Top 18646 18647Appendix C GNU Free Documentation License 18648***************************************** 18649 18650 Version 1.3, 3 November 2008 18651 18652 Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. 18653 <http://fsf.org/> 18654 18655 Everyone is permitted to copy and distribute verbatim copies 18656 of this license document, but changing it is not allowed. 18657 18658 0. PREAMBLE 18659 18660 The purpose of this License is to make a manual, textbook, or other 18661 functional and useful document “free” in the sense of freedom: to 18662 assure everyone the effective freedom to copy and redistribute it, 18663 with or without modifying it, either commercially or 18664 noncommercially. Secondarily, this License preserves for the 18665 author and publisher a way to get credit for their work, while not 18666 being considered responsible for modifications made by others. 18667 18668 This License is a kind of “copyleft”, which means that derivative 18669 works of the document must themselves be free in the same sense. 18670 It complements the GNU General Public License, which is a copyleft 18671 license designed for free software. 18672 18673 We have designed this License in order to use it for manuals for 18674 free software, because free software needs free documentation: a 18675 free program should come with manuals providing the same freedoms 18676 that the software does. But this License is not limited to 18677 software manuals; it can be used for any textual work, regardless 18678 of subject matter or whether it is published as a printed book. We 18679 recommend this License principally for works whose purpose is 18680 instruction or reference. 18681 18682 1. APPLICABILITY AND DEFINITIONS 18683 18684 This License applies to any manual or other work, in any medium, 18685 that contains a notice placed by the copyright holder saying it can 18686 be distributed under the terms of this License. Such a notice 18687 grants a world-wide, royalty-free license, unlimited in duration, 18688 to use that work under the conditions stated herein. The 18689 “Document”, below, refers to any such manual or work. Any member 18690 of the public is a licensee, and is addressed as “you”. You accept 18691 the license if you copy, modify or distribute the work in a way 18692 requiring permission under copyright law. 18693 18694 A “Modified Version” of the Document means any work containing the 18695 Document or a portion of it, either copied verbatim, or with 18696 modifications and/or translated into another language. 18697 18698 A “Secondary Section” is a named appendix or a front-matter section 18699 of the Document that deals exclusively with the relationship of the 18700 publishers or authors of the Document to the Document’s overall 18701 subject (or to related matters) and contains nothing that could 18702 fall directly within that overall subject. (Thus, if the Document 18703 is in part a textbook of mathematics, a Secondary Section may not 18704 explain any mathematics.) The relationship could be a matter of 18705 historical connection with the subject or with related matters, or 18706 of legal, commercial, philosophical, ethical or political position 18707 regarding them. 18708 18709 The “Invariant Sections” are certain Secondary Sections whose 18710 titles are designated, as being those of Invariant Sections, in the 18711 notice that says that the Document is released under this License. 18712 If a section does not fit the above definition of Secondary then it 18713 is not allowed to be designated as Invariant. The Document may 18714 contain zero Invariant Sections. If the Document does not identify 18715 any Invariant Sections then there are none. 18716 18717 The “Cover Texts” are certain short passages of text that are 18718 listed, as Front-Cover Texts or Back-Cover Texts, in the notice 18719 that says that the Document is released under this License. A 18720 Front-Cover Text may be at most 5 words, and a Back-Cover Text may 18721 be at most 25 words. 18722 18723 A “Transparent” copy of the Document means a machine-readable copy, 18724 represented in a format whose specification is available to the 18725 general public, that is suitable for revising the document 18726 straightforwardly with generic text editors or (for images composed 18727 of pixels) generic paint programs or (for drawings) some widely 18728 available drawing editor, and that is suitable for input to text 18729 formatters or for automatic translation to a variety of formats 18730 suitable for input to text formatters. A copy made in an otherwise 18731 Transparent file format whose markup, or absence of markup, has 18732 been arranged to thwart or discourage subsequent modification by 18733 readers is not Transparent. An image format is not Transparent if 18734 used for any substantial amount of text. A copy that is not 18735 “Transparent” is called “Opaque”. 18736 18737 Examples of suitable formats for Transparent copies include plain 18738 ASCII without markup, Texinfo input format, LaTeX input format, 18739 SGML or XML using a publicly available DTD, and standard-conforming 18740 simple HTML, PostScript or PDF designed for human modification. 18741 Examples of transparent image formats include PNG, XCF and JPG. 18742 Opaque formats include proprietary formats that can be read and 18743 edited only by proprietary word processors, SGML or XML for which 18744 the DTD and/or processing tools are not generally available, and 18745 the machine-generated HTML, PostScript or PDF produced by some word 18746 processors for output purposes only. 18747 18748 The “Title Page” means, for a printed book, the title page itself, 18749 plus such following pages as are needed to hold, legibly, the 18750 material this License requires to appear in the title page. For 18751 works in formats which do not have any title page as such, “Title 18752 Page” means the text near the most prominent appearance of the 18753 work’s title, preceding the beginning of the body of the text. 18754 18755 The “publisher” means any person or entity that distributes copies 18756 of the Document to the public. 18757 18758 A section “Entitled XYZ” means a named subunit of the Document 18759 whose title either is precisely XYZ or contains XYZ in parentheses 18760 following text that translates XYZ in another language. (Here XYZ 18761 stands for a specific section name mentioned below, such as 18762 “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) 18763 To “Preserve the Title” of such a section when you modify the 18764 Document means that it remains a section “Entitled XYZ” according 18765 to this definition. 18766 18767 The Document may include Warranty Disclaimers next to the notice 18768 which states that this License applies to the Document. These 18769 Warranty Disclaimers are considered to be included by reference in 18770 this License, but only as regards disclaiming warranties: any other 18771 implication that these Warranty Disclaimers may have is void and 18772 has no effect on the meaning of this License. 18773 18774 2. VERBATIM COPYING 18775 18776 You may copy and distribute the Document in any medium, either 18777 commercially or noncommercially, provided that this License, the 18778 copyright notices, and the license notice saying this License 18779 applies to the Document are reproduced in all copies, and that you 18780 add no other conditions whatsoever to those of this License. You 18781 may not use technical measures to obstruct or control the reading 18782 or further copying of the copies you make or distribute. However, 18783 you may accept compensation in exchange for copies. If you 18784 distribute a large enough number of copies you must also follow the 18785 conditions in section 3. 18786 18787 You may also lend copies, under the same conditions stated above, 18788 and you may publicly display copies. 18789 18790 3. COPYING IN QUANTITY 18791 18792 If you publish printed copies (or copies in media that commonly 18793 have printed covers) of the Document, numbering more than 100, and 18794 the Document’s license notice requires Cover Texts, you must 18795 enclose the copies in covers that carry, clearly and legibly, all 18796 these Cover Texts: Front-Cover Texts on the front cover, and 18797 Back-Cover Texts on the back cover. Both covers must also clearly 18798 and legibly identify you as the publisher of these copies. The 18799 front cover must present the full title with all words of the title 18800 equally prominent and visible. You may add other material on the 18801 covers in addition. Copying with changes limited to the covers, as 18802 long as they preserve the title of the Document and satisfy these 18803 conditions, can be treated as verbatim copying in other respects. 18804 18805 If the required texts for either cover are too voluminous to fit 18806 legibly, you should put the first ones listed (as many as fit 18807 reasonably) on the actual cover, and continue the rest onto 18808 adjacent pages. 18809 18810 If you publish or distribute Opaque copies of the Document 18811 numbering more than 100, you must either include a machine-readable 18812 Transparent copy along with each Opaque copy, or state in or with 18813 each Opaque copy a computer-network location from which the general 18814 network-using public has access to download using public-standard 18815 network protocols a complete Transparent copy of the Document, free 18816 of added material. If you use the latter option, you must take 18817 reasonably prudent steps, when you begin distribution of Opaque 18818 copies in quantity, to ensure that this Transparent copy will 18819 remain thus accessible at the stated location until at least one 18820 year after the last time you distribute an Opaque copy (directly or 18821 through your agents or retailers) of that edition to the public. 18822 18823 It is requested, but not required, that you contact the authors of 18824 the Document well before redistributing any large number of copies, 18825 to give them a chance to provide you with an updated version of the 18826 Document. 18827 18828 4. MODIFICATIONS 18829 18830 You may copy and distribute a Modified Version of the Document 18831 under the conditions of sections 2 and 3 above, provided that you 18832 release the Modified Version under precisely this License, with the 18833 Modified Version filling the role of the Document, thus licensing 18834 distribution and modification of the Modified Version to whoever 18835 possesses a copy of it. In addition, you must do these things in 18836 the Modified Version: 18837 18838 A. Use in the Title Page (and on the covers, if any) a title 18839 distinct from that of the Document, and from those of previous 18840 versions (which should, if there were any, be listed in the 18841 History section of the Document). You may use the same title 18842 as a previous version if the original publisher of that 18843 version gives permission. 18844 18845 B. List on the Title Page, as authors, one or more persons or 18846 entities responsible for authorship of the modifications in 18847 the Modified Version, together with at least five of the 18848 principal authors of the Document (all of its principal 18849 authors, if it has fewer than five), unless they release you 18850 from this requirement. 18851 18852 C. State on the Title page the name of the publisher of the 18853 Modified Version, as the publisher. 18854 18855 D. Preserve all the copyright notices of the Document. 18856 18857 E. Add an appropriate copyright notice for your modifications 18858 adjacent to the other copyright notices. 18859 18860 F. Include, immediately after the copyright notices, a license 18861 notice giving the public permission to use the Modified 18862 Version under the terms of this License, in the form shown in 18863 the Addendum below. 18864 18865 G. Preserve in that license notice the full lists of Invariant 18866 Sections and required Cover Texts given in the Document’s 18867 license notice. 18868 18869 H. Include an unaltered copy of this License. 18870 18871 I. Preserve the section Entitled “History”, Preserve its Title, 18872 and add to it an item stating at least the title, year, new 18873 authors, and publisher of the Modified Version as given on the 18874 Title Page. If there is no section Entitled “History” in the 18875 Document, create one stating the title, year, authors, and 18876 publisher of the Document as given on its Title Page, then add 18877 an item describing the Modified Version as stated in the 18878 previous sentence. 18879 18880 J. Preserve the network location, if any, given in the Document 18881 for public access to a Transparent copy of the Document, and 18882 likewise the network locations given in the Document for 18883 previous versions it was based on. These may be placed in the 18884 “History” section. You may omit a network location for a work 18885 that was published at least four years before the Document 18886 itself, or if the original publisher of the version it refers 18887 to gives permission. 18888 18889 K. For any section Entitled “Acknowledgements” or “Dedications”, 18890 Preserve the Title of the section, and preserve in the section 18891 all the substance and tone of each of the contributor 18892 acknowledgements and/or dedications given therein. 18893 18894 L. Preserve all the Invariant Sections of the Document, unaltered 18895 in their text and in their titles. Section numbers or the 18896 equivalent are not considered part of the section titles. 18897 18898 M. Delete any section Entitled “Endorsements”. Such a section 18899 may not be included in the Modified Version. 18900 18901 N. Do not retitle any existing section to be Entitled 18902 “Endorsements” or to conflict in title with any Invariant 18903 Section. 18904 18905 O. Preserve any Warranty Disclaimers. 18906 18907 If the Modified Version includes new front-matter sections or 18908 appendices that qualify as Secondary Sections and contain no 18909 material copied from the Document, you may at your option designate 18910 some or all of these sections as invariant. To do this, add their 18911 titles to the list of Invariant Sections in the Modified Version’s 18912 license notice. These titles must be distinct from any other 18913 section titles. 18914 18915 You may add a section Entitled “Endorsements”, provided it contains 18916 nothing but endorsements of your Modified Version by various 18917 parties—for example, statements of peer review or that the text has 18918 been approved by an organization as the authoritative definition of 18919 a standard. 18920 18921 You may add a passage of up to five words as a Front-Cover Text, 18922 and a passage of up to 25 words as a Back-Cover Text, to the end of 18923 the list of Cover Texts in the Modified Version. Only one passage 18924 of Front-Cover Text and one of Back-Cover Text may be added by (or 18925 through arrangements made by) any one entity. If the Document 18926 already includes a cover text for the same cover, previously added 18927 by you or by arrangement made by the same entity you are acting on 18928 behalf of, you may not add another; but you may replace the old 18929 one, on explicit permission from the previous publisher that added 18930 the old one. 18931 18932 The author(s) and publisher(s) of the Document do not by this 18933 License give permission to use their names for publicity for or to 18934 assert or imply endorsement of any Modified Version. 18935 18936 5. COMBINING DOCUMENTS 18937 18938 You may combine the Document with other documents released under 18939 this License, under the terms defined in section 4 above for 18940 modified versions, provided that you include in the combination all 18941 of the Invariant Sections of all of the original documents, 18942 unmodified, and list them all as Invariant Sections of your 18943 combined work in its license notice, and that you preserve all 18944 their Warranty Disclaimers. 18945 18946 The combined work need only contain one copy of this License, and 18947 multiple identical Invariant Sections may be replaced with a single 18948 copy. If there are multiple Invariant Sections with the same name 18949 but different contents, make the title of each such section unique 18950 by adding at the end of it, in parentheses, the name of the 18951 original author or publisher of that section if known, or else a 18952 unique number. Make the same adjustment to the section titles in 18953 the list of Invariant Sections in the license notice of the 18954 combined work. 18955 18956 In the combination, you must combine any sections Entitled 18957 “History” in the various original documents, forming one section 18958 Entitled “History”; likewise combine any sections Entitled 18959 “Acknowledgements”, and any sections Entitled “Dedications”. You 18960 must delete all sections Entitled “Endorsements.” 18961 18962 6. COLLECTIONS OF DOCUMENTS 18963 18964 You may make a collection consisting of the Document and other 18965 documents released under this License, and replace the individual 18966 copies of this License in the various documents with a single copy 18967 that is included in the collection, provided that you follow the 18968 rules of this License for verbatim copying of each of the documents 18969 in all other respects. 18970 18971 You may extract a single document from such a collection, and 18972 distribute it individually under this License, provided you insert 18973 a copy of this License into the extracted document, and follow this 18974 License in all other respects regarding verbatim copying of that 18975 document. 18976 18977 7. AGGREGATION WITH INDEPENDENT WORKS 18978 18979 A compilation of the Document or its derivatives with other 18980 separate and independent documents or works, in or on a volume of a 18981 storage or distribution medium, is called an “aggregate” if the 18982 copyright resulting from the compilation is not used to limit the 18983 legal rights of the compilation’s users beyond what the individual 18984 works permit. When the Document is included in an aggregate, this 18985 License does not apply to the other works in the aggregate which 18986 are not themselves derivative works of the Document. 18987 18988 If the Cover Text requirement of section 3 is applicable to these 18989 copies of the Document, then if the Document is less than one half 18990 of the entire aggregate, the Document’s Cover Texts may be placed 18991 on covers that bracket the Document within the aggregate, or the 18992 electronic equivalent of covers if the Document is in electronic 18993 form. Otherwise they must appear on printed covers that bracket 18994 the whole aggregate. 18995 18996 8. TRANSLATION 18997 18998 Translation is considered a kind of modification, so you may 18999 distribute translations of the Document under the terms of section 19000 4. Replacing Invariant Sections with translations requires special 19001 permission from their copyright holders, but you may include 19002 translations of some or all Invariant Sections in addition to the 19003 original versions of these Invariant Sections. You may include a 19004 translation of this License, and all the license notices in the 19005 Document, and any Warranty Disclaimers, provided that you also 19006 include the original English version of this License and the 19007 original versions of those notices and disclaimers. In case of a 19008 disagreement between the translation and the original version of 19009 this License or a notice or disclaimer, the original version will 19010 prevail. 19011 19012 If a section in the Document is Entitled “Acknowledgements”, 19013 “Dedications”, or “History”, the requirement (section 4) to 19014 Preserve its Title (section 1) will typically require changing the 19015 actual title. 19016 19017 9. TERMINATION 19018 19019 You may not copy, modify, sublicense, or distribute the Document 19020 except as expressly provided under this License. Any attempt 19021 otherwise to copy, modify, sublicense, or distribute it is void, 19022 and will automatically terminate your rights under this License. 19023 19024 However, if you cease all violation of this License, then your 19025 license from a particular copyright holder is reinstated (a) 19026 provisionally, unless and until the copyright holder explicitly and 19027 finally terminates your license, and (b) permanently, if the 19028 copyright holder fails to notify you of the violation by some 19029 reasonable means prior to 60 days after the cessation. 19030 19031 Moreover, your license from a particular copyright holder is 19032 reinstated permanently if the copyright holder notifies you of the 19033 violation by some reasonable means, this is the first time you have 19034 received notice of violation of this License (for any work) from 19035 that copyright holder, and you cure the violation prior to 30 days 19036 after your receipt of the notice. 19037 19038 Termination of your rights under this section does not terminate 19039 the licenses of parties who have received copies or rights from you 19040 under this License. If your rights have been terminated and not 19041 permanently reinstated, receipt of a copy of some or all of the 19042 same material does not give you any rights to use it. 19043 19044 10. FUTURE REVISIONS OF THIS LICENSE 19045 19046 The Free Software Foundation may publish new, revised versions of 19047 the GNU Free Documentation License from time to time. Such new 19048 versions will be similar in spirit to the present version, but may 19049 differ in detail to address new problems or concerns. See 19050 <http://www.gnu.org/copyleft/>. 19051 19052 Each version of the License is given a distinguishing version 19053 number. If the Document specifies that a particular numbered 19054 version of this License “or any later version” applies to it, you 19055 have the option of following the terms and conditions either of 19056 that specified version or of any later version that has been 19057 published (not as a draft) by the Free Software Foundation. If the 19058 Document does not specify a version number of this License, you may 19059 choose any version ever published (not as a draft) by the Free 19060 Software Foundation. If the Document specifies that a proxy can 19061 decide which future versions of this License can be used, that 19062 proxy’s public statement of acceptance of a version permanently 19063 authorizes you to choose that version for the Document. 19064 19065 11. RELICENSING 19066 19067 “Massive Multiauthor Collaboration Site” (or “MMC Site”) means any 19068 World Wide Web server that publishes copyrightable works and also 19069 provides prominent facilities for anybody to edit those works. A 19070 public wiki that anybody can edit is an example of such a server. 19071 A “Massive Multiauthor Collaboration” (or “MMC”) contained in the 19072 site means any set of copyrightable works thus published on the MMC 19073 site. 19074 19075 “CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 19076 license published by Creative Commons Corporation, a not-for-profit 19077 corporation with a principal place of business in San Francisco, 19078 California, as well as future copyleft versions of that license 19079 published by that same organization. 19080 19081 “Incorporate” means to publish or republish a Document, in whole or 19082 in part, as part of another Document. 19083 19084 An MMC is “eligible for relicensing” if it is licensed under this 19085 License, and if all works that were first published under this 19086 License somewhere other than this MMC, and subsequently 19087 incorporated in whole or in part into the MMC, (1) had no cover 19088 texts or invariant sections, and (2) were thus incorporated prior 19089 to November 1, 2008. 19090 19091 The operator of an MMC Site may republish an MMC contained in the 19092 site under CC-BY-SA on the same site at any time before August 1, 19093 2009, provided the MMC is eligible for relicensing. 19094 19095C.1 ADDENDUM: How to use this License for your documents 19096======================================================== 19097 19098To use this License in a document you have written, include a copy of 19099the License in the document and put the following copyright and license 19100notices just after the title page: 19101 19102 Copyright (C) YEAR YOUR NAME. 19103 Permission is granted to copy, distribute and/or modify this document 19104 under the terms of the GNU Free Documentation License, Version 1.3 19105 or any later version published by the Free Software Foundation; 19106 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover 19107 Texts. A copy of the license is included in the section entitled ``GNU 19108 Free Documentation License''. 19109 19110 If you have Invariant Sections, Front-Cover Texts and Back-Cover 19111Texts, replace the “with...Texts.” line with this: 19112 19113 with the Invariant Sections being LIST THEIR TITLES, with 19114 the Front-Cover Texts being LIST, and with the Back-Cover Texts 19115 being LIST. 19116 19117 If you have Invariant Sections without Cover Texts, or some other 19118combination of the three, merge those two alternatives to suit the 19119situation. 19120 19121 If your document contains nontrivial examples of program code, we 19122recommend releasing these examples in parallel under your choice of free 19123software license, such as the GNU General Public License, to permit 19124their use in free software. 19125 19126 19127File: org.info, Node: Main Index, Next: Key Index, Prev: GNU Free Documentation License, Up: Top 19128 19129D Main Index 19130************ 19131 19132[index] 19133* Menu: 19134 19135* *this*, in post header argument: Results of Evaluation. 19136 (line 247) 19137* + suffix, in properties: Property Syntax. (line 52) 19138* _ALL suffix, in properties: Property Syntax. (line 50) 19139* abbreviation, links: Link Abbreviations. (line 6) 19140* abstract, in LaTeX export: Special blocks in LaTeX export. 19141 (line 6) 19142* action, for publishing: Publishing action. (line 6) 19143* activation: Activation. (line 6) 19144* active region: Structure Editing. (line 46) 19145* add-on packages: Add-on Packages. (line 6) 19146* agenda: Weekly/daily agenda. (line 6) 19147* agenda dispatcher: Agenda Dispatcher. (line 6) 19148* agenda files: Agenda Files. (line 6) 19149* agenda files, removing buffers: Agenda Commands. (line 496) 19150* agenda filtering: Filtering/limiting agenda items. 19151 (line 20) 19152* agenda views: Agenda Views. (line 6) 19153* agenda views, custom: Custom Agenda Views. (line 6) 19154* agenda views, exporting: Exporting Agenda Views. 19155 (line 6) 19156* agenda views, exporting <1>: Exporting Agenda Views. 19157 (line 13) 19158* agenda views, main example: Storing searches. (line 11) 19159* agenda views, optimization: Speeding Up Your Agendas. 19160 (line 6) 19161* agenda views, user-defined: Special Agenda Views. 19162 (line 6) 19163* agenda*, as an agenda views: Storing searches. (line 11) 19164* agenda, as an agenda views: Storing searches. (line 11) 19165* agenda, column view: Agenda Column View. (line 6) 19166* agenda, pipe: Extracting Agenda Information. 19167 (line 6) 19168* agenda, with block views: Block agenda. (line 6) 19169* alignment in tables: Column Width and Alignment. 19170 (line 6) 19171* ALLTAGS, special property: Special Properties. (line 13) 19172* ALT_TITLE, property: Table of Contents. (line 68) 19173* ALT_TITLE, property <1>: Headings and sectioning structure. 19174 (line 24) 19175* angle bracket links: Link Format. (line 6) 19176* angular brackets, around links: External Links. (line 136) 19177* anniversaries, from BBDB: Weekly/daily agenda. (line 78) 19178* API, for mapping: Using the Mapping API. 19179 (line 6) 19180* API, for properties: Using the Property API. 19181 (line 6) 19182* APPENDIX, property: Headings and sectioning structure. 19183 (line 20) 19184* appointment: Timestamps. (line 14) 19185* appointment <1>: Weekly/daily agenda. (line 125) 19186* appointment reminders: Weekly/daily agenda. (line 125) 19187* appt.el: Weekly/daily agenda. (line 125) 19188* APPT_WARNTIME, keyword: Weekly/daily agenda. (line 125) 19189* archive locations: Moving subtrees. (line 25) 19190* ARCHIVE, keyword: Moving subtrees. (line 35) 19191* ARCHIVE, keyword <1>: In-buffer Settings. (line 15) 19192* ARCHIVE, property: Property Inheritance. 19193 (line 33) 19194* ARCHIVE, property <1>: Moving subtrees. (line 37) 19195* ARCHIVE, tag: Internal archiving. (line 6) 19196* archived entries, in agenda views: Agenda Views. (line 37) 19197* archiving: Refiling and Archiving. 19198 (line 6) 19199* archiving <1>: Archiving. (line 6) 19200* arguments, in code blocks: Environment of a Code Block. 19201 (line 9) 19202* ASCII export: ASCII/Latin-1/UTF-8 export. 19203 (line 6) 19204* ASCII, keyword: ASCII/Latin-1/UTF-8 export. 19205 (line 63) 19206* Atom feeds: Capture and Attachments. 19207 (line 6) 19208* Atom feeds <1>: RSS Feeds. (line 6) 19209* attach from Dired: Attach from Dired. (line 6) 19210* attachment links: External Links. (line 6) 19211* attachment links, searching: Search Options. (line 6) 19212* attachments: Capture and Attachments. 19213 (line 6) 19214* attachments <1>: Attachments. (line 6) 19215* ATTR_ASCII, keyword: ASCII/Latin-1/UTF-8 export. 19216 (line 74) 19217* ATTR_BEAMER, keyword: Beamer specific syntax. 19218 (line 35) 19219* ATTR_HTML, keyword: Links in HTML export. 19220 (line 27) 19221* ATTR_HTML, keyword <1>: Tables in HTML export. 19222 (line 11) 19223* ATTR_HTML, keyword <2>: Images in HTML export. 19224 (line 28) 19225* ATTR_LATEX, keyword: Images in LaTeX export. 19226 (line 6) 19227* ATTR_LATEX, keyword <1>: Plain lists in LaTeX export. 19228 (line 6) 19229* ATTR_LATEX, keyword <2>: Source blocks in LaTeX export. 19230 (line 6) 19231* ATTR_LATEX, keyword <3>: Example blocks in LaTeX export. 19232 (line 6) 19233* ATTR_LATEX, keyword <4>: Special blocks in LaTeX export. 19234 (line 6) 19235* ATTR_LATEX, keyword <5>: Horizontal rules in LaTeX export. 19236 (line 6) 19237* ATTR_ODT, keyword: Tables in ODT export. 19238 (line 20) 19239* ATTR_ODT, keyword <1>: Images in ODT export. 19240 (line 31) 19241* ATTR_ODT, keyword <2>: Images in ODT export. 19242 (line 76) 19243* ATTR_ODT, keyword <3>: Advanced topics in ODT export. 19244 (line 151) 19245* ATTR_TEXINFO, keyword: Plain lists in Texinfo export. 19246 (line 6) 19247* ATTR_TEXINFO, keyword <1>: Tables in Texinfo export. 19248 (line 6) 19249* ATTR_TEXINFO, keyword <2>: Images in Texinfo export. 19250 (line 6) 19251* ATTR_TEXINFO, keyword <3>: Quotations in Texinfo export. 19252 (line 6) 19253* ATTR_TEXINFO, keyword <4>: Special blocks in Texinfo export. 19254 (line 6) 19255* author: Feedback. (line 6) 19256* AUTHOR, keyword: Export Settings. (line 25) 19257* author, macro: Macro Replacement. (line 41) 19258* auto clocking out after idle time: Resolving idle time. (line 91) 19259* auto-save, in code block editing: Editing Source Code. (line 11) 19260* autoload: Activation. (line 6) 19261* babel, languages: Languages. (line 6) 19262* babel, library of: Library of Babel. (line 6) 19263* backslashes, in links: Link Format. (line 17) 19264* backtrace of an error: Feedback. (line 69) 19265* BBDB links: External Links. (line 6) 19266* BBDB, anniversaries: Weekly/daily agenda. (line 78) 19267* Beamer export: Beamer Export. (line 6) 19268* BEAMER, keyword: Beamer specific syntax. 19269 (line 19) 19270* BEAMER_ACT, property: Frames and Blocks in Beamer. 19271 (line 41) 19272* BEAMER_COL, property: Frames and Blocks in Beamer. 19273 (line 49) 19274* BEAMER_ENV, property: Frames and Blocks in Beamer. 19275 (line 14) 19276* BEAMER_FONT_THEME, keyword: Beamer specific export settings. 19277 (line 17) 19278* BEAMER_HEADER, keyword: Beamer specific export settings. 19279 (line 26) 19280* BEAMER_INNER_THEME, keyword: Beamer specific export settings. 19281 (line 20) 19282* BEAMER_OPT, property: Frames and Blocks in Beamer. 19283 (line 41) 19284* BEAMER_OUTER_THEME, keyword: Beamer specific export settings. 19285 (line 23) 19286* BEAMER_REF, property: Frames and Blocks in Beamer. 19287 (line 27) 19288* BEAMER_THEME, keyword: Beamer specific export settings. 19289 (line 11) 19290* BEGIN clocktable: The clock table. (line 36) 19291* BEGIN columnview: Capturing column view. 19292 (line 11) 19293* BEGIN_CENTER: Paragraphs. (line 32) 19294* BEGIN_COMMENT: Comment Lines. (line 10) 19295* BEGIN_EXAMPLE: Literal Examples. (line 10) 19296* BEGIN_EXPORT ascii: ASCII/Latin-1/UTF-8 export. 19297 (line 63) 19298* BEGIN_EXPORT beamer: Beamer specific syntax. 19299 (line 19) 19300* BEGIN_EXPORT html: Quoting HTML tags. (line 13) 19301* BEGIN_EXPORT latex: Quoting LaTeX code. (line 18) 19302* BEGIN_EXPORT texinfo: Quoting Texinfo code. 19303 (line 9) 19304* BEGIN_JUSTIFYLEFT: ASCII/Latin-1/UTF-8 export. 19305 (line 84) 19306* BEGIN_JUSTIFYRIGHT: ASCII/Latin-1/UTF-8 export. 19307 (line 84) 19308* BEGIN_QUOTE: Paragraphs. (line 25) 19309* BEGIN_SRC: Literal Examples. (line 38) 19310* BEGIN_SRC <1>: Structure of Code Blocks. 19311 (line 6) 19312* BEGIN_VERSE: Paragraphs. (line 13) 19313* BIND, keyword: Export Settings. (line 210) 19314* block agenda: Block agenda. (line 6) 19315* BLOCKED, special property: Special Properties. (line 13) 19316* blocking, of checkboxes: Checkboxes. (line 45) 19317* blocks, folding: Blocks. (line 6) 19318* bold text, markup rules: Emphasis and Monospace. 19319 (line 6) 19320* boolean logic, for agenda searches: Matching tags and properties. 19321 (line 32) 19322* bracket links: Link Format. (line 9) 19323* bug reports: Feedback. (line 6) 19324* C-c C-c, overview: The Very Busy C-c C-c Key. 19325 (line 6) 19326* cache results of code evaluation: Evaluating Code Blocks. 19327 (line 106) 19328* cache, header argument: Evaluating Code Blocks. 19329 (line 106) 19330* Calc package: The Spreadsheet. (line 6) 19331* calc.el: Cooperation. (line 7) 19332* calculations, in tables: Built-in Table Editor. 19333 (line 180) 19334* calculations, in tables <1>: The Spreadsheet. (line 6) 19335* calendar commands, from agenda: Agenda Commands. (line 446) 19336* calendar integration: Weekly/daily agenda. (line 32) 19337* calendar, for selecting date: The date/time prompt. 19338 (line 75) 19339* CALL, keyword: Evaluating Code Blocks. 19340 (line 27) 19341* CAPTION, keyword: Captions. (line 6) 19342* CAPTION, keyword <1>: Tables in HTML export. 19343 (line 11) 19344* CAPTION, keyword <2>: Images in HTML export. 19345 (line 28) 19346* captions, markup rules: Captions. (line 6) 19347* capture: Capture and Attachments. 19348 (line 6) 19349* capture <1>: Capture. (line 6) 19350* capture protocol: The capture protocol. 19351 (line 6) 19352* capturing, from agenda: Agenda Commands. (line 345) 19353* category: Categories. (line 6) 19354* category filtering, in agenda: Filtering/limiting agenda items. 19355 (line 20) 19356* category, for tags/property match: Matching tags and properties. 19357 (line 64) 19358* CATEGORY, keyword: Categories. (line 6) 19359* CATEGORY, keyword <1>: In-buffer Settings. (line 19) 19360* CATEGORY, property: Property Inheritance. 19361 (line 29) 19362* CATEGORY, property <1>: Categories. (line 12) 19363* CDLaTeX: CDLaTeX mode. (line 6) 19364* cdlatex.el: Cooperation. (line 24) 19365* center blocks: Paragraphs. (line 32) 19366* center image in LaTeX export: Images in LaTeX export. 19367 (line 60) 19368* change agenda display: Agenda Commands. (line 63) 19369* checkbox blocking: Checkboxes. (line 45) 19370* checkbox statistics: Checkboxes. (line 29) 19371* checkboxes: Checkboxes. (line 6) 19372* checkboxes and TODO dependencies: TODO dependencies. (line 53) 19373* children, subtree visibility state: Global and local cycling. 19374 (line 6) 19375* CINDEX, keyword: Indices. (line 6) 19376* CLASS, property: iCalendar Export. (line 51) 19377* clean outline view: Clean View. (line 6) 19378* clocking time: Clocking Work Time. (line 6) 19379* CLOCKSUM, special property: Special Properties. (line 13) 19380* CLOCKSUM, special property <1>: Agenda Column View. (line 32) 19381* CLOCKSUM_T, special property: Special Properties. (line 13) 19382* CLOCKSUM_T, special property <1>: Agenda Column View. (line 56) 19383* clocktable, dynamic block: The clock table. (line 6) 19384* CLOCK_MODELINE_TOTAL, property: Clocking commands. (line 21) 19385* CLOSED, special property: Special Properties. (line 13) 19386* code block, batch execution: Batch Execution. (line 6) 19387* code block, editing: Editing Source Code. (line 6) 19388* code block, evaluating: Evaluating Code Blocks. 19389 (line 6) 19390* code block, exporting: Exporting Code Blocks. 19391 (line 6) 19392* code block, extracting source code: Extracting Source Code. 19393 (line 6) 19394* code block, key bindings: Key bindings and Useful Functions. 19395 (line 6) 19396* code block, languages: Languages. (line 6) 19397* code block, library: Library of Babel. (line 6) 19398* code block, noweb reference: Noweb Reference Syntax. 19399 (line 6) 19400* code block, results of evaluation: Results of Evaluation. 19401 (line 6) 19402* code block, structure: Structure of Code Blocks. 19403 (line 6) 19404* code line references, markup rules: Literal Examples. (line 6) 19405* code text, markup rules: Emphasis and Monospace. 19406 (line 6) 19407* colnames, header argument: Environment of a Code Block. 19408 (line 48) 19409* column formula: Column formulas. (line 6) 19410* column view, for properties: Defining columns. (line 6) 19411* column view, in agenda: Agenda Column View. (line 6) 19412* column, of field coordinates: References. (line 90) 19413* COLUMNS, keyword: Scope of column definitions. 19414 (line 18) 19415* COLUMNS, property: Property Inheritance. 19416 (line 22) 19417* COLUMNS, property <1>: In-buffer Settings. (line 23) 19418* comma escape, in literal examples: Literal Examples. (line 14) 19419* commands, in agenda buffer: Agenda Commands. (line 6) 19420* comment block: Comment Lines. (line 10) 19421* comment lines: Comment Lines. (line 6) 19422* comment trees: Comment Lines. (line 13) 19423* commented entries, in agenda views: Agenda Views. (line 37) 19424* comments, header argument: Extracting Source Code. 19425 (line 46) 19426* completion, of dictionary words: Completion. (line 6) 19427* completion, of file names: Handling Links. (line 92) 19428* completion, of link abbreviations: Completion. (line 6) 19429* completion, of links: Handling Links. (line 69) 19430* completion, of option keywords: Per-file keywords. (line 26) 19431* completion, of option keywords <1>: Completion. (line 6) 19432* completion, of property keys: Completion. (line 6) 19433* completion, of tags: Setting Tags. (line 11) 19434* completion, of tags <1>: Completion. (line 6) 19435* completion, of TeX symbols: Completion. (line 6) 19436* completion, of TODO keywords: Workflow states. (line 17) 19437* completion, of TODO keywords <1>: Completion. (line 6) 19438* concept index, in Texinfo export: Indices. (line 6) 19439* constants, in calculations: References. (line 114) 19440* CONSTANTS, keyword: References. (line 114) 19441* CONSTANTS, keyword <1>: In-buffer Settings. (line 28) 19442* constants.el: Cooperation. (line 14) 19443* contents, global visibility state: Global and local cycling. 19444 (line 20) 19445* continuous clocking: Resolving idle time. (line 78) 19446* control code block evaluation: Evaluating Code Blocks. 19447 (line 81) 19448* convert: Advanced topics in ODT export. 19449 (line 12) 19450* converter: Advanced topics in ODT export. 19451 (line 12) 19452* COOKIE_DATA, property: Breaking Down Tasks. (line 21) 19453* COOKIE_DATA, property <1>: Checkboxes. (line 29) 19454* coordinates, of field: References. (line 90) 19455* copying notes: Refiling and Archiving. 19456 (line 6) 19457* copying notes <1>: Refile and Copy. (line 6) 19458* copying, of subtrees: Structure Editing. (line 6) 19459* COPYING, property: Texinfo title and copyright page. 19460 (line 19) 19461* countdown timer: Timers. (line 6) 19462* counter, macro: Macro Replacement. (line 75) 19463* CREATOR, keyword: Export Settings. (line 28) 19464* CSS, for HTML export: CSS support. (line 6) 19465* cua.el: Conflicts. (line 17) 19466* custom agenda views: Custom Agenda Views. (line 6) 19467* custom date/time format: Custom time format. (line 6) 19468* custom search strings: Custom Searches. (line 6) 19469* CUSTOM_ID, property: Internal Links. (line 11) 19470* CUSTOM_ID, property <1>: Handling Links. (line 21) 19471* cutting, of subtrees: Structure Editing. (line 6) 19472* cycling, in plain lists: Plain Lists. (line 70) 19473* cycling, of agenda files: Agenda Files. (line 26) 19474* cycling, of TODO states: TODO Basics. (line 14) 19475* cycling, visibility: Visibility Cycling. (line 6) 19476* daily agenda: Weekly/daily agenda. (line 6) 19477* dash, special symbol: Special Symbols. (line 36) 19478* data type index, in Texinfo export: Indices. (line 6) 19479* date format, custom: Custom time format. (line 6) 19480* date range: Timestamps. (line 42) 19481* date stamp: Dates and Times. (line 6) 19482* date stamps: Timestamps. (line 6) 19483* date tree: Using capture. (line 7) 19484* DATE, keyword: Export Settings. (line 32) 19485* date, macro: Macro Replacement. (line 49) 19486* date, reading in minibuffer: The date/time prompt. 19487 (line 6) 19488* dates: Dates and Times. (line 6) 19489* DEADLINE marker: Deadlines and Scheduling. 19490 (line 11) 19491* DEADLINE, special property: Special Properties. (line 13) 19492* deadlines: Timestamps. (line 6) 19493* debugging, of table formulas: Editing and debugging formulas. 19494 (line 132) 19495* default header arguments per language: Using Header Arguments. 19496 (line 36) 19497* defining new protocols: Protocols. (line 25) 19498* demotion, of subtrees: Structure Editing. (line 6) 19499* dependencies, of TODO states: TODO dependencies. (line 6) 19500* DESCRIPTION, keyword: Beamer specific export settings. 19501 (line 30) 19502* DESCRIPTION, keyword <1>: HTML specific export settings. 19503 (line 10) 19504* DESCRIPTION, keyword <2>: LaTeX specific export settings. 19505 (line 11) 19506* DESCRIPTION, keyword <3>: ODT specific export settings. 19507 (line 11) 19508* DESCRIPTION, property: Headings and sectioning structure. 19509 (line 24) 19510* DESCRIPTION, property <1>: iCalendar Export. (line 51) 19511* diary entries, creating from agenda: Agenda Commands. (line 455) 19512* diary integration: Weekly/daily agenda. (line 32) 19513* diary style timestamps: Timestamps. (line 34) 19514* dictionary word completion: Completion. (line 6) 19515* dir file, in Texinfo export: Info directory file. (line 6) 19516* dir, header argument: Environment of a Code Block. 19517 (line 302) 19518* DIR, property: Attachment defaults and dispatcher. 19519 (line 68) 19520* DIR, property <1>: Attachment defaults and dispatcher. 19521 (line 73) 19522* directories, for publishing: Sources and destinations. 19523 (line 6) 19524* dispatcher, for export commands: The Export Dispatcher. 19525 (line 6) 19526* dispatching agenda commands: Agenda Dispatcher. (line 6) 19527* display changing, in agenda: Agenda Commands. (line 63) 19528* doc, docx, rtf: Advanced topics in ODT export. 19529 (line 12) 19530* document structure: Document Structure. (line 6) 19531* document title: Export Settings. (line 60) 19532* documentation: Documentation Access. 19533 (line 6) 19534* DONE, final TODO keyword: Per-file keywords. (line 29) 19535* drawer, for properties: Property Syntax. (line 6) 19536* drawer, for state change recording: Tracking TODO state changes. 19537 (line 6) 19538* drawers: Drawers. (line 6) 19539* duration, computing: Durations and time values. 19540 (line 6) 19541* dvipng: Math formatting in HTML export. 19542 (line 6) 19543* dvipng <1>: LaTeX math snippets. (line 50) 19544* dvisvgm: Math formatting in HTML export. 19545 (line 6) 19546* dvisvgm <1>: LaTeX math snippets. (line 50) 19547* dynamic blocks: Dynamic Blocks. (line 6) 19548* dynamic indentation: Clean View. (line 6) 19549* ecomplete.el: Conflicts. (line 32) 19550* editing tables: Tables. (line 6) 19551* editing, of table formulas: Editing and debugging formulas. 19552 (line 6) 19553* edits, catching invisible: Catching invisible edits. 19554 (line 6) 19555* effort estimates: Effort Estimates. (line 6) 19556* effort filtering, in agenda: Filtering/limiting agenda items. 19557 (line 20) 19558* EFFORT, property: Effort Estimates. (line 6) 19559* Elisp links: External Links. (line 6) 19560* ellipsis, special symbol: Special Symbols. (line 36) 19561* ELPA: Activation. (line 6) 19562* EMAIL, keyword: Export Settings. (line 35) 19563* email, macro: Macro Replacement. (line 41) 19564* embedding images in ODT: Images in ODT export. 19565 (line 6) 19566* entities: Special Symbols. (line 6) 19567* enum, Texinfo attribute: Plain lists in Texinfo export. 19568 (line 35) 19569* epilogue, header argument: Environment of a Code Block. 19570 (line 352) 19571* escape character: Escape Character. (line 6) 19572* escape syntax, for links: Link Format. (line 17) 19573* eval, header argument: Evaluating Code Blocks. 19574 (line 81) 19575* evaluate time range: Creating Timestamps. (line 62) 19576* example block: Literal Examples. (line 10) 19577* example blocks, in LaTeX export: Example blocks in LaTeX export. 19578 (line 6) 19579* EXCLUDE_TAGS, keyword: Export Settings. (line 52) 19580* excluding entries from table of contents: Table of Contents. 19581 (line 15) 19582* export back-end: Exporting. (line 12) 19583* export, dispatcher: The Export Dispatcher. 19584 (line 6) 19585* export, include files: Include Files. (line 6) 19586* export, OpenDocument: OpenDocument Text Export. 19587 (line 6) 19588* Export, settings: Export Settings. (line 6) 19589* Export, writing back-ends: Adding Export Back-ends. 19590 (line 6) 19591* exporting: Exporting. (line 6) 19592* exporting agenda views: Exporting Agenda Views. 19593 (line 13) 19594* exporting, not: Comment Lines. (line 6) 19595* exports, header argument: Exporting Code Blocks. 19596 (line 14) 19597* EXPORT_FILE_NAME, keyword: Export Settings. (line 64) 19598* EXPORT_FILE_NAME, property: ODT export commands. (line 9) 19599* EXPORT_LATEX_CLASS, property: LaTeX header and sectioning. 19600 (line 23) 19601* EXPORT_LATEX_CLASS_OPTIONS, property: LaTeX header and sectioning. 19602 (line 23) 19603* extended TODO keywords: TODO Extensions. (line 6) 19604* external archiving: Moving subtrees. (line 6) 19605* external links: External Links. (line 6) 19606* external links, in HTML export: Links in HTML export. 19607 (line 6) 19608* faces, for TODO keywords: Faces for TODO keywords. 19609 (line 6) 19610* FAQ: Summary. (line 49) 19611* feedback: Feedback. (line 6) 19612* field coordinates: References. (line 90) 19613* field formula: Field and range formulas. 19614 (line 6) 19615* field references: References. (line 15) 19616* file links: External Links. (line 6) 19617* file links, searching: Search Options. (line 6) 19618* file name completion: Handling Links. (line 92) 19619* file, header argument: Results of Evaluation. 19620 (line 119) 19621* FILE, special property: Special Properties. (line 13) 19622* file-desc, header argument: Results of Evaluation. 19623 (line 140) 19624* file-ext, header argument: Results of Evaluation. 19625 (line 129) 19626* file-mode, header argument: Results of Evaluation. 19627 (line 149) 19628* files for agenda: Agenda Files. (line 6) 19629* files, adding to agenda list: Agenda Files. (line 16) 19630* files, selecting for publishing: Selecting files. (line 6) 19631* FILETAGS, keyword: Tag Inheritance. (line 20) 19632* FILETAGS, keyword <1>: In-buffer Settings. (line 34) 19633* filladapt.el: Conflicts. (line 43) 19634* filtering entries, in agenda: Filtering/limiting agenda items. 19635 (line 20) 19636* Filters, exporting: Advanced Export Configuration. 19637 (line 31) 19638* FINDEX, keyword: Indices. (line 6) 19639* FLAGGED, tag: Pulling from the mobile application. 19640 (line 18) 19641* folded, subtree visibility state: Global and local cycling. 19642 (line 6) 19643* folding, sparse trees: Sparse Trees. (line 6) 19644* following links: Handling Links. (line 102) 19645* footers, in code blocks: Environment of a Code Block. 19646 (line 344) 19647* footnotes: Creating Footnotes. (line 6) 19648* format specifier, in spreadsheet: Formula syntax for Calc. 19649 (line 17) 19650* format, of links: Link Format. (line 6) 19651* formatting source code, markup rules: Literal Examples. (line 31) 19652* formula debugging: Editing and debugging formulas. 19653 (line 132) 19654* formula editing: Editing and debugging formulas. 19655 (line 6) 19656* formula syntax, Calc: Formula syntax for Calc. 19657 (line 6) 19658* formula, for individual table field: Field and range formulas. 19659 (line 6) 19660* formula, for range of fields: Field and range formulas. 19661 (line 6) 19662* formula, for table column: Column formulas. (line 6) 19663* formula, in tables: Built-in Table Editor. 19664 (line 180) 19665* function index, in Texinfo export: Indices. (line 6) 19666* global cycling: Global and local cycling. 19667 (line 20) 19668* global key bindings: Activation. (line 6) 19669* global TODO list: Global TODO list. (line 6) 19670* global visibility states: Global and local cycling. 19671 (line 20) 19672* Gnus links: External Links. (line 6) 19673* graph, in tables: Org Plot. (line 6) 19674* group tags: Tag Hierarchy. (line 6) 19675* group tags, as regular expressions: Matching tags and properties. 19676 (line 57) 19677* grouping columns in tables: Column Groups. (line 6) 19678* habits: Tracking your habits. 19679 (line 6) 19680* hacking: Hacking. (line 6) 19681* header arguments per language: Using Header Arguments. 19682 (line 74) 19683* header arguments, in code blocks: Structure of Code Blocks. 19684 (line 57) 19685* header lines, in tables: Built-in Table Editor. 19686 (line 6) 19687* header, for LaTeX files: LaTeX header and sectioning. 19688 (line 6) 19689* HEADER, keyword: Using Header Arguments. 19690 (line 114) 19691* headers, in code blocks: Environment of a Code Block. 19692 (line 344) 19693* headline navigation: Motion. (line 6) 19694* headline tagging: Tags. (line 6) 19695* headline, promotion and demotion: Structure Editing. (line 6) 19696* headlines: Headlines. (line 6) 19697* headlines, in HTML export: Headlines in HTML export. 19698 (line 6) 19699* Help links: External Links. (line 6) 19700* hide text: Visibility Cycling. (line 6) 19701* hiding leading stars: Clean View. (line 6) 19702* hlines, header argument: Results of Evaluation. 19703 (line 69) 19704* hooks: Hooks (2). (line 6) 19705* horizontal rule, in tables: Built-in Table Editor. 19706 (line 6) 19707* horizontal rules, in ASCII export: ASCII/Latin-1/UTF-8 export. 19708 (line 74) 19709* horizontal rules, in LaTeX export: Horizontal rules in LaTeX export. 19710 (line 6) 19711* horizontal rules, markup rules: Horizontal Rules. (line 6) 19712* HTML export: HTML Export. (line 6) 19713* HTML export, CSS: CSS support. (line 6) 19714* HTML, and Orgtbl mode: Translator functions. 19715 (line 6) 19716* HTML, keyword: Quoting HTML tags. (line 13) 19717* html-style, OPTIONS item: CSS support. (line 56) 19718* HTML5, export new elements: HTML doctypes. (line 25) 19719* HTML_CONTAINER, keyword: HTML specific export settings. 19720 (line 19) 19721* HTML_CONTAINER_CLASS, property: CSS support. (line 62) 19722* HTML_DOCTYPE, keyword: HTML specific export settings. 19723 (line 16) 19724* HTML_HEAD, keyword: HTML specific export settings. 19725 (line 35) 19726* HTML_HEAD, keyword <1>: CSS support. (line 49) 19727* HTML_HEADLINE_CLASS, property: CSS support. (line 62) 19728* HTML_HEAD_EXTRA, keyword: HTML specific export settings. 19729 (line 39) 19730* HTML_HEAD_EXTRA, keyword <1>: CSS support. (line 49) 19731* HTML_INCLUDE_STYLE, keyword: CSS support. (line 44) 19732* HTML_LINK_HOME, keyword: HTML specific export settings. 19733 (line 23) 19734* HTML_LINK_UP, keyword: HTML specific export settings. 19735 (line 26) 19736* HTML_MATHJAX, keyword: HTML specific export settings. 19737 (line 30) 19738* hyperlinks: Hyperlinks. (line 6) 19739* hyperlinks, adding new types: Adding Hyperlink Types. 19740 (line 6) 19741* iCalendar export: iCalendar Export. (line 6) 19742* ID, property: Handling Links. (line 21) 19743* ID, property <1>: Capturing column view. 19744 (line 34) 19745* ID, property <2>: iCalendar Export. (line 26) 19746* identify, ImageMagick: Images in ODT export. 19747 (line 34) 19748* idle, resolve, dangling: Resolving idle time. (line 9) 19749* image, centering in LaTeX export: Images in LaTeX export. 19750 (line 60) 19751* ImageMagick: Math formatting in HTML export. 19752 (line 6) 19753* ImageMagick <1>: LaTeX math snippets. (line 50) 19754* images, embedding in ODT: Images in ODT export. 19755 (line 6) 19756* images, inline in HTML: Images in HTML export. 19757 (line 6) 19758* images, inline in LaTeX: Images in LaTeX export. 19759 (line 6) 19760* images, markup rules: Images. (line 6) 19761* imenu.el: Cooperation. (line 29) 19762* in-buffer settings: In-buffer Settings. (line 6) 19763* inactive timestamp: Timestamps. (line 50) 19764* include files, during export: Include Files. (line 6) 19765* INCLUDE, keyword: Include Files. (line 6) 19766* Indent mode: Org Indent Mode. (line 6) 19767* indentation, in code blocks: Editing Source Code. (line 32) 19768* indentation, in source blocks: Literal Examples. (line 81) 19769* index, in a publishing project: Generating an index. (line 6) 19770* INDEX, keyword: Generating an index. (line 17) 19771* INDEX, property: Indices. (line 14) 19772* indic, Texinfo attribute: Plain lists in Texinfo export. 19773 (line 12) 19774* Info: Documentation Access. 19775 (line 6) 19776* Info directory file, in Texinfo export: Info directory file. 19777 (line 6) 19778* Info links: External Links. (line 6) 19779* INFOJS_OPT, keyword: JavaScript support. (line 19) 19780* inheritance, of properties: Property Inheritance. 19781 (line 6) 19782* inheritance, of tags: Tag Inheritance. (line 6) 19783* inline, in LaTeX export: Quoting LaTeX code. (line 10) 19784* inlining images: Images. (line 6) 19785* inlining images in HTML: Images in HTML export. 19786 (line 6) 19787* inlining images in LaTeX: Images in LaTeX export. 19788 (line 6) 19789* input-file, macro: Macro Replacement. (line 64) 19790* inserting links: Handling Links. (line 69) 19791* insertion, of templates: Structure Templates. (line 6) 19792* insertion, of templates <1>: Structure Templates. (line 21) 19793* install-info, in Texinfo export: Info directory file. (line 6) 19794* installation: Installation. (line 6) 19795* Installing Org protocol: Protocols. (line 14) 19796* internal links: Internal Links. (line 6) 19797* internal links, in HTML export: Links in HTML export. 19798 (line 6) 19799* introduction: Introduction. (line 6) 19800* IRC links: External Links. (line 6) 19801* italic text, markup rules: Emphasis and Monospace. 19802 (line 6) 19803* ITEM, special property: Special Properties. (line 13) 19804* jumping, to headlines: Motion. (line 6) 19805* key bindings, global: Activation. (line 6) 19806* keystroke index, in Texinfo export: Indices. (line 6) 19807* keyword options: Per-file keywords. (line 6) 19808* keyword, macro: Macro Replacement. (line 41) 19809* KEYWORDS, keyword: Beamer specific export settings. 19810 (line 37) 19811* KEYWORDS, keyword <1>: HTML specific export settings. 19812 (line 43) 19813* KEYWORDS, keyword <2>: LaTeX specific export settings. 19814 (line 54) 19815* KEYWORDS, keyword <3>: ODT specific export settings. 19816 (line 16) 19817* KINDEX, keyword: Indices. (line 6) 19818* language specific default header arguments: Using Header Arguments. 19819 (line 36) 19820* language specific header arguments properties: Using Header Arguments. 19821 (line 74) 19822* language, in code blocks: Structure of Code Blocks. 19823 (line 47) 19824* LANGUAGE, keyword: Export Settings. (line 38) 19825* LANGUAGE, keyword <1>: LaTeX specific export settings. 19826 (line 20) 19827* LAST_REPEAT, property: Clocking commands. (line 21) 19828* LaTeX class: LaTeX header and sectioning. 19829 (line 6) 19830* LaTeX export: LaTeX Export. (line 6) 19831* LaTeX fragments: LaTeX fragments. (line 6) 19832* LaTeX fragments, preview: Previewing LaTeX fragments. 19833 (line 6) 19834* LaTeX header: LaTeX header and sectioning. 19835 (line 6) 19836* LaTeX interpretation: Embedded LaTeX. (line 6) 19837* LaTeX sectioning structure: LaTeX header and sectioning. 19838 (line 6) 19839* LaTeX, and Orgtbl mode: A LaTeX example. (line 6) 19840* LATEX, keyword: Quoting LaTeX code. (line 14) 19841* LATEX_CLASS, keyword: LaTeX specific export settings. 19842 (line 32) 19843* LATEX_CLASS, keyword <1>: LaTeX header and sectioning. 19844 (line 23) 19845* LATEX_CLASS_OPTIONS, keyword: LaTeX specific export settings. 19846 (line 40) 19847* LATEX_CLASS_OPTIONS, keyword <1>: LaTeX header and sectioning. 19848 (line 23) 19849* LATEX_COMPILER, keyword: LaTeX/PDF export commands. 19850 (line 25) 19851* LATEX_COMPILER, keyword <1>: LaTeX specific export settings. 19852 (line 44) 19853* LATEX_HEADER, keyword: HTML specific export settings. 19854 (line 48) 19855* LATEX_HEADER, keyword <1>: LaTeX specific export settings. 19856 (line 49) 19857* LATEX_HEADER, keyword <2>: LaTeX header and sectioning. 19858 (line 30) 19859* LATEX_HEADER_EXTRA, keyword: LaTeX specific export settings. 19860 (line 49) 19861* LATEX_HEADER_EXTRA, keyword <1>: LaTeX header and sectioning. 19862 (line 30) 19863* Latin-1 export: ASCII/Latin-1/UTF-8 export. 19864 (line 6) 19865* lettered lists, in Texinfo export: Plain lists in Texinfo export. 19866 (line 35) 19867* level, for tags/property match: Matching tags and properties. 19868 (line 64) 19869* LibreOffice: OpenDocument Text Export. 19870 (line 6) 19871* limits, in agenda: Filtering/limiting agenda items. 19872 (line 128) 19873* line breaks, markup rules: Paragraphs. (line 9) 19874* lines, include: Include Files. (line 36) 19875* link abbreviations: Link Abbreviations. (line 6) 19876* link abbreviations, completion of: Completion. (line 6) 19877* link completion: Handling Links. (line 69) 19878* link format: Link Format. (line 6) 19879* LINK, keyword: Link Abbreviations. (line 49) 19880* LINK, keyword <1>: In-buffer Settings. (line 38) 19881* links, external: External Links. (line 6) 19882* links, finding next/previous: Handling Links. (line 151) 19883* links, handling: Handling Links. (line 6) 19884* links, in HTML export: Links in HTML export. 19885 (line 6) 19886* links, in ODT export: Links in ODT export. (line 6) 19887* links, internal: Internal Links. (line 6) 19888* links, publishing: Publishing links. (line 6) 19889* links, radio targets: Radio Targets. (line 6) 19890* links, returning to: Handling Links. (line 144) 19891* linter: Org Syntax. (line 24) 19892* Lisp forms, as table formulas: Formula syntax for Lisp. 19893 (line 6) 19894* list of listings: Table of Contents. (line 6) 19895* list of tables: Table of Contents. (line 6) 19896* lists, in other modes: Tables in Arbitrary Syntax. 19897 (line 6) 19898* lists, ordered: Plain Lists. (line 6) 19899* lists, plain: Plain Lists. (line 6) 19900* literal examples, markup rules: Literal Examples. (line 6) 19901* LOCATION, property: iCalendar Export. (line 51) 19902* logging, of progress: Progress Logging. (line 6) 19903* LOGGING, property: Tracking TODO state changes. 19904 (line 45) 19905* LOGGING, property <1>: Property Inheritance. 19906 (line 37) 19907* LOG_INTO_DRAWER, property: Tracking TODO state changes. 19908 (line 6) 19909* LOG_INTO_DRAWER, property <1>: Clocking commands. (line 7) 19910* lookup functions in tables: Lookup functions. (line 6) 19911* lualatex: LaTeX/PDF export commands. 19912 (line 25) 19913* macro replacement, during export: Macro Replacement. (line 6) 19914* MACRO, keyword: Macro Replacement. (line 6) 19915* maintainer: Feedback. (line 6) 19916* mapping entries, API: Using the Mapping API. 19917 (line 6) 19918* mappings in open-source protocol: The open-source protocol. 19919 (line 67) 19920* mark ring: Handling Links. (line 139) 19921* Markdown export: Markdown Export. (line 6) 19922* marking characters, tables: Advanced features. (line 39) 19923* match view: Matching tags and properties. 19924 (line 6) 19925* matching, of properties: Matching tags and properties. 19926 (line 6) 19927* matching, of tags: Matching tags and properties. 19928 (line 6) 19929* matching, tags: Tags. (line 6) 19930* math symbols: Special Symbols. (line 6) 19931* MathJax: Math formatting in HTML export. 19932 (line 6) 19933* MathML: LaTeX math snippets. (line 10) 19934* MH-E links: External Links. (line 6) 19935* minlevel, include: Include Files. (line 22) 19936* minor mode for tables: Orgtbl Mode. (line 6) 19937* mkdirp, header argument: Environment of a Code Block. 19938 (line 302) 19939* mkdirp, header argument <1>: Extracting Source Code. 19940 (line 42) 19941* mode, for Calc: Formula syntax for Calc. 19942 (line 17) 19943* modification-time, macro: Macro Replacement. (line 56) 19944* motion commands in agenda: Agenda Commands. (line 19) 19945* motion, between headlines: Motion. (line 6) 19946* multiple formula lines: Editing and debugging formulas. 19947 (line 98) 19948* multiple items in Texinfo lists: Plain lists in Texinfo export. 19949 (line 17) 19950* n, macro: Macro Replacement. (line 75) 19951* NAME keyword, in source blocks: Structure of Code Blocks. 19952 (line 6) 19953* NAME, keyword: References. (line 135) 19954* NAME, keyword <1>: Internal Links. (line 21) 19955* name, of column or field: References. (line 114) 19956* name, of column or field <1>: References. (line 135) 19957* named references: References. (line 114) 19958* names as TODO keywords: TODO types. (line 6) 19959* narrow columns in tables: Column Width and Alignment. 19960 (line 6) 19961* no-expand, header argument: Extracting Source Code. 19962 (line 97) 19963* NOBLOCKING, property: TODO dependencies. (line 29) 19964* noweb, header argument: Noweb Reference Syntax. 19965 (line 18) 19966* noweb-ref, header argument: Noweb Reference Syntax. 19967 (line 6) 19968* noweb-sep, header argument: Noweb Reference Syntax. 19969 (line 96) 19970* number headlines: Dynamic Headline Numbering. 19971 (line 6) 19972* occur, command: Sparse Trees. (line 6) 19973* occur-tree: Storing searches. (line 11) 19974* odd-levels-only outlines: Clean View. (line 6) 19975* ODT: OpenDocument Text Export. 19976 (line 6) 19977* ODT, keyword: Advanced topics in ODT export. 19978 (line 120) 19979* ODT_STYLES_FILE, keyword: ODT specific export settings. 19980 (line 22) 19981* ODT_STYLES_FILE, keyword <1>: Applying custom styles. 19982 (line 29) 19983* only-contents, include: Include Files. (line 53) 19984* open-source protocol: The open-source protocol. 19985 (line 6) 19986* OpenDocument: OpenDocument Text Export. 19987 (line 6) 19988* option keyword completion: Completion. (line 6) 19989* options, for custom agenda views: Setting options. (line 6) 19990* options, for export: Export Settings. (line 6) 19991* options, for publishing: Publishing options. (line 6) 19992* OPTIONS, keyword: Export Settings. (line 6) 19993* ordered lists: Plain Lists. (line 6) 19994* ORDERED, property: TODO dependencies. (line 6) 19995* ORDERED, property <1>: Checkboxes. (line 45) 19996* Org export: Org Export. (line 6) 19997* Org mode, turning on: Activation. (line 24) 19998* Org Num mode: Dynamic Headline Numbering. 19999 (line 6) 20000* Org protocol, set-up: Protocols. (line 14) 20001* org-agenda, command: Weekly/daily agenda. (line 10) 20002* Orgtbl mode: Orgtbl Mode. (line 6) 20003* Orgtbl mode <1>: Tables in Arbitrary Syntax. 20004 (line 6) 20005* ORGTBL, keyword: Radio tables. (line 21) 20006* outline tree: Headlines. (line 6) 20007* output-dir, header argument: Results of Evaluation. 20008 (line 119) 20009* overview, global visibility state: Global and local cycling. 20010 (line 20) 20011* packages, interaction with other: Interaction. (line 6) 20012* padline, header argument: Extracting Source Code. 20013 (line 73) 20014* paragraphs, markup rules: Paragraphs. (line 6) 20015* passing arguments to code blocks: Environment of a Code Block. 20016 (line 9) 20017* pasting, of subtrees: Structure Editing. (line 6) 20018* PDF export: LaTeX Export. (line 6) 20019* pdflatex: LaTeX/PDF export commands. 20020 (line 25) 20021* per-file keywords: Per-file keywords. (line 6) 20022* PINDEX, keyword: Indices. (line 6) 20023* plain links: Link Format. (line 6) 20024* plain lists: Plain Lists. (line 6) 20025* plain lists, in LaTeX export: Plain lists in LaTeX export. 20026 (line 6) 20027* plain text external links: External Links. (line 136) 20028* plot tables using Gnuplot: Org Plot. (line 6) 20029* PLOT, keyword: Org Plot. (line 12) 20030* post, header argument: Results of Evaluation. 20031 (line 247) 20032* presentation, of agenda items: Presentation and Sorting. 20033 (line 6) 20034* print edition: Summary. (line 54) 20035* printing sparse trees: Sparse Trees. (line 52) 20036* priorities: Priorities. (line 6) 20037* PRIORITIES, keyword: Priorities. (line 52) 20038* PRIORITIES, keyword <1>: In-buffer Settings. (line 43) 20039* priorities, of agenda items: Sorting of agenda items. 20040 (line 6) 20041* priority cookie: Priorities. (line 6) 20042* PRIORITY, special property: Special Properties. (line 13) 20043* program index, in Texinfo export: Indices. (line 6) 20044* progress logging: Progress Logging. (line 6) 20045* projects, for publishing: Project alist. (line 6) 20046* prologue, header argument: Environment of a Code Block. 20047 (line 344) 20048* promotion, of subtrees: Structure Editing. (line 6) 20049* proof, in LaTeX export: Special blocks in LaTeX export. 20050 (line 6) 20051* properties: Properties and Columns. 20052 (line 6) 20053* properties, API: Using the Property API. 20054 (line 6) 20055* properties, column view: Defining columns. (line 6) 20056* properties, inheritance: Property Inheritance. 20057 (line 6) 20058* properties, searching: Property Searches. (line 6) 20059* properties, special: Special Properties. (line 6) 20060* property syntax: Property Syntax. (line 6) 20061* PROPERTY, keyword: Property Syntax. (line 50) 20062* PROPERTY, keyword <1>: In-buffer Settings. (line 48) 20063* property, macro: Macro Replacement. (line 68) 20064* protocol, capture: The capture protocol. 20065 (line 6) 20066* protocol, new protocol: Protocols. (line 25) 20067* protocol, open-source: The open-source protocol. 20068 (line 6) 20069* protocol, open-source rewritten URL: The open-source protocol. 20070 (line 32) 20071* protocol, open-source, set-up mapping: The open-source protocol. 20072 (line 67) 20073* protocol, store-link: The store-link protocol. 20074 (line 6) 20075* protocols, for external access: Capture and Attachments. 20076 (line 6) 20077* protocols, for external access <1>: Protocols. (line 6) 20078* publishing: Publishing. (line 6) 20079* publishing options: Publishing options. (line 6) 20080* query editing, in agenda: Filtering/limiting agenda items. 20081 (line 20) 20082* quote blocks: Paragraphs. (line 25) 20083* radio button, checkbox as: Checkboxes. (line 75) 20084* radio tables: Radio tables. (line 6) 20085* radio targets: Radio Targets. (line 6) 20086* range formula: Field and range formulas. 20087 (line 6) 20088* range references: References. (line 64) 20089* ranges, time: Timestamps. (line 6) 20090* recomputing table fields: Updating the table. (line 6) 20091* references: References. (line 6) 20092* references, named: References. (line 114) 20093* references, remote: References. (line 135) 20094* references, to a different table: References. (line 135) 20095* references, to fields: References. (line 15) 20096* references, to ranges: References. (line 64) 20097* refiling notes: Refiling and Archiving. 20098 (line 6) 20099* refiling notes <1>: Refile and Copy. (line 6) 20100* refresh set-up: In-buffer Settings. (line 11) 20101* region, active: Structure Editing. (line 46) 20102* regular expressions, with tags search: Matching tags and properties. 20103 (line 53) 20104* relative timer: Timers. (line 6) 20105* reminders: Weekly/daily agenda. (line 125) 20106* remote editing, bulk, from agenda: Agenda Commands. (line 352) 20107* remote editing, from agenda: Agenda Commands. (line 223) 20108* remote editing, undo: Agenda Commands. (line 227) 20109* remote references: References. (line 135) 20110* repeated tasks: Repeated tasks. (line 6) 20111* report, of clocked time: The clock table. (line 6) 20112* reporting a bug: Feedback. (line 6) 20113* resolve idle time: Resolving idle time. (line 9) 20114* results, header argument: Results of Evaluation. 20115 (line 6) 20116* RESULTS, keyword: Evaluating Code Blocks. 20117 (line 6) 20118* results, macro: Macro Replacement. (line 84) 20119* revealing context: Global and local cycling. 20120 (line 43) 20121* rewritten URL in open-source protocol: The open-source protocol. 20122 (line 32) 20123* Rmail links: External Links. (line 6) 20124* row separator, in tables: Built-in Table Editor. 20125 (line 6) 20126* row, of field coordinates: References. (line 90) 20127* rownames, header argument: Environment of a Code Block. 20128 (line 73) 20129* RSS feeds: Capture and Attachments. 20130 (line 6) 20131* RSS feeds <1>: RSS Feeds. (line 6) 20132* rsync: Uploading Files. (line 6) 20133* SCHEDULED marker: Deadlines and Scheduling. 20134 (line 31) 20135* SCHEDULED, special property: Special Properties. (line 13) 20136* scheduling: Timestamps. (line 6) 20137* scripts, for agenda processing: Extracting Agenda Information. 20138 (line 6) 20139* search option in file links: Search Options. (line 6) 20140* search strings, custom: Custom Searches. (line 6) 20141* search view: Search view. (line 6) 20142* searching for tags: Tag Searches. (line 6) 20143* searching, for text: Search view. (line 6) 20144* searching, of properties: Property Searches. (line 6) 20145* sectioning structure, for LaTeX export: LaTeX header and sectioning. 20146 (line 6) 20147* SELECT_TAGS, keyword: Export Settings. (line 44) 20148* sep, header argument: Results of Evaluation. 20149 (line 145) 20150* sep, Texinfo attribute: Plain lists in Texinfo export. 20151 (line 17) 20152* SEQ_TODO, keyword: Per-file keywords. (line 6) 20153* SEQ_TODO, keyword <1>: In-buffer Settings. (line 186) 20154* session, header argument: Environment of a Code Block. 20155 (line 272) 20156* setting tags: Setting Tags. (line 6) 20157* SETUPFILE, keyword: Export Settings. (line 13) 20158* SETUPFILE, keyword <1>: In-buffer Settings. (line 53) 20159* sexp timestamps: Timestamps. (line 34) 20160* shebang, header argument: Extracting Source Code. 20161 (line 83) 20162* shell links: External Links. (line 6) 20163* shift-selection: Conflicts. (line 6) 20164* shift-selection-mode: Plain Lists. (line 95) 20165* show all, command: Global and local cycling. 20166 (line 40) 20167* show all, global visibility state: Global and local cycling. 20168 (line 20) 20169* show branches, command: Global and local cycling. 20170 (line 52) 20171* show children, command: Global and local cycling. 20172 (line 55) 20173* show hidden text: Visibility Cycling. (line 6) 20174* shy hyphen, special symbol: Special Symbols. (line 36) 20175* sitemap, of published pages: Site map. (line 6) 20176* smartphone: Org Mobile. (line 6) 20177* sorting, of agenda items: Sorting of agenda items. 20178 (line 6) 20179* sorting, of plain list: Plain Lists. (line 159) 20180* sorting, of subtrees: Structure Editing. (line 6) 20181* source block: Literal Examples. (line 38) 20182* source blocks, in LaTeX export: Source blocks in LaTeX export. 20183 (line 6) 20184* source code, batch execution: Batch Execution. (line 6) 20185* source code, block structure: Structure of Code Blocks. 20186 (line 6) 20187* source code, editing: Editing Source Code. (line 6) 20188* source code, evaluating: Evaluating Code Blocks. 20189 (line 6) 20190* source code, exporting: Exporting Code Blocks. 20191 (line 6) 20192* source code, extracting: Extracting Source Code. 20193 (line 6) 20194* source code, inline: Structure of Code Blocks. 20195 (line 24) 20196* source code, languages: Languages. (line 6) 20197* source code, library: Library of Babel. (line 6) 20198* source code, noweb reference: Noweb Reference Syntax. 20199 (line 6) 20200* source code, results of evaluation: Results of Evaluation. 20201 (line 6) 20202* source code, working with: Working with Source Code. 20203 (line 6) 20204* sparse tree, for deadlines: Inserting deadline/schedule. 20205 (line 26) 20206* sparse tree, for TODO: TODO Basics. (line 35) 20207* sparse tree, tag based: Tags. (line 6) 20208* sparse trees: Sparse Trees. (line 6) 20209* special blocks, in ASCII export: ASCII/Latin-1/UTF-8 export. 20210 (line 84) 20211* special blocks, in LaTeX export: Special blocks in LaTeX export. 20212 (line 6) 20213* special keywords: In-buffer Settings. (line 6) 20214* special symbols: Special Symbols. (line 6) 20215* special symbols, in-buffer display: Special Symbols. (line 27) 20216* speed keys: Speed Keys. (line 6) 20217* speedbar.el: Cooperation. (line 41) 20218* spreadsheet capabilities: The Spreadsheet. (line 6) 20219* square brackets, around links: External Links. (line 136) 20220* startup visibility: Global and local cycling. 20221 (line 36) 20222* STARTUP, keyword: Initial visibility. (line 11) 20223* STARTUP, keyword <1>: Blocks. (line 14) 20224* STARTUP, keyword <2>: In-buffer Settings. (line 65) 20225* statistics, for checkboxes: Checkboxes. (line 29) 20226* statistics, for TODO items: Breaking Down Tasks. (line 6) 20227* store-link protocol: The store-link protocol. 20228 (line 6) 20229* storing link, in a source code buffer: Literal Examples. (line 111) 20230* storing links: Handling Links. (line 9) 20231* strike-through text, markup rules: Emphasis and Monospace. 20232 (line 6) 20233* structure editing: Structure Editing. (line 6) 20234* structure of document: Document Structure. (line 6) 20235* STYLE, property: Tracking your habits. 20236 (line 6) 20237* styles, custom: Applying custom styles. 20238 (line 6) 20239* styles, custom <1>: Advanced topics in ODT export. 20240 (line 34) 20241* SUBAUTHOR, keyword: Texinfo specific export settings. 20242 (line 14) 20243* SUBAUTHOR, keyword <1>: Texinfo title and copyright page. 20244 (line 12) 20245* sublevels, inclusion into tags match: Tag Inheritance. (line 6) 20246* sublevels, inclusion into TODO list: Global TODO list. (line 38) 20247* subscript: Subscripts and Superscripts. 20248 (line 6) 20249* SUBTITLE, keyword: ASCII/Latin-1/UTF-8 export. 20250 (line 46) 20251* SUBTITLE, keyword <1>: Beamer specific export settings. 20252 (line 44) 20253* SUBTITLE, keyword <2>: HTML specific export settings. 20254 (line 53) 20255* SUBTITLE, keyword <3>: LaTeX specific export settings. 20256 (line 63) 20257* SUBTITLE, keyword <4>: ODT specific export settings. 20258 (line 26) 20259* SUBTITLE, keyword <5>: Texinfo specific export settings. 20260 (line 11) 20261* subtree cycling: Global and local cycling. 20262 (line 6) 20263* subtree visibility states: Global and local cycling. 20264 (line 6) 20265* subtree, cut and paste: Structure Editing. (line 6) 20266* subtree, subtree visibility state: Global and local cycling. 20267 (line 6) 20268* subtrees, cut and paste: Structure Editing. (line 6) 20269* summary: Summary. (line 6) 20270* SUMMARY, property: iCalendar Export. (line 51) 20271* superscript: Subscripts and Superscripts. 20272 (line 6) 20273* switches, in code blocks: Structure of Code Blocks. 20274 (line 52) 20275* syntax checker: Org Syntax. (line 24) 20276* syntax, noweb: Noweb Reference Syntax. 20277 (line 6) 20278* syntax, of formulas: Formula syntax for Calc. 20279 (line 6) 20280* table editor, built-in: Built-in Table Editor. 20281 (line 6) 20282* table editor, table.el: Cooperation. (line 49) 20283* table indirection: References. (line 148) 20284* table lookup functions: Lookup functions. (line 6) 20285* table of contents: Table of Contents. (line 6) 20286* table of contents, exclude entries: Table of Contents. (line 15) 20287* table syntax: Built-in Table Editor. 20288 (line 6) 20289* table-type, Texinfo attribute: Plain lists in Texinfo export. 20290 (line 6) 20291* table.el: Cooperation. (line 49) 20292* tables: Tables. (line 6) 20293* tables, in HTML: Tables in HTML export. 20294 (line 6) 20295* tables, in LaTeX export: Tables in LaTeX export. 20296 (line 6) 20297* tables, in ODT export: Tables in ODT export. 20298 (line 6) 20299* tables, in ODT export <1>: Advanced topics in ODT export. 20300 (line 151) 20301* tables, in other modes: Tables in Arbitrary Syntax. 20302 (line 6) 20303* tag completion: Completion. (line 6) 20304* tag filtering, in agenda: Filtering/limiting agenda items. 20305 (line 20) 20306* tag inheritance: Tag Inheritance. (line 6) 20307* tag searches: Tag Searches. (line 6) 20308* tags: Tags. (line 6) 20309* tags hierarchy: Tag Hierarchy. (line 6) 20310* tags view: Matching tags and properties. 20311 (line 6) 20312* tags, as an agenda view: Storing searches. (line 11) 20313* tags, groups: Tag Hierarchy. (line 6) 20314* TAGS, keyword: Setting Tags. (line 22) 20315* TAGS, keyword <1>: In-buffer Settings. (line 179) 20316* tags, setting: Setting Tags. (line 6) 20317* TAGS, special property: Special Properties. (line 13) 20318* tags-todo: Storing searches. (line 11) 20319* tags-tree: Storing searches. (line 11) 20320* tangle, header argument: Extracting Source Code. 20321 (line 23) 20322* tangle-mode, header argument: Extracting Source Code. 20323 (line 89) 20324* tangling: Extracting Source Code. 20325 (line 6) 20326* targets, for links: Internal Links. (line 17) 20327* targets, radio: Radio Targets. (line 6) 20328* tasks, breaking down: Breaking Down Tasks. (line 6) 20329* tasks, repeated: Repeated tasks. (line 6) 20330* TBLFM keywords, multiple: Editing and debugging formulas. 20331 (line 98) 20332* TBLFM, keyword: Field and range formulas. 20333 (line 12) 20334* TBLFM, switching: Editing and debugging formulas. 20335 (line 98) 20336* template expansion: Structure Templates. (line 21) 20337* template insertion: Structure Templates. (line 6) 20338* template, custom: Applying custom styles. 20339 (line 6) 20340* template, custom <1>: Advanced topics in ODT export. 20341 (line 34) 20342* templates, for Capture: Capture templates. (line 6) 20343* Tempo: Structure Templates. (line 21) 20344* TeX interpretation: Embedded LaTeX. (line 6) 20345* TeX symbol completion: Completion. (line 6) 20346* TEXINFO, keyword: Quoting Texinfo code. 20347 (line 9) 20348* TEXINFO_CLASS, keyword: Texinfo specific export settings. 20349 (line 20) 20350* TEXINFO_CLASS, keyword <1>: Texinfo file header. (line 19) 20351* TEXINFO_CLASS, keyword <2>: Headings and sectioning structure. 20352 (line 6) 20353* TEXINFO_DIR_CATEGORY, keyword: Texinfo specific export settings. 20354 (line 30) 20355* TEXINFO_DIR_CATEGORY, keyword <1>: Info directory file. (line 6) 20356* TEXINFO_DIR_DESC, keyword: Texinfo specific export settings. 20357 (line 36) 20358* TEXINFO_DIR_DESC, keyword <1>: Info directory file. (line 6) 20359* TEXINFO_DIR_TITLE, keyword: Texinfo specific export settings. 20360 (line 33) 20361* TEXINFO_DIR_TITLE, keyword <1>: Info directory file. (line 6) 20362* TEXINFO_FILENAME, keyword: Texinfo specific export settings. 20363 (line 17) 20364* TEXINFO_FILENAME, keyword <1>: Texinfo file header. (line 6) 20365* TEXINFO_HEADER, keyword: Texinfo specific export settings. 20366 (line 24) 20367* TEXINFO_HEADER, keyword <1>: Texinfo file header. (line 11) 20368* TEXINFO_POST_HEADER, keyword: Texinfo specific export settings. 20369 (line 27) 20370* TEXINFO_PRINTED_TITLE, keyword: Texinfo specific export settings. 20371 (line 39) 20372* TEXINFO_PRINTED_TITLE, keyword <1>: Texinfo title and copyright page. 20373 (line 6) 20374* text areas, in HTML: Text areas in HTML export. 20375 (line 6) 20376* text search: Search view. (line 6) 20377* time clocking: Clocking Work Time. (line 6) 20378* time format, custom: Custom time format. (line 6) 20379* time grid: Time-of-day specifications. 20380 (line 31) 20381* time, computing: Durations and time values. 20382 (line 6) 20383* time, macro: Macro Replacement. (line 56) 20384* time, reading in minibuffer: The date/time prompt. 20385 (line 6) 20386* time-of-day specification: Time-of-day specifications. 20387 (line 6) 20388* timerange: Timestamps. (line 42) 20389* times: Dates and Times. (line 6) 20390* timestamp: Dates and Times. (line 6) 20391* timestamp <1>: Timestamps. (line 14) 20392* timestamp, inactive: Timestamps. (line 50) 20393* TIMESTAMP, special property: Special Properties. (line 13) 20394* timestamp, with repeater interval: Timestamps. (line 25) 20395* timestamps: Timestamps. (line 6) 20396* TIMESTAMP_IA, special property: Special Properties. (line 13) 20397* TIMEZONE, property: iCalendar Export. (line 51) 20398* TINDEX, keyword: Indices. (line 6) 20399* TITLE, keyword: Export Settings. (line 60) 20400* title, macro: Macro Replacement. (line 41) 20401* toc, in OPTIONS keyword: Table of Contents. (line 6) 20402* TOC, keyword: Table of Contents. (line 24) 20403* TODO dependencies: TODO dependencies. (line 6) 20404* TODO dependencies, NOBLOCKING: TODO dependencies. (line 29) 20405* TODO items: TODO Items. (line 6) 20406* TODO keyword matching: Global TODO list. (line 18) 20407* TODO keyword matching, with tags search: Matching tags and properties. 20408 (line 64) 20409* TODO keyword sets: Multiple sets in one file. 20410 (line 6) 20411* TODO keywords completion: Completion. (line 6) 20412* TODO list, global: Global TODO list. (line 6) 20413* TODO types: TODO types. (line 6) 20414* TODO workflow: Workflow states. (line 6) 20415* todo, as an agenda view: Storing searches. (line 11) 20416* TODO, keyword: Per-file keywords. (line 6) 20417* TODO, keyword <1>: In-buffer Settings. (line 186) 20418* TODO, special property: Special Properties. (line 13) 20419* todo-tree: Storing searches. (line 11) 20420* top headline filtering, in agenda: Filtering/limiting agenda items. 20421 (line 20) 20422* Top node, in Texinfo export: Headings and sectioning structure. 20423 (line 37) 20424* transient mark mode: Structure Editing. (line 46) 20425* translator function: Translator functions. 20426 (line 6) 20427* trees, sparse: Sparse Trees. (line 6) 20428* trees, visibility: Visibility Cycling. (line 6) 20429* tty key bindings: TTY Keys. (line 6) 20430* two-column tables, in Texinfo export: Plain lists in Texinfo export. 20431 (line 6) 20432* types as TODO keywords: TODO types. (line 6) 20433* TYP_TODO, keyword: Per-file keywords. (line 6) 20434* TYP_TODO, keyword <1>: In-buffer Settings. (line 186) 20435* underlined text, markup rules: Emphasis and Monospace. 20436 (line 6) 20437* undoing remote-editing events: Agenda Commands. (line 227) 20438* unison: Uploading Files. (line 6) 20439* UNNUMBERED, property: Export Settings. (line 149) 20440* unoconv: Extending ODT export. 20441 (line 12) 20442* updating, table: Updating the table. (line 6) 20443* URL links: External Links. (line 6) 20444* Usenet links: External Links. (line 6) 20445* using sessions in code blocks: Environment of a Code Block. 20446 (line 272) 20447* UTF-8 export: ASCII/Latin-1/UTF-8 export. 20448 (line 6) 20449* var, header argument: Environment of a Code Block. 20450 (line 9) 20451* variable index, in Texinfo export: Indices. (line 6) 20452* vectors, in table calculations: Formula syntax for Calc. 20453 (line 14) 20454* verbatim blocks, in LaTeX export: Example blocks in LaTeX export. 20455 (line 6) 20456* verbatim text, markup rules: Emphasis and Monospace. 20457 (line 6) 20458* verse blocks: Paragraphs. (line 13) 20459* view file commands in agenda: Agenda Commands. (line 28) 20460* VINDEX, keyword: Indices. (line 6) 20461* viper.el: Conflicts. (line 51) 20462* visibility cycling: Visibility Cycling. (line 6) 20463* visibility cycling, drawers: Drawers. (line 6) 20464* VISIBILITY, property: Initial visibility. (line 16) 20465* visible text, printing: Sparse Trees. (line 52) 20466* VM links: External Links. (line 109) 20467* Wanderlust links: External Links. (line 109) 20468* weekly agenda: Weekly/daily agenda. (line 6) 20469* windmove.el: Conflicts. (line 60) 20470* workflow states as TODO keywords: Workflow states. (line 6) 20471* working directory, in a code block: Environment of a Code Block. 20472 (line 302) 20473* wrap, header argument: Results of Evaluation. 20474 (line 206) 20475* xelatex: LaTeX/PDF export commands. 20476 (line 25) 20477* yasnippet.el: Conflicts. (line 74) 20478* zero width space: Escape Character. (line 6) 20479* zip: Pre-requisites for ODT export. 20480 (line 6) 20481 20482 20483File: org.info, Node: Key Index, Next: Command and Function Index, Prev: Main Index, Up: Top 20484 20485E Key Index 20486*********** 20487 20488[index] 20489* Menu: 20490 20491* !: Setting Tags. (line 126) 20492* ! (Agenda dispatcher): Stuck projects. (line 17) 20493* # (Agenda dispatcher): Stuck projects. (line 14) 20494* $: Agenda Commands. (line 265) 20495* %: Agenda Commands. (line 379) 20496* ': CDLaTeX mode. (line 57) 20497* *: Agenda Commands. (line 359) 20498* * (Agenda dispatcher): Agenda Dispatcher. (line 55) 20499* +: Agenda Commands. (line 284) 20500* ,: Agenda Commands. (line 279) 20501* -: Agenda Commands. (line 289) 20502* .: The date/time prompt. 20503 (line 81) 20504* . <1>: Agenda Commands. (line 118) 20505* / (Agenda dispatcher): Agenda Dispatcher. (line 30) 20506* 1..9,0: Using column view. (line 35) 20507* :: Agenda Commands. (line 275) 20508* <: Using column view. (line 67) 20509* < <1>: The date/time prompt. 20510 (line 81) 20511* < (Agenda dispatcher): Agenda Dispatcher. (line 43) 20512* < < (Agenda dispatcher): Agenda Dispatcher. (line 49) 20513* >: Using column view. (line 67) 20514* > <1>: The date/time prompt. 20515 (line 81) 20516* > <2>: Agenda Commands. (line 328) 20517* ? (Agenda dispatcher): Pulling from the mobile application. 20518 (line 39) 20519* [: Agenda Commands. (line 142) 20520* ^: CDLaTeX mode. (line 43) 20521* _: CDLaTeX mode. (line 43) 20522* `: CDLaTeX mode. (line 51) 20523* a: Using column view. (line 57) 20524* A: Agenda Commands. (line 64) 20525* a <1>: Agenda Commands. (line 252) 20526* a (Agenda dispatcher): Weekly/daily agenda. (line 10) 20527* b: Agenda Commands. (line 115) 20528* B: Agenda Commands. (line 383) 20529* C: Resolving idle time. (line 46) 20530* c: Agenda Commands. (line 447) 20531* c <1>: Agenda Commands. (line 450) 20532* C <1>: Agenda Commands. (line 481) 20533* C (Agenda dispatcher): Storing searches. (line 11) 20534* C (Capture menu: Capture templates. (line 11) 20535* C-#: Advanced features. (line 11) 20536* C-': Agenda Files. (line 26) 20537* C-,: Agenda Files. (line 26) 20538* C-.: The date/time prompt. 20539 (line 81) 20540* C-0 C-c C-w: Refile and Copy. (line 46) 20541* C-2 C-c C-w: Refile and Copy. (line 38) 20542* C-3 C-c C-w: Refile and Copy. (line 41) 20543* C-c !: Creating Timestamps. (line 25) 20544* C-c #: Checkboxes. (line 98) 20545* C-c $: Moving subtrees. (line 10) 20546* C-c %: Handling Links. (line 139) 20547* C-c &: Handling Links. (line 144) 20548* C-c ': Editing and debugging formulas. 20549 (line 37) 20550* C-c ' <1>: Literal Examples. (line 102) 20551* C-c ' <2>: Include Files. (line 63) 20552* C-c ' <3>: Editing Source Code. (line 6) 20553* C-c ' <4>: Cooperation. (line 59) 20554* C-c *: Structure Editing. (line 129) 20555* C-c * <1>: Plain Lists. (line 143) 20556* C-c * <2>: Updating the table. (line 14) 20557* C-c +: Built-in Table Editor. 20558 (line 181) 20559* C-c ,: Priorities. (line 33) 20560* C-c -: Plain Lists. (line 131) 20561* C-c - <1>: Built-in Table Editor. 20562 (line 126) 20563* C-c .: Creating Timestamps. (line 11) 20564* C-c /: Sparse Trees. (line 16) 20565* C-c / <1>: Conflicts. (line 51) 20566* C-c / /: Sparse Trees. (line 20) 20567* C-c / a: Inserting deadline/schedule. 20568 (line 36) 20569* C-c / b: Inserting deadline/schedule. 20570 (line 33) 20571* C-c / d: Inserting deadline/schedule. 20572 (line 26) 20573* C-c / m: Tag Searches. (line 10) 20574* C-c / m <1>: Property Searches. (line 11) 20575* C-c / p: Property Searches. (line 29) 20576* C-c / r: Sparse Trees. (line 20) 20577* C-c / t: TODO Basics. (line 35) 20578* C-c ;: Comment Lines. (line 20) 20579* C-c <: Creating Timestamps. (line 32) 20580* C-c =: Column formulas. (line 33) 20581* C-c = <1>: Editing and debugging formulas. 20582 (line 14) 20583* C-c >: Creating Timestamps. (line 35) 20584* C-c ?: Editing and debugging formulas. 20585 (line 25) 20586* C-c @: Structure Editing. (line 66) 20587* C-c C-*: Plain Lists. (line 148) 20588* C-c C-,: Structure Templates. (line 11) 20589* C-c C-a: Attachment defaults and dispatcher. 20590 (line 20) 20591* C-c C-a <1>: Agenda Commands. (line 300) 20592* C-c C-a a: Attachment defaults and dispatcher. 20593 (line 25) 20594* C-c C-a b: Attachment defaults and dispatcher. 20595 (line 35) 20596* C-c C-a c: Attachment defaults and dispatcher. 20597 (line 31) 20598* C-c C-a d: Attachment defaults and dispatcher. 20599 (line 61) 20600* C-c C-a D: Attachment defaults and dispatcher. 20601 (line 64) 20602* C-c C-a f: Attachment defaults and dispatcher. 20603 (line 55) 20604* C-c C-a F: Attachment defaults and dispatcher. 20605 (line 58) 20606* C-c C-a l: Attachment defaults and dispatcher. 20607 (line 31) 20608* C-c C-a m: Attachment defaults and dispatcher. 20609 (line 31) 20610* C-c C-a n: Attachment defaults and dispatcher. 20611 (line 39) 20612* C-c C-a o: Attachment defaults and dispatcher. 20613 (line 46) 20614* C-c C-a O: Attachment defaults and dispatcher. 20615 (line 52) 20616* C-c C-a s: Attachment defaults and dispatcher. 20617 (line 68) 20618* C-c C-a S: Attachment defaults and dispatcher. 20619 (line 73) 20620* C-c C-a z: Attachment defaults and dispatcher. 20621 (line 42) 20622* C-c C-b: Motion. (line 18) 20623* C-c C-b <1>: Editing support. (line 12) 20624* C-c C-c: Plain Lists. (line 126) 20625* C-c C-c <1>: Built-in Table Editor. 20626 (line 60) 20627* C-c C-c <2>: Column Width and Alignment. 20628 (line 17) 20629* C-c C-c <3>: Editing and debugging formulas. 20630 (line 45) 20631* C-c C-c <4>: Editing and debugging formulas. 20632 (line 91) 20633* C-c C-c <5>: Editing and debugging formulas. 20634 (line 98) 20635* C-c C-c <6>: Checkboxes. (line 52) 20636* C-c C-c <7>: Setting Tags. (line 20) 20637* C-c C-c <8>: Setting Tags. (line 130) 20638* C-c C-c <9>: Property Syntax. (line 100) 20639* C-c C-c <10>: Using column view. (line 26) 20640* C-c C-c <11>: Using column view. (line 49) 20641* C-c C-c <12>: Capturing column view. 20642 (line 80) 20643* C-c C-c <13>: Creating Timestamps. (line 29) 20644* C-c C-c <14>: Clocking commands. (line 53) 20645* C-c C-c <15>: The clock table. (line 20) 20646* C-c C-c <16>: Creating Footnotes. (line 65) 20647* C-c C-c <17>: Evaluating Code Blocks. 20648 (line 22) 20649* C-c C-c <18>: Key bindings and Useful Functions. 20650 (line 11) 20651* C-c C-c <19>: The Very Busy C-c C-c Key. 20652 (line 6) 20653* C-c C-c (Capture buffer): Using capture. (line 15) 20654* C-c C-c c: Property Syntax. (line 117) 20655* C-c C-c d: Property Syntax. (line 111) 20656* C-c C-c D: Property Syntax. (line 114) 20657* C-c C-c m m: Markdown Export. (line 17) 20658* C-c C-c m M: Markdown Export. (line 21) 20659* C-c C-c s: Property Syntax. (line 103) 20660* C-c C-d: Inserting deadline/schedule. 20661 (line 10) 20662* C-c C-d <1>: Agenda Commands. (line 307) 20663* C-c C-e: The Export Dispatcher. 20664 (line 16) 20665* C-c C-e c a: iCalendar Export. (line 43) 20666* C-c C-e c c: iCalendar Export. (line 47) 20667* C-c C-e c f: iCalendar Export. (line 39) 20668* C-c C-e C-a: The Export Dispatcher. 20669 (line 28) 20670* C-c C-e C-b: The Export Dispatcher. 20671 (line 46) 20672* C-c C-e C-s: The Export Dispatcher. 20673 (line 52) 20674* C-c C-e C-v: Sparse Trees. (line 52) 20675* C-c C-e C-v <1>: The Export Dispatcher. 20676 (line 64) 20677* C-c C-e h h: HTML export commands. 20678 (line 7) 20679* C-c C-e h H: HTML export commands. 20680 (line 14) 20681* C-c C-e h o: HTML export commands. 20682 (line 7) 20683* C-c C-e i i: Texinfo export commands. 20684 (line 11) 20685* C-c C-e i t: Texinfo export commands. 20686 (line 7) 20687* C-c C-e l b: Beamer export commands. 20688 (line 7) 20689* C-c C-e l B: Beamer export commands. 20690 (line 12) 20691* C-c C-e l l: LaTeX/PDF export commands. 20692 (line 7) 20693* C-c C-e l L: LaTeX/PDF export commands. 20694 (line 11) 20695* C-c C-e l O: Beamer export commands. 20696 (line 20) 20697* C-c C-e l o: LaTeX/PDF export commands. 20698 (line 17) 20699* C-c C-e l P: Beamer export commands. 20700 (line 16) 20701* C-c C-e l p: LaTeX/PDF export commands. 20702 (line 14) 20703* C-c C-e m o: Markdown Export. (line 24) 20704* C-c C-e o o: ODT export commands. (line 7) 20705* C-c C-e o O: ODT export commands. (line 23) 20706* C-c C-e O o: Org Export. (line 15) 20707* C-c C-e O v: Org Export. (line 19) 20708* C-c C-e P a: Triggering Publication. 20709 (line 19) 20710* C-c C-e P f: Triggering Publication. 20711 (line 16) 20712* C-c C-e P p: Triggering Publication. 20713 (line 13) 20714* C-c C-e P x: Triggering Publication. 20715 (line 9) 20716* C-c C-e t a: ASCII/Latin-1/UTF-8 export. 20717 (line 26) 20718* C-c C-e t A: ASCII/Latin-1/UTF-8 export. 20719 (line 35) 20720* C-c C-e t l: ASCII/Latin-1/UTF-8 export. 20721 (line 26) 20722* C-c C-e t L: ASCII/Latin-1/UTF-8 export. 20723 (line 35) 20724* C-c C-e t u: ASCII/Latin-1/UTF-8 export. 20725 (line 26) 20726* C-c C-e t U: ASCII/Latin-1/UTF-8 export. 20727 (line 35) 20728* C-c C-f: Motion. (line 15) 20729* C-c C-j: Motion. (line 24) 20730* C-c C-k: Global and local cycling. 20731 (line 52) 20732* C-c C-k (Capture buffer): Using capture. (line 31) 20733* C-c C-l: Handling Links. (line 69) 20734* C-c C-n: Motion. (line 9) 20735* C-c C-o: Handling Links. (line 106) 20736* C-c C-o <1>: Creating Timestamps. (line 40) 20737* C-c C-o <2>: Agenda Commands. (line 56) 20738* C-c C-o <3>: Creating Footnotes. (line 71) 20739* C-c C-o <4>: Key bindings and Useful Functions. 20740 (line 11) 20741* C-c C-p: Motion. (line 12) 20742* C-c C-q: Editing and debugging formulas. 20743 (line 49) 20744* C-c C-q <1>: Setting Tags. (line 11) 20745* C-c C-r: Global and local cycling. 20746 (line 43) 20747* C-c C-r <1>: Editing and debugging formulas. 20748 (line 52) 20749* C-c C-s: Inserting deadline/schedule. 20750 (line 18) 20751* C-c C-s <1>: Agenda Commands. (line 303) 20752* C-c C-t: TODO Basics. (line 14) 20753* C-c C-t <1>: Clocking commands. (line 71) 20754* C-c C-u: Motion. (line 21) 20755* C-c C-v a: Key bindings and Useful Functions. 20756 (line 20) 20757* C-c C-v b: Key bindings and Useful Functions. 20758 (line 20) 20759* C-c C-v c: Key bindings and Useful Functions. 20760 (line 20) 20761* C-c C-v C-a: Key bindings and Useful Functions. 20762 (line 20) 20763* C-c C-v C-b: Key bindings and Useful Functions. 20764 (line 20) 20765* C-c C-v C-c: Key bindings and Useful Functions. 20766 (line 20) 20767* C-c C-v C-d: Key bindings and Useful Functions. 20768 (line 20) 20769* C-c C-v C-e: Key bindings and Useful Functions. 20770 (line 20) 20771* C-c C-v C-f: Key bindings and Useful Functions. 20772 (line 20) 20773* C-c C-v C-g: Key bindings and Useful Functions. 20774 (line 20) 20775* C-c C-v C-h: Key bindings and Useful Functions. 20776 (line 20) 20777* C-c C-v C-i: Key bindings and Useful Functions. 20778 (line 20) 20779* C-c C-v C-I: Key bindings and Useful Functions. 20780 (line 20) 20781* C-c C-v C-j: Key bindings and Useful Functions. 20782 (line 20) 20783* C-c C-v C-l: Key bindings and Useful Functions. 20784 (line 20) 20785* C-c C-v C-n: Key bindings and Useful Functions. 20786 (line 20) 20787* C-c C-v C-o: Key bindings and Useful Functions. 20788 (line 20) 20789* C-c C-v C-p: Key bindings and Useful Functions. 20790 (line 20) 20791* C-c C-v C-r: Key bindings and Useful Functions. 20792 (line 20) 20793* C-c C-v C-s: Key bindings and Useful Functions. 20794 (line 20) 20795* C-c C-v C-t: Key bindings and Useful Functions. 20796 (line 20) 20797* C-c C-v C-u: Key bindings and Useful Functions. 20798 (line 20) 20799* C-c C-v C-v: Noweb Reference Syntax. 20800 (line 202) 20801* C-c C-v C-v <1>: Key bindings and Useful Functions. 20802 (line 20) 20803* C-c C-v C-x: Key bindings and Useful Functions. 20804 (line 20) 20805* C-c C-v C-z: Key bindings and Useful Functions. 20806 (line 20) 20807* C-c C-v d: Key bindings and Useful Functions. 20808 (line 20) 20809* C-c C-v e: Evaluating Code Blocks. 20810 (line 22) 20811* C-c C-v e <1>: Key bindings and Useful Functions. 20812 (line 20) 20813* C-c C-v f: Extracting Source Code. 20814 (line 116) 20815* C-c C-v f <1>: Key bindings and Useful Functions. 20816 (line 20) 20817* C-c C-v g: Key bindings and Useful Functions. 20818 (line 20) 20819* C-c C-v h: Key bindings and Useful Functions. 20820 (line 20) 20821* C-c C-v i: Library of Babel. (line 12) 20822* C-c C-v i <1>: Key bindings and Useful Functions. 20823 (line 20) 20824* C-c C-v I: Key bindings and Useful Functions. 20825 (line 20) 20826* C-c C-v j: Key bindings and Useful Functions. 20827 (line 20) 20828* C-c C-v l: Key bindings and Useful Functions. 20829 (line 20) 20830* C-c C-v n: Key bindings and Useful Functions. 20831 (line 20) 20832* C-c C-v o: Key bindings and Useful Functions. 20833 (line 20) 20834* C-c C-v p: Key bindings and Useful Functions. 20835 (line 20) 20836* C-c C-v r: Key bindings and Useful Functions. 20837 (line 20) 20838* C-c C-v s: Key bindings and Useful Functions. 20839 (line 20) 20840* C-c C-v t: Extracting Source Code. 20841 (line 111) 20842* C-c C-v t <1>: Key bindings and Useful Functions. 20843 (line 20) 20844* C-c C-v u: Key bindings and Useful Functions. 20845 (line 20) 20846* C-c C-v v: Noweb Reference Syntax. 20847 (line 202) 20848* C-c C-v v <1>: Key bindings and Useful Functions. 20849 (line 20) 20850* C-c C-v x: Key bindings and Useful Functions. 20851 (line 20) 20852* C-c C-v z: Key bindings and Useful Functions. 20853 (line 20) 20854* C-c C-w: Structure Editing. (line 104) 20855* C-c C-w <1>: Refile and Copy. (line 13) 20856* C-c C-w <2>: Agenda Commands. (line 249) 20857* C-c C-w (Capture buffer): Using capture. (line 22) 20858* C-c C-x ,: Timers. (line 44) 20859* C-c C-x -: Timers. (line 36) 20860* C-c C-x .: Timers. (line 32) 20861* C-c C-x 0: Timers. (line 13) 20862* C-c C-x ;: Timers. (line 23) 20863* C-c C-x <: Agenda Files. (line 43) 20864* C-c C-x >: Agenda Files. (line 52) 20865* C-c C-x > <1>: Agenda Commands. (line 206) 20866* C-c C-x a: Internal archiving. (line 39) 20867* C-c C-x A: Internal archiving. (line 54) 20868* C-c C-x a <1>: Agenda Commands. (line 257) 20869* C-c C-x A <1>: Agenda Commands. (line 261) 20870* C-c C-x b: Global and local cycling. 20871 (line 59) 20872* C-c C-x b <1>: Agenda Commands. (line 49) 20873* C-c C-x c: Structure Editing. (line 96) 20874* C-c C-x C-a: Archiving. (line 12) 20875* C-c C-x C-a <1>: Agenda Commands. (line 252) 20876* C-c C-x C-b: Checkboxes. (line 58) 20877* C-c C-x C-c: Using column view. (line 10) 20878* C-c C-x C-c <1>: Agenda Commands. (line 197) 20879* C-c C-x C-c <2>: Agenda Column View. (line 12) 20880* C-c C-x C-d: Clocking commands. (line 84) 20881* C-c C-x C-e: Clocking commands. (line 50) 20882* C-c C-x C-e <1>: Effort Estimates. (line 24) 20883* C-c C-x C-i: Clocking commands. (line 7) 20884* C-c C-x C-j: Clocking commands. (line 79) 20885* C-c C-x C-l: Previewing LaTeX fragments. 20886 (line 18) 20887* C-c C-x C-n: Handling Links. (line 151) 20888* C-c C-x C-o: Clocking commands. (line 36) 20889* C-c C-x C-p: Handling Links. (line 151) 20890* C-c C-x C-q: Clocking commands. (line 75) 20891* C-c C-x C-r: Checkboxes. (line 75) 20892* C-c C-x C-s: Moving subtrees. (line 10) 20893* C-c C-x C-s <1>: Agenda Commands. (line 265) 20894* C-c C-x C-t: Custom time format. (line 13) 20895* C-c C-x C-u: Capturing column view. 20896 (line 80) 20897* C-c C-x C-u <1>: The clock table. (line 20) 20898* C-c C-x C-u <2>: Dynamic Blocks. (line 25) 20899* C-c C-x C-v: Images. (line 24) 20900* C-c C-x C-w: Structure Editing. (line 70) 20901* C-c C-x C-w <1>: Built-in Table Editor. 20902 (line 157) 20903* C-c C-x C-x: Clocking commands. (line 44) 20904* C-c C-x C-y: Structure Editing. (line 78) 20905* C-c C-x C-y <1>: Built-in Table Editor. 20906 (line 161) 20907* C-c C-x d: Drawers. (line 18) 20908* C-c C-x e: Effort Estimates. (line 19) 20909* C-c C-x e <1>: Agenda Commands. (line 292) 20910* C-c C-x f: Creating Footnotes. (line 42) 20911* C-c C-x g: RSS Feeds. (line 23) 20912* C-c C-x G: RSS Feeds. (line 27) 20913* C-c C-x I: Documentation Access. 20914 (line 6) 20915* C-c C-x M-w: Structure Editing. (line 74) 20916* C-c C-x M-w <1>: Built-in Table Editor. 20917 (line 151) 20918* C-c C-x o: TODO dependencies. (line 38) 20919* C-c C-x o <1>: Checkboxes. (line 90) 20920* C-c C-x p: Property Syntax. (line 90) 20921* C-c C-x p <1>: Using Header Arguments. 20922 (line 70) 20923* C-c C-x q: Tag Hierarchy. (line 86) 20924* C-c C-x v: Global and local cycling. 20925 (line 65) 20926* C-c C-x x: Capturing column view. 20927 (line 72) 20928* C-c C-x x <1>: The clock table. (line 11) 20929* C-c C-x x <2>: Dynamic Blocks. (line 10) 20930* C-c C-x \: Subscripts and Superscripts. 20931 (line 27) 20932* C-c C-x \ <1>: Special Symbols. (line 31) 20933* C-c C-x _: Timers. (line 47) 20934* C-c C-y: Creating Timestamps. (line 62) 20935* C-c C-y <1>: Clocking commands. (line 53) 20936* C-c C-z: Drawers. (line 39) 20937* C-c C-z <1>: Agenda Commands. (line 295) 20938* C-c M-w: Refile and Copy. (line 51) 20939* C-c RET: Built-in Table Editor. 20940 (line 130) 20941* C-c SPC: Built-in Table Editor. 20942 (line 67) 20943* C-c TAB: Global and local cycling. 20944 (line 55) 20945* C-c TAB <1>: Column Width and Alignment. 20946 (line 44) 20947* C-c [: Agenda Files. (line 16) 20948* C-c \: Tag Searches. (line 10) 20949* C-c \ <1>: Property Searches. (line 11) 20950* C-c ]: Agenda Files. (line 22) 20951* C-c ^: Structure Editing. (line 108) 20952* C-c ^ <1>: Plain Lists. (line 159) 20953* C-c ^ <2>: Built-in Table Editor. 20954 (line 134) 20955* C-c `: Built-in Table Editor. 20956 (line 202) 20957* C-c {: Editing and debugging formulas. 20958 (line 34) 20959* C-c { <1>: CDLaTeX mode. (line 25) 20960* C-c |: Built-in Table Editor. 20961 (line 42) 20962* C-c | <1>: Built-in Table Editor. 20963 (line 221) 20964* C-c }: Editing and debugging formulas. 20965 (line 29) 20966* C-c } <1>: Editing and debugging formulas. 20967 (line 83) 20968* C-c ~: Cooperation. (line 63) 20969* C-g: Setting Tags. (line 120) 20970* C-k: Agenda Commands. (line 243) 20971* C-RET: Structure Editing. (line 26) 20972* C-S-DOWN: Clocking commands. (line 59) 20973* C-S-LEFT: Multiple sets in one file. 20974 (line 28) 20975* C-S-LEFT <1>: Agenda Commands. (line 240) 20976* C-S-RET: Structure Editing. (line 33) 20977* C-S-RIGHT: Multiple sets in one file. 20978 (line 28) 20979* C-S-RIGHT <1>: Agenda Commands. (line 237) 20980* C-S-UP: Clocking commands. (line 59) 20981* C-TAB: Internal archiving. (line 51) 20982* C-u C-c !: Creating Timestamps. (line 25) 20983* C-u C-c *: Updating the table. (line 19) 20984* C-u C-c .: Creating Timestamps. (line 16) 20985* C-u C-c =: Field and range formulas. 20986 (line 28) 20987* C-u C-c = <1>: Editing and debugging formulas. 20988 (line 14) 20989* C-u C-c C-c: Updating the table. (line 19) 20990* C-u C-c C-l: Handling Links. (line 92) 20991* C-u C-c C-t: Progress Logging. (line 10) 20992* C-u C-c C-w: Refile and Copy. (line 32) 20993* C-u C-c C-x a: Internal archiving. (line 44) 20994* C-u C-c C-x C-s: Moving subtrees. (line 14) 20995* C-u C-c C-x C-u: Capturing column view. 20996 (line 84) 20997* C-u C-c C-x C-u <1>: The clock table. (line 24) 20998* C-u C-c C-x C-u <2>: Dynamic Blocks. (line 28) 20999* C-u C-c TAB: Column Width and Alignment. 21000 (line 54) 21001* C-u C-u C-c !: Creating Timestamps. (line 25) 21002* C-u C-u C-c *: Updating the table. (line 24) 21003* C-u C-u C-c .: Creating Timestamps. (line 21) 21004* C-u C-u C-c =: Editing and debugging formulas. 21005 (line 19) 21006* C-u C-u C-c C-c: Updating the table. (line 24) 21007* C-u C-u C-c C-t: Multiple sets in one file. 21008 (line 28) 21009* C-u C-u C-c C-w: Refile and Copy. (line 35) 21010* C-u C-u C-c C-x C-s: Moving subtrees. (line 21) 21011* C-u C-u C-c TAB: Column Width and Alignment. 21012 (line 57) 21013* C-u C-u C-u C-c C-w: Refile and Copy. (line 46) 21014* C-u C-u C-u C-u C-c C-t: TODO dependencies. (line 46) 21015* C-u C-u C-u TAB: Global and local cycling. 21016 (line 40) 21017* C-u C-u TAB: Global and local cycling. 21018 (line 36) 21019* C-u C-u TAB <1>: Initial visibility. (line 22) 21020* C-u TAB: Global and local cycling. 21021 (line 20) 21022* C-v: The date/time prompt. 21023 (line 81) 21024* C-x C-s: Editing and debugging formulas. 21025 (line 45) 21026* C-x C-s <1>: Agenda Commands. (line 193) 21027* C-x C-s <2>: Editing Source Code. (line 11) 21028* C-x C-w: Exporting Agenda Views. 21029 (line 13) 21030* C-x n b: Structure Editing. (line 123) 21031* C-x n s: Structure Editing. (line 120) 21032* C-x n w: Structure Editing. (line 126) 21033* C-y: Structure Editing. (line 84) 21034* C-_: Agenda Commands. (line 227) 21035* d: Agenda Commands. (line 71) 21036* D: Agenda Commands. (line 127) 21037* e: Using column view. (line 43) 21038* E: Agenda Commands. (line 173) 21039* e <1>: Agenda Commands. (line 292) 21040* e (Agenda dispatcher): Exporting Agenda Views. 21041 (line 53) 21042* F: Agenda Commands. (line 42) 21043* f: Agenda Commands. (line 110) 21044* g: Using column view. (line 22) 21045* G: Agenda Commands. (line 181) 21046* g <1>: Agenda Commands. (line 186) 21047* H: Agenda Commands. (line 485) 21048* I: Agenda Commands. (line 332) 21049* i: Agenda Commands. (line 454) 21050* j: Agenda Commands. (line 121) 21051* J: Agenda Commands. (line 124) 21052* J <1>: Agenda Commands. (line 342) 21053* k: Resolving idle time. (line 23) 21054* K: Resolving idle time. (line 29) 21055* k <1>: Agenda Commands. (line 345) 21056* k c (Agenda): Using capture. (line 33) 21057* l: Agenda Commands. (line 131) 21058* m: Agenda Commands. (line 353) 21059* M: Agenda Commands. (line 472) 21060* m (Agenda dispatcher): Tag Searches. (line 15) 21061* M (Agenda dispatcher): Tag Searches. (line 19) 21062* m (Agenda dispatcher) <1>: Property Searches. (line 15) 21063* M (Agenda dispatcher) <1>: Property Searches. (line 18) 21064* m (Agenda dispatcher) <2>: Matching tags and properties. 21065 (line 13) 21066* M (Agenda dispatcher) <2>: Matching tags and properties. 21067 (line 21) 21068* M-*: Agenda Commands. (line 375) 21069* M-a: Built-in Table Editor. 21070 (line 78) 21071* M-DOWN: Structure Editing. (line 63) 21072* M-DOWN <1>: Plain Lists. (line 102) 21073* M-DOWN <2>: Built-in Table Editor. 21074 (line 104) 21075* M-DOWN <3>: Editing and debugging formulas. 21076 (line 80) 21077* M-DOWN <4>: Agenda Commands. (line 217) 21078* M-DOWN <5>: Key bindings and Useful Functions. 21079 (line 11) 21080* M-e: Built-in Table Editor. 21081 (line 82) 21082* M-g M-n: Sparse Trees. (line 32) 21083* M-g M-p: Sparse Trees. (line 35) 21084* M-g n: Sparse Trees. (line 32) 21085* M-g p: Sparse Trees. (line 35) 21086* M-LEFT: Structure Editing. (line 44) 21087* M-LEFT <1>: Plain Lists. (line 108) 21088* M-LEFT <2>: Built-in Table Editor. 21089 (line 88) 21090* M-m: Agenda Commands. (line 371) 21091* M-RET: Structure Editing. (line 7) 21092* M-RET <1>: Plain Lists. (line 83) 21093* M-RET <2>: Built-in Table Editor. 21094 (line 168) 21095* M-RET <3>: Timers. (line 40) 21096* M-RIGHT: Structure Editing. (line 44) 21097* M-RIGHT <1>: Plain Lists. (line 108) 21098* M-RIGHT <2>: Built-in Table Editor. 21099 (line 91) 21100* M-S-DOWN: Built-in Table Editor. 21101 (line 122) 21102* M-S-DOWN <1>: Editing and debugging formulas. 21103 (line 74) 21104* M-S-LEFT: Structure Editing. (line 54) 21105* M-S-LEFT <1>: Plain Lists. (line 113) 21106* M-S-LEFT <2>: Built-in Table Editor. 21107 (line 94) 21108* M-S-LEFT <3>: The date/time prompt. 21109 (line 81) 21110* M-S-RET: Structure Editing. (line 29) 21111* M-S-RET <1>: Plain Lists. (line 91) 21112* M-S-RET <2>: Checkboxes. (line 86) 21113* M-S-RIGHT: Structure Editing. (line 57) 21114* M-S-RIGHT <1>: Plain Lists. (line 113) 21115* M-S-RIGHT <2>: Built-in Table Editor. 21116 (line 97) 21117* M-S-RIGHT <3>: The date/time prompt. 21118 (line 81) 21119* M-S-UP: Built-in Table Editor. 21120 (line 107) 21121* M-S-UP <1>: Editing and debugging formulas. 21122 (line 71) 21123* M-TAB: Editing and debugging formulas. 21124 (line 63) 21125* M-TAB <1>: Per-file keywords. (line 26) 21126* M-TAB <2>: Setting Tags. (line 6) 21127* M-TAB <3>: Property Syntax. (line 86) 21128* M-TAB <4>: Completion. (line 15) 21129* M-UP: Structure Editing. (line 60) 21130* M-UP <1>: Plain Lists. (line 102) 21131* M-UP <2>: Built-in Table Editor. 21132 (line 101) 21133* M-UP <3>: Editing and debugging formulas. 21134 (line 77) 21135* M-UP <4>: Agenda Commands. (line 210) 21136* M-UP <5>: Key bindings and Useful Functions. 21137 (line 11) 21138* M-v: The date/time prompt. 21139 (line 81) 21140* mouse-1: Handling Links. (line 131) 21141* mouse-1 <1>: The date/time prompt. 21142 (line 81) 21143* mouse-1 <2>: Creating Footnotes. (line 71) 21144* mouse-2: Handling Links. (line 131) 21145* mouse-2 <1>: Agenda Commands. (line 36) 21146* mouse-2 <2>: Creating Footnotes. (line 71) 21147* mouse-3: Handling Links. (line 135) 21148* mouse-3 <1>: Agenda Commands. (line 29) 21149* n: Using column view. (line 39) 21150* n <1>: Agenda Commands. (line 20) 21151* o: Agenda Commands. (line 68) 21152* O: Agenda Commands. (line 336) 21153* p: Using column view. (line 39) 21154* p <1>: Agenda Commands. (line 23) 21155* q: Setting Tags. (line 123) 21156* q <1>: Using column view. (line 26) 21157* q <2>: Agenda Commands. (line 491) 21158* r: Using column view. (line 22) 21159* r <1>: Global TODO list. (line 25) 21160* R: Agenda Commands. (line 154) 21161* r <2>: Agenda Commands. (line 186) 21162* RET: Built-in Table Editor. 21163 (line 73) 21164* RET <1>: Handling Links. (line 127) 21165* RET <2>: Setting Tags. (line 117) 21166* RET <3>: The date/time prompt. 21167 (line 81) 21168* RET <4>: Agenda Commands. (line 39) 21169* s: Resolving idle time. (line 35) 21170* S: Resolving idle time. (line 40) 21171* s <1>: Agenda Commands. (line 193) 21172* S <1>: Agenda Commands. (line 476) 21173* s (Agenda dispatcher): Agenda Dispatcher. (line 25) 21174* s (Agenda dispatcher) <1>: Search view. (line 10) 21175* S-DOWN: Plain Lists. (line 95) 21176* S-DOWN <1>: Built-in Table Editor. 21177 (line 113) 21178* S-DOWN <2>: Editing and debugging formulas. 21179 (line 66) 21180* S-DOWN <3>: Priorities. (line 41) 21181* S-DOWN <4>: Creating Timestamps. (line 50) 21182* S-DOWN <5>: The date/time prompt. 21183 (line 81) 21184* S-DOWN <6>: Agenda Commands. (line 289) 21185* S-LEFT: Plain Lists. (line 154) 21186* S-LEFT <1>: Built-in Table Editor. 21187 (line 116) 21188* S-LEFT <2>: Editing and debugging formulas. 21189 (line 66) 21190* S-LEFT <3>: TODO Basics. (line 28) 21191* S-LEFT <4>: Multiple sets in one file. 21192 (line 36) 21193* S-LEFT <5>: Property Syntax. (line 108) 21194* S-LEFT <6>: Using column view. (line 39) 21195* S-LEFT <7>: Creating Timestamps. (line 45) 21196* S-LEFT <8>: The date/time prompt. 21197 (line 81) 21198* S-LEFT <9>: The clock table. (line 29) 21199* S-LEFT <10>: Agenda Commands. (line 324) 21200* S-M-DOWN: Clocking commands. (line 64) 21201* S-M-LEFT: Using column view. (line 73) 21202* S-M-RET: TODO Basics. (line 54) 21203* S-M-RIGHT: Using column view. (line 70) 21204* S-M-UP: Clocking commands. (line 64) 21205* S-RET: Built-in Table Editor. 21206 (line 186) 21207* S-RIGHT: Plain Lists. (line 154) 21208* S-RIGHT <1>: Built-in Table Editor. 21209 (line 119) 21210* S-RIGHT <2>: Editing and debugging formulas. 21211 (line 66) 21212* S-RIGHT <3>: TODO Basics. (line 28) 21213* S-RIGHT <4>: Multiple sets in one file. 21214 (line 36) 21215* S-RIGHT <5>: Property Syntax. (line 108) 21216* S-RIGHT <6>: Using column view. (line 39) 21217* S-RIGHT <7>: Creating Timestamps. (line 45) 21218* S-RIGHT <8>: The date/time prompt. 21219 (line 81) 21220* S-RIGHT <9>: The clock table. (line 29) 21221* S-RIGHT <10>: Agenda Commands. (line 311) 21222* S-TAB: Global and local cycling. 21223 (line 20) 21224* S-TAB <1>: Built-in Table Editor. 21225 (line 70) 21226* S-UP: Plain Lists. (line 95) 21227* S-UP <1>: Built-in Table Editor. 21228 (line 110) 21229* S-UP <2>: Editing and debugging formulas. 21230 (line 66) 21231* S-UP <3>: Priorities. (line 41) 21232* S-UP <4>: Creating Timestamps. (line 50) 21233* S-UP <5>: The date/time prompt. 21234 (line 81) 21235* S-UP <6>: Agenda Commands. (line 284) 21236* SPC: Setting Tags. (line 114) 21237* SPC <1>: Agenda Commands. (line 29) 21238* t: Agenda Commands. (line 231) 21239* T: Agenda Commands. (line 270) 21240* t (Agenda dispatcher): TODO Basics. (line 46) 21241* t (Agenda dispatcher) <1>: Global TODO list. (line 10) 21242* T (Agenda dispatcher): Global TODO list. (line 18) 21243* TAB: Global and local cycling. 21244 (line 11) 21245* TAB <1>: Structure Editing. (line 37) 21246* TAB <2>: Plain Lists. (line 70) 21247* TAB <3>: Built-in Table Editor. 21248 (line 63) 21249* TAB <4>: Editing and debugging formulas. 21250 (line 56) 21251* TAB <5>: Setting Tags. (line 108) 21252* TAB <6>: Agenda Commands. (line 36) 21253* TAB <7>: CDLaTeX mode. (line 29) 21254* u: Agenda Commands. (line 363) 21255* U: Agenda Commands. (line 367) 21256* v: Using column view. (line 53) 21257* v a: Agenda Commands. (line 146) 21258* v A: Agenda Commands. (line 151) 21259* v c: Agenda Commands. (line 165) 21260* v d: Agenda Commands. (line 71) 21261* v E: Agenda Commands. (line 173) 21262* v l: Agenda Commands. (line 131) 21263* v L: Agenda Commands. (line 131) 21264* v m: Agenda Commands. (line 91) 21265* v R: Agenda Commands. (line 154) 21266* v SPC: Agenda Commands. (line 107) 21267* v w: Agenda Commands. (line 81) 21268* v y: Agenda Commands. (line 101) 21269* v [: Agenda Commands. (line 142) 21270* w: Agenda Commands. (line 81) 21271* X: Agenda Commands. (line 339) 21272* x: Agenda Commands. (line 495) 21273* z: Agenda Commands. (line 295) 21274 21275 21276File: org.info, Node: Command and Function Index, Next: Variable Index, Prev: Key Index, Up: Top 21277 21278F Command and Function Index 21279**************************** 21280 21281[index] 21282* Menu: 21283 21284* lisp-complete-symbol: Editing and debugging formulas. 21285 (line 63) 21286* next-error: Sparse Trees. (line 32) 21287* or-clock-goto: Clocking commands. (line 79) 21288* org-agenda: Activation. (line 13) 21289* org-agenda-add-note: Agenda Commands. (line 295) 21290* org-agenda-archive: Agenda Commands. (line 265) 21291* org-agenda-archive-default-with-confirmation: Agenda Commands. 21292 (line 252) 21293* org-agenda-archive-to-archive-sibling: Agenda Commands. (line 261) 21294* org-agenda-archives-mode: Agenda Commands. (line 146) 21295* org-agenda-bulk-action: Agenda Commands. (line 383) 21296* org-agenda-bulk-mark: Agenda Commands. (line 353) 21297* org-agenda-bulk-mark-all: Agenda Commands. (line 359) 21298* org-agenda-bulk-mark-regexp: Agenda Commands. (line 379) 21299* org-agenda-bulk-remove-all-marks: Agenda Commands. (line 367) 21300* org-agenda-bulk-toggle: Agenda Commands. (line 371) 21301* org-agenda-bulk-toggle-all: Agenda Commands. (line 375) 21302* org-agenda-bulk-unmark: Agenda Commands. (line 363) 21303* org-agenda-capture: Agenda Commands. (line 345) 21304* org-agenda-clock-cancel: Agenda Commands. (line 339) 21305* org-agenda-clock-goto: Agenda Commands. (line 124) 21306* org-agenda-clock-goto <1>: Agenda Commands. (line 342) 21307* org-agenda-clock-in: Agenda Commands. (line 332) 21308* org-agenda-clock-out: Agenda Commands. (line 336) 21309* org-agenda-clockreport-mode: Agenda Commands. (line 154) 21310* org-agenda-columns: Agenda Commands. (line 197) 21311* org-agenda-columns <1>: Agenda Column View. (line 12) 21312* org-agenda-convert-date: Agenda Commands. (line 481) 21313* org-agenda-date-prompt: Agenda Commands. (line 328) 21314* org-agenda-day-view: Agenda Commands. (line 71) 21315* org-agenda-deadline: Agenda Commands. (line 307) 21316* org-agenda-diary-entry: Agenda Commands. (line 454) 21317* org-agenda-do-date-earlier: Agenda Commands. (line 324) 21318* org-agenda-do-date-later: Agenda Commands. (line 311) 21319* org-agenda-drag-line-backward: Agenda Commands. (line 210) 21320* org-agenda-drag-line-forward: Agenda Commands. (line 217) 21321* org-agenda-earlier: Agenda Commands. (line 115) 21322* org-agenda-entry-text-mode: Agenda Commands. (line 173) 21323* org-agenda-exit: Agenda Commands. (line 495) 21324* org-agenda-file-to-front: Agenda Files. (line 16) 21325* org-agenda-filter: Filtering/limiting agenda items. 21326 (line 73) 21327* org-agenda-filter-by-category: Filtering/limiting agenda items. 21328 (line 38) 21329* org-agenda-filter-by-effort: Filtering/limiting agenda items. 21330 (line 49) 21331* org-agenda-filter-by-regexp: Filtering/limiting agenda items. 21332 (line 44) 21333* org-agenda-filter-by-tag: Filtering/limiting agenda items. 21334 (line 28) 21335* org-agenda-filter-by-top-headline: Filtering/limiting agenda items. 21336 (line 68) 21337* org-agenda-follow-mode: Agenda Commands. (line 42) 21338* org-agenda-goto: Agenda Commands. (line 36) 21339* org-agenda-goto-calendar: Agenda Commands. (line 447) 21340* org-agenda-goto-date: Agenda Commands. (line 121) 21341* org-agenda-goto-today: Agenda Commands. (line 118) 21342* org-agenda-holidays: Agenda Commands. (line 485) 21343* org-agenda-kill: Agenda Commands. (line 243) 21344* org-agenda-later: Agenda Commands. (line 110) 21345* org-agenda-limit-interactively: Filtering/limiting agenda items. 21346 (line 164) 21347* org-agenda-list: Weekly/daily agenda. (line 10) 21348* org-agenda-list-stuck-projects: Stuck projects. (line 14) 21349* org-agenda-log-mode: Agenda Commands. (line 131) 21350* org-agenda-manipulate-query-add: Agenda Commands. (line 142) 21351* org-agenda-month-view: Agenda Commands. (line 91) 21352* org-agenda-next-line: Agenda Commands. (line 20) 21353* org-agenda-open-link: Agenda Commands. (line 56) 21354* org-agenda-phases-of-moon: Agenda Commands. (line 472) 21355* org-agenda-previous-line: Agenda Commands. (line 23) 21356* org-agenda-priority: Agenda Commands. (line 279) 21357* org-agenda-priority-down: Agenda Commands. (line 289) 21358* org-agenda-priority-up: Agenda Commands. (line 284) 21359* org-agenda-quit: Agenda Commands. (line 491) 21360* org-agenda-recenter: Agenda Commands. (line 33) 21361* org-agenda-redo: Agenda Commands. (line 186) 21362* org-agenda-refile: Agenda Commands. (line 249) 21363* org-agenda-remove-restriction-lock: Agenda Files. (line 52) 21364* org-agenda-remove-restriction-lock <1>: Agenda Files. (line 65) 21365* org-agenda-remove-restriction-lock <2>: Agenda Commands. (line 206) 21366* org-agenda-reset-view: Agenda Commands. (line 107) 21367* org-agenda-schedule: Agenda Commands. (line 303) 21368* org-agenda-set-effort: Agenda Commands. (line 292) 21369* org-agenda-set-restriction-lock: Agenda Files. (line 43) 21370* org-agenda-set-tags: Agenda Commands. (line 275) 21371* org-agenda-show-and-scroll-up: Agenda Commands. (line 29) 21372* org-agenda-show-tags: Agenda Commands. (line 270) 21373* org-agenda-sunrise-sunset: Agenda Commands. (line 476) 21374* org-agenda-switch-to: Agenda Commands. (line 39) 21375* org-agenda-todo: Agenda Commands. (line 231) 21376* org-agenda-todo-nextset: Agenda Commands. (line 237) 21377* org-agenda-toggle-archive-tag: Agenda Commands. (line 257) 21378* org-agenda-toggle-diary: Agenda Commands. (line 127) 21379* org-agenda-tree-to-indirect-buffer: Agenda Commands. (line 49) 21380* org-agenda-undo: Agenda Commands. (line 227) 21381* org-agenda-week-view: Agenda Commands. (line 81) 21382* org-agenda-write: Exporting Agenda Views. 21383 (line 13) 21384* org-agenda-year-view: Agenda Commands. (line 101) 21385* org-archive-subtree: Moving subtrees. (line 10) 21386* org-archive-subtree-default: Archiving. (line 12) 21387* org-archive-to-archive-sibling: Internal archiving. (line 54) 21388* org-ascii-convert-region-to-ascii: Export in Foreign Buffers. 21389 (line 11) 21390* org-ascii-convert-region-to-utf8: Export in Foreign Buffers. 21391 (line 14) 21392* org-ascii-export-as-ascii: ASCII/Latin-1/UTF-8 export. 21393 (line 35) 21394* org-ascii-export-to-ascii: ASCII/Latin-1/UTF-8 export. 21395 (line 26) 21396* org-attach: Attachment defaults and dispatcher. 21397 (line 20) 21398* org-attach <1>: Agenda Commands. (line 300) 21399* org-attach-attach: Attachment defaults and dispatcher. 21400 (line 25) 21401* org-attach-buffer: Attachment defaults and dispatcher. 21402 (line 35) 21403* org-attach-dired-to-subtree: Attach from Dired. (line 6) 21404* org-attach-new: Attachment defaults and dispatcher. 21405 (line 39) 21406* org-attach-open: Attachment defaults and dispatcher. 21407 (line 46) 21408* org-attach-open-in-emacs: Attachment defaults and dispatcher. 21409 (line 52) 21410* org-attach-reveal: Attachment defaults and dispatcher. 21411 (line 55) 21412* org-attach-reveal-in-emacs: Attachment defaults and dispatcher. 21413 (line 58) 21414* org-attach-sync: Attachment defaults and dispatcher. 21415 (line 42) 21416* org-babel-check-src-block: Key bindings and Useful Functions. 21417 (line 20) 21418* org-babel-demarcate-block: Key bindings and Useful Functions. 21419 (line 20) 21420* org-babel-describe-bindings: Key bindings and Useful Functions. 21421 (line 20) 21422* org-babel-do-key-sequence-in-edit-buffer: Key bindings and Useful Functions. 21423 (line 20) 21424* org-babel-execute-buffer: Key bindings and Useful Functions. 21425 (line 20) 21426* org-babel-execute-maybe: Key bindings and Useful Functions. 21427 (line 20) 21428* org-babel-execute-src-block: Evaluating Code Blocks. 21429 (line 22) 21430* org-babel-execute-src-block <1>: Key bindings and Useful Functions. 21431 (line 11) 21432* org-babel-execute-subtree: Key bindings and Useful Functions. 21433 (line 20) 21434* org-babel-expand-src-block: Noweb Reference Syntax. 21435 (line 202) 21436* org-babel-expand-src-block <1>: Key bindings and Useful Functions. 21437 (line 20) 21438* org-babel-goto-named-result: Key bindings and Useful Functions. 21439 (line 20) 21440* org-babel-goto-named-src-block: Key bindings and Useful Functions. 21441 (line 20) 21442* org-babel-goto-src-block-head: Key bindings and Useful Functions. 21443 (line 20) 21444* org-babel-insert-header-arg: Key bindings and Useful Functions. 21445 (line 20) 21446* org-babel-load-in-session: Key bindings and Useful Functions. 21447 (line 11) 21448* org-babel-load-in-session <1>: Key bindings and Useful Functions. 21449 (line 20) 21450* org-babel-lob-ingest: Library of Babel. (line 12) 21451* org-babel-lob-ingest <1>: Key bindings and Useful Functions. 21452 (line 20) 21453* org-babel-next-src-block: Key bindings and Useful Functions. 21454 (line 20) 21455* org-babel-open-src-block-result: Key bindings and Useful Functions. 21456 (line 11) 21457* org-babel-open-src-block-result <1>: Key bindings and Useful Functions. 21458 (line 20) 21459* org-babel-pop-to-session: Key bindings and Useful Functions. 21460 (line 11) 21461* org-babel-previous-src-block: Key bindings and Useful Functions. 21462 (line 20) 21463* org-babel-sha1-hash: Key bindings and Useful Functions. 21464 (line 20) 21465* org-babel-switch-to-session-with-code: Key bindings and Useful Functions. 21466 (line 20) 21467* org-babel-tangle: Extracting Source Code. 21468 (line 111) 21469* org-babel-tangle <1>: Key bindings and Useful Functions. 21470 (line 20) 21471* org-babel-tangle-file: Extracting Source Code. 21472 (line 116) 21473* org-babel-tangle-file <1>: Key bindings and Useful Functions. 21474 (line 20) 21475* org-babel-tangle-jump-to-org: Extracting Source Code. 21476 (line 129) 21477* org-babel-view-src-block-info: Key bindings and Useful Functions. 21478 (line 20) 21479* org-backward-heading-same-level: Motion. (line 18) 21480* org-batch-agenda: Extracting Agenda Information. 21481 (line 10) 21482* org-batch-agenda-csv: Extracting Agenda Information. 21483 (line 41) 21484* org-bbdb-anniversaries: Weekly/daily agenda. (line 78) 21485* org-bbdb-anniversaries-future: Weekly/daily agenda. (line 109) 21486* org-beamer-export-as-latex: Beamer export commands. 21487 (line 12) 21488* org-beamer-export-to-latex: Beamer export commands. 21489 (line 7) 21490* org-beamer-export-to-pdf: Beamer export commands. 21491 (line 16) 21492* org-beamer-select-environment: Editing support. (line 12) 21493* org-buffer-property-keys: Using the Property API. 21494 (line 34) 21495* org-calendar-goto-agenda: Agenda Commands. (line 450) 21496* org-capture: Activation. (line 13) 21497* org-capture <1>: Using capture. (line 7) 21498* org-capture-finalize: Using capture. (line 15) 21499* org-capture-kill: Using capture. (line 31) 21500* org-capture-refile: Using capture. (line 22) 21501* org-check-after-date: Inserting deadline/schedule. 21502 (line 36) 21503* org-check-before-date: Inserting deadline/schedule. 21504 (line 33) 21505* org-check-deadlines: Inserting deadline/schedule. 21506 (line 26) 21507* org-clock-cancel: Clocking commands. (line 75) 21508* org-clock-display: Clocking commands. (line 84) 21509* org-clock-in: Clocking commands. (line 7) 21510* org-clock-in-last: Clocking commands. (line 44) 21511* org-clock-modify-effort-estimate: Clocking commands. (line 50) 21512* org-clock-modify-effort-estimate <1>: Effort Estimates. (line 24) 21513* org-clock-out: Clocking commands. (line 36) 21514* org-clock-report: The clock table. (line 11) 21515* org-clock-timestamp-down: Clocking commands. (line 64) 21516* org-clock-timestamp-up: Clocking commands. (line 64) 21517* org-clock-timestamps-down: Clocking commands. (line 59) 21518* org-clock-timestamps-up: Clocking commands. (line 59) 21519* org-clocktable-try-shift: The clock table. (line 29) 21520* org-clocktable-write-default: The clock table. (line 118) 21521* org-clone-subtree-with-time-shift: Structure Editing. (line 96) 21522* org-columns-delete: Using column view. (line 73) 21523* org-columns-edit-allowed: Using column view. (line 57) 21524* org-columns-edit-value: Using column view. (line 43) 21525* org-columns-insert-dblock: Capturing column view. 21526 (line 72) 21527* org-columns-narrow: Using column view. (line 67) 21528* org-columns-new: Using column view. (line 70) 21529* org-columns-next-allowed-value: Using column view. (line 39) 21530* org-columns-previous-allowed-value: Using column view. (line 39) 21531* org-columns-quit: Using column view. (line 26) 21532* org-columns-redo: Using column view. (line 22) 21533* org-columns-show-value: Using column view. (line 53) 21534* org-columns-toggle-or-columns-quit: Using column view. (line 49) 21535* org-columns-widen: Using column view. (line 67) 21536* org-compute-property-at-point: Property Syntax. (line 117) 21537* org-copy-subtree: Structure Editing. (line 74) 21538* org-copy-visible: Global and local cycling. 21539 (line 65) 21540* org-cut-subtree: Structure Editing. (line 70) 21541* org-cycle: Global and local cycling. 21542 (line 11) 21543* org-cycle <1>: Structure Editing. (line 37) 21544* org-cycle <2>: Plain Lists. (line 70) 21545* org-cycle-agenda-files: Agenda Files. (line 26) 21546* org-date-from-calendar: Creating Timestamps. (line 32) 21547* org-dblock-update: Capturing column view. 21548 (line 80) 21549* org-dblock-update <1>: The clock table. (line 20) 21550* org-dblock-update <2>: Dynamic Blocks. (line 25) 21551* org-deadline: Inserting deadline/schedule. 21552 (line 10) 21553* org-delete-property: Property Syntax. (line 111) 21554* org-delete-property-globally: Property Syntax. (line 114) 21555* org-demote: Using the Mapping API. 21556 (line 93) 21557* org-demote-subtree: Structure Editing. (line 57) 21558* org-do-demote: Structure Editing. (line 44) 21559* org-do-promote: Structure Editing. (line 44) 21560* org-dynamic-block-insert-dblock: Dynamic Blocks. (line 10) 21561* org-edit-special: Literal Examples. (line 102) 21562* org-edit-special <1>: Include Files. (line 63) 21563* org-edit-special <2>: Cooperation. (line 59) 21564* org-entities-help: Special Symbols. (line 16) 21565* org-entry-add-to-multivalued-property: Using the Property API. 21566 (line 49) 21567* org-entry-delete: Using the Property API. 21568 (line 28) 21569* org-entry-get: Using the Property API. 21570 (line 19) 21571* org-entry-get-multivalued-property: Using the Property API. 21572 (line 45) 21573* org-entry-member-in-multivalued-property: Using the Property API. 21574 (line 58) 21575* org-entry-properties: Using the Property API. 21576 (line 9) 21577* org-entry-put: Using the Property API. 21578 (line 31) 21579* org-entry-put-multivalued-property: Using the Property API. 21580 (line 40) 21581* org-entry-remove-from-multivalued-property: Using the Property API. 21582 (line 53) 21583* org-evaluate-time-range: Creating Timestamps. (line 62) 21584* org-evaluate-time-range <1>: Clocking commands. (line 53) 21585* org-export: The Export Dispatcher. 21586 (line 16) 21587* org-export-define-backend: Adding Export Back-ends. 21588 (line 10) 21589* org-export-define-derived-backend: Adding Export Back-ends. 21590 (line 10) 21591* org-export-to-odt: ODT export commands. (line 7) 21592* org-forward-heading-same-level: Motion. (line 15) 21593* org-global-cycle: Global and local cycling. 21594 (line 20) 21595* org-goto: Motion. (line 24) 21596* org-goto-calendar: Creating Timestamps. (line 35) 21597* org-html-convert-region-to-html: Export in Foreign Buffers. 21598 (line 17) 21599* org-html-export-as-html: HTML export commands. 21600 (line 14) 21601* org-html-export-to-html: HTML export commands. 21602 (line 7) 21603* org-icalendar-combine-agenda-files: iCalendar Export. (line 47) 21604* org-icalendar-export-agenda-files: iCalendar Export. (line 43) 21605* org-icalendar-export-to-ics: iCalendar Export. (line 39) 21606* org-indent-mode: Org Indent Mode. (line 6) 21607* org-info-find-node: Documentation Access. 21608 (line 6) 21609* org-insert-drawer: Drawers. (line 18) 21610* org-insert-drawer <1>: Property Syntax. (line 94) 21611* org-insert-heading: Plain Lists. (line 83) 21612* org-insert-heading <1>: Timers. (line 40) 21613* org-insert-heading-respect-content: Structure Editing. (line 26) 21614* org-insert-link: Handling Links. (line 69) 21615* org-insert-link-global: Using Links Outside Org. 21616 (line 6) 21617* org-insert-property-drawer: Using the Property API. 21618 (line 19) 21619* org-insert-property-drawer <1>: Using the Property API. 21620 (line 37) 21621* org-insert-structure-template: Structure Templates. (line 11) 21622* org-insert-todo-heading: Structure Editing. (line 29) 21623* org-insert-todo-heading <1>: TODO Basics. (line 54) 21624* org-insert-todo-heading <2>: Checkboxes. (line 86) 21625* org-insert-todo-heading-respect-content: Structure Editing. (line 33) 21626* org-latex-convert-region-to-latex: Export in Foreign Buffers. 21627 (line 20) 21628* org-latex-export-as-latex: LaTeX/PDF export commands. 21629 (line 11) 21630* org-latex-export-to-latex~: LaTeX/PDF export commands. 21631 (line 7) 21632* org-latex-export-to-pdf: LaTeX/PDF export commands. 21633 (line 14) 21634* org-latex-preview: Previewing LaTeX fragments. 21635 (line 18) 21636* org-link-escape: Link Format. (line 25) 21637* org-link-set-parameters: Adding Hyperlink Types. 21638 (line 74) 21639* org-lint: Org Syntax. (line 24) 21640* org-list-checkbox-radio-mode: Checkboxes. (line 81) 21641* org-lookup-all: Lookup functions. (line 23) 21642* org-lookup-first: Lookup functions. (line 9) 21643* org-lookup-last: Lookup functions. (line 19) 21644* org-map-entries: Using the Mapping API. 21645 (line 12) 21646* org-mark-ring-goto: Handling Links. (line 144) 21647* org-mark-ring-push: Handling Links. (line 139) 21648* org-mark-subtree: Structure Editing. (line 66) 21649* org-match-sparse-tree: Tag Searches. (line 10) 21650* org-match-sparse-tree <1>: Property Searches. (line 11) 21651* org-md-convert-region-to-md: Export in Foreign Buffers. 21652 (line 26) 21653* org-md-export-as-markdown: Markdown Export. (line 21) 21654* org-md-export-to-markdown: Markdown Export. (line 17) 21655* org-meta-return: Structure Editing. (line 7) 21656* org-mobile-pull: Pulling from the mobile application. 21657 (line 6) 21658* org-mobile-push: Pushing to the mobile application. 21659 (line 6) 21660* org-move-subtree-down: Structure Editing. (line 63) 21661* org-move-subtree-up: Structure Editing. (line 60) 21662* org-narrow-to-block: Structure Editing. (line 123) 21663* org-narrow-to-block <1>: Dynamic Blocks. (line 58) 21664* org-narrow-to-subtree: Structure Editing. (line 120) 21665* org-next-link: Handling Links. (line 151) 21666* org-next-visible-heading: Motion. (line 9) 21667* org-occur: Sparse Trees. (line 20) 21668* org-odt-convert: Extending ODT export. 21669 (line 37) 21670* org-open-at-point: Handling Links. (line 106) 21671* org-open-at-point <1>: Creating Timestamps. (line 40) 21672* org-open-at-point-global: Using Links Outside Org. 21673 (line 6) 21674* org-org-export-to-org: Org Export. (line 15) 21675* org-paste-subtree: Structure Editing. (line 78) 21676* org-previous-link: Handling Links. (line 151) 21677* org-previous-visible-heading: Motion. (line 12) 21678* org-priority: Priorities. (line 33) 21679* org-priority <1>: Using the Mapping API. 21680 (line 81) 21681* org-priority-down: Priorities. (line 41) 21682* org-priority-up: Priorities. (line 41) 21683* org-promote: Using the Mapping API. 21684 (line 90) 21685* org-promote-subtree: Structure Editing. (line 54) 21686* org-property-action: Property Syntax. (line 100) 21687* org-protocol-create: The open-source protocol. 21688 (line 67) 21689* org-protocol-create-for-org: The open-source protocol. 21690 (line 67) 21691* org-publish: Triggering Publication. 21692 (line 9) 21693* org-publish-all: Triggering Publication. 21694 (line 19) 21695* org-publish-current-file: Triggering Publication. 21696 (line 16) 21697* org-publish-current-project: Triggering Publication. 21698 (line 13) 21699* org-publish-find-date: Site map. (line 21) 21700* org-publish-find-property: Site map. (line 21) 21701* org-publish-find-title: Site map. (line 21) 21702* org-refile: Structure Editing. (line 104) 21703* org-refile <1>: Refile and Copy. (line 13) 21704* org-refile-cache-clear: Refile and Copy. (line 46) 21705* org-refile-copy: Refile and Copy. (line 51) 21706* org-refile-goto-last-stored: Refile and Copy. (line 35) 21707* org-remove-file: Agenda Files. (line 22) 21708* org-reveal: Global and local cycling. 21709 (line 43) 21710* org-save-all-org-buffers: Agenda Commands. (line 193) 21711* org-schedule: Inserting deadline/schedule. 21712 (line 18) 21713* org-search-view: Search view. (line 10) 21714* org-set-effort: Effort Estimates. (line 19) 21715* org-set-property: Property Syntax. (line 90) 21716* org-set-property <1>: Property Syntax. (line 103) 21717* org-set-property <2>: Using Header Arguments. 21718 (line 70) 21719* org-set-startup-visibility: Global and local cycling. 21720 (line 36) 21721* org-set-startup-visibility <1>: Initial visibility. (line 22) 21722* org-set-tags-command: Setting Tags. (line 11) 21723* org-show-todo-tree: TODO Basics. (line 35) 21724* org-sort: Structure Editing. (line 108) 21725* org-sparse-tree: Sparse Trees. (line 16) 21726* org-speed-command-help: Speed Keys. (line 18) 21727* org-speedbar-set-agenda-restriction: Agenda Files. (line 58) 21728* org-store-agenda-views: Exporting Agenda Views. 21729 (line 53) 21730* org-store-link: Activation. (line 13) 21731* org-store-link <1>: Handling Links. (line 9) 21732* org-submit-bug-report: Feedback. (line 16) 21733* org-switchb: Agenda Files. (line 29) 21734* org-table-align: Built-in Table Editor. 21735 (line 60) 21736* org-table-align <1>: Column Width and Alignment. 21737 (line 17) 21738* org-table-beginning-of-field: Built-in Table Editor. 21739 (line 78) 21740* org-table-blank-field: Built-in Table Editor. 21741 (line 67) 21742* org-table-copy-down: Built-in Table Editor. 21743 (line 186) 21744* org-table-copy-region: Built-in Table Editor. 21745 (line 151) 21746* org-table-create-or-convert-from-region: Built-in Table Editor. 21747 (line 42) 21748* org-table-create-or-convert-from-region <1>: Built-in Table Editor. 21749 (line 221) 21750* org-table-create-with-table.el: Cooperation. (line 63) 21751* org-table-cut-region: Built-in Table Editor. 21752 (line 157) 21753* org-table-delete-column: Built-in Table Editor. 21754 (line 94) 21755* org-table-edit-field: Built-in Table Editor. 21756 (line 202) 21757* org-table-edit-formulas: Editing and debugging formulas. 21758 (line 37) 21759* org-table-end-of-field: Built-in Table Editor. 21760 (line 82) 21761* org-table-eval-formula: Field and range formulas. 21762 (line 28) 21763* org-table-eval-formula <1>: Column formulas. (line 33) 21764* org-table-eval-formula <2>: Editing and debugging formulas. 21765 (line 14) 21766* org-table-eval-formula <3>: Editing and debugging formulas. 21767 (line 19) 21768* org-table-expand: Column Width and Alignment. 21769 (line 57) 21770* org-table-export: Built-in Table Editor. 21771 (line 226) 21772* org-table-fedit-abort: Editing and debugging formulas. 21773 (line 49) 21774* org-table-fedit-finish: Editing and debugging formulas. 21775 (line 45) 21776* org-table-fedit-line-down: Editing and debugging formulas. 21777 (line 74) 21778* org-table-fedit-line-up: Editing and debugging formulas. 21779 (line 71) 21780* org-table-fedit-lisp-indent: Editing and debugging formulas. 21781 (line 56) 21782* org-table-fedit-ref-down: Editing and debugging formulas. 21783 (line 66) 21784* org-table-fedit-ref-left: Editing and debugging formulas. 21785 (line 66) 21786* org-table-fedit-ref-right: Editing and debugging formulas. 21787 (line 66) 21788* org-table-fedit-ref-up: Editing and debugging formulas. 21789 (line 66) 21790* org-table-fedit-scroll-down: Editing and debugging formulas. 21791 (line 80) 21792* org-table-fedit-scroll-up: Editing and debugging formulas. 21793 (line 77) 21794* org-table-fedit-toggle-ref-type: Editing and debugging formulas. 21795 (line 52) 21796* org-table-field-info: Editing and debugging formulas. 21797 (line 25) 21798* org-table-header-line-mode: Built-in Table Editor. 21799 (line 237) 21800* org-table-hline-and-move: Built-in Table Editor. 21801 (line 130) 21802* org-table-import: Built-in Table Editor. 21803 (line 212) 21804* org-table-insert-column: Built-in Table Editor. 21805 (line 97) 21806* org-table-insert-hline: Built-in Table Editor. 21807 (line 126) 21808* org-table-insert-row: Built-in Table Editor. 21809 (line 122) 21810* org-table-iterate: Updating the table. (line 24) 21811* org-table-iterate-buffer-tables: Updating the table. (line 32) 21812* org-table-kill-row: Built-in Table Editor. 21813 (line 107) 21814* org-table-move-cell-down: Built-in Table Editor. 21815 (line 113) 21816* org-table-move-cell-left: Built-in Table Editor. 21817 (line 116) 21818* org-table-move-cell-right: Built-in Table Editor. 21819 (line 119) 21820* org-table-move-cell-up: Built-in Table Editor. 21821 (line 110) 21822* org-table-move-column-left: Built-in Table Editor. 21823 (line 88) 21824* org-table-move-column-right: Built-in Table Editor. 21825 (line 91) 21826* org-table-move-row-down: Built-in Table Editor. 21827 (line 104) 21828* org-table-move-row-up: Built-in Table Editor. 21829 (line 101) 21830* org-table-next-field: Built-in Table Editor. 21831 (line 63) 21832* org-table-next-row: Built-in Table Editor. 21833 (line 73) 21834* org-table-paste-rectangle: Built-in Table Editor. 21835 (line 161) 21836* org-table-previous-field: Built-in Table Editor. 21837 (line 70) 21838* org-table-recalculate: Updating the table. (line 14) 21839* org-table-recalculate-buffer-tables: Updating the table. (line 29) 21840* org-table-rotate-recalc-marks: Advanced features. (line 11) 21841* org-table-shrink: Column Width and Alignment. 21842 (line 54) 21843* org-table-sort-lines: Built-in Table Editor. 21844 (line 134) 21845* org-table-sum: Built-in Table Editor. 21846 (line 181) 21847* org-table-toggle-column-width: Column Width and Alignment. 21848 (line 44) 21849* org-table-toggle-coordinate-overlays: Editing and debugging formulas. 21850 (line 29) 21851* org-table-toggle-coordinate-overlays <1>: Editing and debugging formulas. 21852 (line 83) 21853* org-table-toggle-formula-debugger: Editing and debugging formulas. 21854 (line 34) 21855* org-table-transpose-table-at-point: Built-in Table Editor. 21856 (line 243) 21857* org-table-wrap-region: Built-in Table Editor. 21858 (line 168) 21859* org-tags-view: Tag Searches. (line 15) 21860* org-tags-view <1>: Property Searches. (line 15) 21861* org-tags-view <2>: Matching tags and properties. 21862 (line 13) 21863* org-tags-view <3>: Matching tags and properties. 21864 (line 21) 21865* org-texinfo-convert-region-to-texinfo: Export in Foreign Buffers. 21866 (line 23) 21867* org-texinfo-export-to-info: Texinfo export commands. 21868 (line 11) 21869* org-texinfo-export-to-texinfo: Texinfo export commands. 21870 (line 7) 21871* org-time-stamp: Creating Timestamps. (line 11) 21872* org-time-stamp-inactive: Creating Timestamps. (line 25) 21873* org-timer: Timers. (line 32) 21874* org-timer-item: Timers. (line 36) 21875* org-timer-pause-or-continue: Timers. (line 44) 21876* org-timer-set-timer: Timers. (line 23) 21877* org-timer-start: Timers. (line 13) 21878* org-timer-stop: Timers. (line 47) 21879* org-timestamp-down-day: Creating Timestamps. (line 45) 21880* org-timestamp-up-day: Creating Timestamps. (line 45) 21881* org-todo: Clocking commands. (line 71) 21882* org-todo <1>: Using the Mapping API. 21883 (line 77) 21884* org-todo-list: Global TODO list. (line 10) 21885* org-todo-list <1>: Global TODO list. (line 18) 21886* org-toggle-archive-tag: Internal archiving. (line 39) 21887* org-toggle-checkbox: Checkboxes. (line 52) 21888* org-toggle-comment: Comment Lines. (line 20) 21889* org-toggle-heading: Structure Editing. (line 129) 21890* org-toggle-inline-images: Images. (line 24) 21891* org-toggle-ordered-property: TODO dependencies. (line 38) 21892* org-toggle-ordered-property <1>: Checkboxes. (line 90) 21893* org-toggle-pretty-entities: Subscripts and Superscripts. 21894 (line 27) 21895* org-toggle-pretty-entities <1>: Special Symbols. (line 31) 21896* org-toggle-radio-button: Checkboxes. (line 75) 21897* org-toggle-sticky-agenda: Agenda Dispatcher. (line 55) 21898* org-toggle-tag: Using the Mapping API. 21899 (line 85) 21900* org-toggle-tags-groups: Tag Hierarchy. (line 86) 21901* org-toggle-time-stamp-overlays: Custom time format. (line 13) 21902* org-tree-to-indirect-buffer: Global and local cycling. 21903 (line 59) 21904* org-update-statistics-cookies: Checkboxes. (line 98) 21905* org-version: Feedback. (line 16) 21906* org-yank: Structure Editing. (line 84) 21907* orgtbl-ascii-draw: Org Plot. (line 109) 21908* orgtbl-mode: Orgtbl Mode. (line 6) 21909* orgtbl-to-csv: Translator functions. 21910 (line 6) 21911* orgtbl-to-generic: Translator functions. 21912 (line 6) 21913* orgtbl-to-html: Translator functions. 21914 (line 6) 21915* orgtbl-to-latex: Translator functions. 21916 (line 6) 21917* orgtbl-to-orgtbl: Translator functions. 21918 (line 6) 21919* orgtbl-to-texinfo: Translator functions. 21920 (line 6) 21921* orgtbl-to-tsv: Translator functions. 21922 (line 6) 21923* orgtbl-to-unicode: Translator functions. 21924 (line 6) 21925* outline-show-all: Global and local cycling. 21926 (line 40) 21927* outline-show-branches: Global and local cycling. 21928 (line 52) 21929* outline-show-children: Global and local cycling. 21930 (line 55) 21931* outline-up-heading: Motion. (line 21) 21932* pcomplete: Property Syntax. (line 86) 21933* previous-error: Sparse Trees. (line 35) 21934* widen: Structure Editing. (line 126) 21935 21936 21937File: org.info, Node: Variable Index, Prev: Command and Function Index, Up: Top 21938 21939G Variable Index 21940**************** 21941 21942This is not a complete index of variables and faces, only the ones that 21943are mentioned in the manual. For a more complete list, use ‘M-x 21944org-customize’ and then click yourself through the tree. 21945 21946[index] 21947* Menu: 21948 21949* cdlatex-simplify-sub-super-scripts: CDLaTeX mode. (line 43) 21950* constants-unit-system: References. (line 121) 21951* constants-unit-system <1>: In-buffer Settings. (line 147) 21952* LaTeX-verbatim-environments: A LaTeX example. (line 19) 21953* org-adapt-indentation: Hard indentation. (line 16) 21954* org-agenda-auto-exclude-function: Filtering/limiting agenda items. 21955 (line 98) 21956* org-agenda-bulk-custom-functions: Agenda Commands. (line 352) 21957* org-agenda-bulk-custom-functions <1>: Agenda Commands. (line 431) 21958* org-agenda-bulk-persistent-marks: Agenda Commands. (line 383) 21959* org-agenda-category-filter-preset: Filtering/limiting agenda items. 21960 (line 6) 21961* org-agenda-category-icon-alist: Categories. (line 16) 21962* org-agenda-clock-consistency-checks: Agenda Commands. (line 165) 21963* org-agenda-columns-add-appointments-to-effort-sum: Effort Estimates. 21964 (line 45) 21965* org-agenda-confirm-kill: Agenda Commands. (line 243) 21966* org-agenda-custom-commands: Sparse Trees. (line 37) 21967* org-agenda-custom-commands <1>: Storing searches. (line 11) 21968* org-agenda-custom-commands <2>: Setting options. (line 6) 21969* org-agenda-custom-commands <3>: Extracting Agenda Information. 21970 (line 10) 21971* org-agenda-custom-commands-contexts: Setting options. (line 59) 21972* org-agenda-diary-file: Agenda Commands. (line 460) 21973* org-agenda-dim-blocked-tasks: TODO dependencies. (line 48) 21974* org-agenda-dim-blocked-tasks <1>: Speeding Up Your Agendas. 21975 (line 15) 21976* org-agenda-effort-filter-preset: Filtering/limiting agenda items. 21977 (line 6) 21978* org-agenda-entry-text-maxlines: Agenda Commands. (line 173) 21979* org-agenda-exporter-settings: Exporting Agenda Views. 21980 (line 14) 21981* org-agenda-exporter-settings <1>: Exporting Agenda Views. 21982 (line 68) 21983* org-agenda-files: Agenda Files. (line 6) 21984* org-agenda-files <1>: Sorting of agenda items. 21985 (line 9) 21986* org-agenda-inhibit-startup: Speeding Up Your Agendas. 21987 (line 19) 21988* org-agenda-log-mode-items: Agenda Commands. (line 131) 21989* org-agenda-loop-over-headlines-in-active-region: Execute commands in the active region. 21990 (line 13) 21991* org-agenda-max-effort: Filtering/limiting agenda items. 21992 (line 135) 21993* org-agenda-max-entries: Filtering/limiting agenda items. 21994 (line 132) 21995* org-agenda-max-tags: Filtering/limiting agenda items. 21996 (line 141) 21997* org-agenda-max-todos: Filtering/limiting agenda items. 21998 (line 138) 21999* org-agenda-overriding-header: Special Agenda Views. 22000 (line 38) 22001* org-agenda-prefix-format: Presentation and Sorting. 22002 (line 6) 22003* org-agenda-regexp-filter-preset: Filtering/limiting agenda items. 22004 (line 6) 22005* org-agenda-restore-windows-after-quit: Agenda Views. (line 42) 22006* org-agenda-search-headline-for-time: Time-of-day specifications. 22007 (line 16) 22008* org-agenda-show-inherited-tags: Agenda Commands. (line 270) 22009* org-agenda-show-inherited-tags <1>: Speeding Up Your Agendas. 22010 (line 23) 22011* org-agenda-skip-archived-trees: Internal archiving. (line 23) 22012* org-agenda-skip-archived-trees <1>: Agenda Views. (line 37) 22013* org-agenda-skip-comment-trees: Agenda Views. (line 37) 22014* org-agenda-skip-deadline-prewarning-if-scheduled: Deadlines and Scheduling. 22015 (line 24) 22016* org-agenda-skip-function: Special Agenda Views. 22017 (line 6) 22018* org-agenda-skip-function <1>: Special Agenda Views. 22019 (line 41) 22020* org-agenda-skip-function <2>: Using the Mapping API. 22021 (line 69) 22022* org-agenda-skip-function-global: Special Agenda Views. 22023 (line 6) 22024* org-agenda-skip-scheduled-delay-if-deadline: Deadlines and Scheduling. 22025 (line 42) 22026* org-agenda-skip-scheduled-if-deadline-is-shown: Repeated tasks. 22027 (line 80) 22028* org-agenda-skip-scheduled-if-done: Deadlines and Scheduling. 22029 (line 34) 22030* org-agenda-sorting-strategy: Sorting of agenda items. 22031 (line 28) 22032* org-agenda-span: Weekly/daily agenda. (line 15) 22033* org-agenda-span <1>: Agenda Commands. (line 107) 22034* org-agenda-start-day: Weekly/daily agenda. (line 15) 22035* org-agenda-start-on-weekday: Weekly/daily agenda. (line 15) 22036* org-agenda-start-with-clockreport-mode: Agenda Commands. (line 154) 22037* org-agenda-start-with-entry-text-mode: Agenda Commands. (line 173) 22038* org-agenda-start-with-follow-mode: Agenda Commands. (line 42) 22039* org-agenda-sticky: Agenda Dispatcher. (line 55) 22040* org-agenda-tag-filter-preset: Filtering/limiting agenda items. 22041 (line 6) 22042* org-agenda-tags-column: Presentation and Sorting. 22043 (line 6) 22044* org-agenda-tags-todo-honor-ignore-options: Matching tags and properties. 22045 (line 21) 22046* org-agenda-text-search-extra-files: Agenda Dispatcher. (line 30) 22047* org-agenda-text-search-extra-files <1>: Search view. (line 34) 22048* org-agenda-time-grid: Time-of-day specifications. 22049 (line 46) 22050* org-agenda-time-grid <1>: Agenda Commands. (line 181) 22051* org-agenda-todo-ignore-deadlines: Global TODO list. (line 42) 22052* org-agenda-todo-ignore-scheduled: Global TODO list. (line 42) 22053* org-agenda-todo-ignore-timestamp: Global TODO list. (line 42) 22054* org-agenda-todo-ignore-with-date: Global TODO list. (line 42) 22055* org-agenda-todo-list-sublevels: Breaking Down Tasks. (line 6) 22056* org-agenda-todo-list-sublevels <1>: Global TODO list. (line 53) 22057* org-agenda-use-tag-inheritance: Tag Inheritance. (line 32) 22058* org-agenda-use-tag-inheritance <1>: Speeding Up Your Agendas. 22059 (line 23) 22060* org-agenda-use-time-grid: Time-of-day specifications. 22061 (line 46) 22062* org-agenda-use-time-grid <1>: Agenda Commands. (line 181) 22063* org-agenda-window-setup: Agenda Views. (line 42) 22064* org-alphabetical-lists: Plain Lists. (line 15) 22065* org-archive-default-command: Archiving. (line 12) 22066* org-archive-default-command <1>: Agenda Commands. (line 252) 22067* org-archive-location: Moving subtrees. (line 10) 22068* org-archive-location <1>: In-buffer Settings. (line 15) 22069* org-archive-save-context-info: Moving subtrees. (line 41) 22070* org-archive-subtree-save-file-p: Moving subtrees. (line 47) 22071* org-ascii-links-to-notes: ASCII/Latin-1/UTF-8 export. 22072 (line 16) 22073* org-ascii-text-width: ASCII/Latin-1/UTF-8 export. 22074 (line 13) 22075* org-attach-archive-delete: Attachment options. (line 60) 22076* org-attach-auto-tag: Attachment options. (line 64) 22077* org-attach-commands: Attachment options. (line 85) 22078* org-attach-dir-relative: Attachment options. (line 13) 22079* org-attach-expert: Attachment options. (line 88) 22080* org-attach-id-dir: Attachment options. (line 9) 22081* org-attach-id-to-path-function-list: Attachment options. (line 68) 22082* org-attach-method: Attachment defaults and dispatcher. 22083 (line 25) 22084* org-attach-method <1>: Attachment options. (line 49) 22085* org-attach-preferred-new-method: Attachment options. (line 55) 22086* org-attach-store-link-p: Attachment options. (line 77) 22087* org-attach-use-inheritance: Attachment options. (line 18) 22088* org-babel-default-header-args: Using Header Arguments. 22089 (line 19) 22090* org-babel-default-header-args <1>: Using Header Arguments. 22091 (line 19) 22092* org-babel-inline-result-wrap: Evaluating Code Blocks. 22093 (line 27) 22094* org-babel-load-languages: Languages. (line 35) 22095* org-babel-post-tangle-hook: Extracting Source Code. 22096 (line 122) 22097* org-beamer-environments-default: Frames and Blocks in Beamer. 22098 (line 25) 22099* org-beamer-environments-extra: Frames and Blocks in Beamer. 22100 (line 25) 22101* org-beamer-frame-level: Frames and Blocks in Beamer. 22102 (line 10) 22103* org-beamer-theme: Beamer specific export settings. 22104 (line 11) 22105* org-calc-default-modes: Formula syntax for Calc. 22106 (line 17) 22107* org-capture-bookmark: Using capture. (line 48) 22108* org-capture-last-stored: Using capture. (line 48) 22109* org-capture-templates: Capture templates. (line 11) 22110* org-capture-templates-contexts: Templates in contexts. 22111 (line 6) 22112* org-capture-use-agenda-date: Agenda Commands. (line 345) 22113* org-catch-invisible-edits: Catching invisible edits. 22114 (line 6) 22115* org-clock-auto-clockout-timer: Resolving idle time. (line 91) 22116* org-clock-continuously: Clocking commands. (line 7) 22117* org-clock-continuously <1>: Clocking commands. (line 44) 22118* org-clock-continuously <2>: Resolving idle time. (line 78) 22119* org-clock-display-default-range: The clock table. (line 80) 22120* org-clock-idle-time: Resolving idle time. (line 14) 22121* org-clock-in-prepare-hook: Clocking commands. (line 21) 22122* org-clock-into-drawer: Clocking commands. (line 7) 22123* org-clock-mode-line-total: Clocking commands. (line 21) 22124* org-clock-persist: Clocking Work Time. (line 19) 22125* org-clock-report-include-clocking-task: Agenda Commands. (line 154) 22126* org-clock-x11idle-program-name: Resolving idle time. (line 14) 22127* org-clocktable-defaults: The clock table. (line 39) 22128* org-closed-keep-when-no-todo: Closing items. (line 11) 22129* org-coderef-label-format: Literal Examples. (line 88) 22130* org-columns: Using column view. (line 10) 22131* org-columns-default-format: Using column view. (line 10) 22132* org-columns-default-format <1>: Effort Estimates. (line 35) 22133* org-columns-default-format <2>: Agenda Commands. (line 197) 22134* org-columns-default-format <3>: Agenda Column View. (line 19) 22135* org-columns-default-format-for-agenda: Agenda Column View. (line 19) 22136* org-columns-skip-archived-trees: Internal archiving. (line 33) 22137* org-columns-summary-types: Column attributes. (line 51) 22138* org-complete-tags-always-offer-all-agenda-tags: Setting Tags. 22139 (line 22) 22140* org-confirm-babel-evaluate: Code Evaluation Security. 22141 (line 25) 22142* org-create-file-search-functions: Custom Searches. (line 12) 22143* org-crypt-tag-matcher: Org Crypt. (line 10) 22144* org-ctrl-k-protect-subtree: Headlines. (line 6) 22145* org-cycle-emulate-tab: Global and local cycling. 22146 (line 16) 22147* org-cycle-global-at-bob: Global and local cycling. 22148 (line 31) 22149* org-cycle-include-plain-lists: Plain Lists. (line 70) 22150* org-cycle-open-archived-trees: Internal archiving. (line 13) 22151* org-cycle-separator-lines: Headlines. (line 29) 22152* org-deadline-warning-days: Deadlines and Scheduling. 22153 (line 14) 22154* org-deadline-warning-days <1>: Inserting deadline/schedule. 22155 (line 26) 22156* org-default-notes-file: Setting up capture. (line 8) 22157* org-default-notes-file <1>: Template elements. (line 50) 22158* org-directory: Template elements. (line 50) 22159* org-display-custom-times: Custom time format. (line 6) 22160* org-disputed-keys: Conflicts. (line 27) 22161* org-done, face: Faces for TODO keywords. 22162 (line 6) 22163* org-edit-src-auto-save-idle-delay: Editing Source Code. (line 11) 22164* org-effort-property: Effort Estimates. (line 6) 22165* org-enforce-todo-dependencies: TODO dependencies. (line 6) 22166* org-enforce-todo-dependencies <1>: TODO dependencies. (line 53) 22167* org-entities-user: Special Symbols. (line 16) 22168* org-execute-file-search-functions: Custom Searches. (line 12) 22169* org-export-allow-bind-keywords: Export Settings. (line 210) 22170* org-export-async-init-file: The Export Dispatcher. 22171 (line 42) 22172* org-export-backends: Exporting. (line 33) 22173* org-export-before-parsing-hook: Advanced Export Configuration. 22174 (line 9) 22175* org-export-before-processing-hook: Advanced Export Configuration. 22176 (line 9) 22177* org-export-creator-string: HTML preamble and postamble. 22178 (line 6) 22179* org-export-date-timestamp-format: Export Settings. (line 32) 22180* org-export-default-language: Export Settings. (line 38) 22181* org-export-dispatch-use-expert-ui: The Export Dispatcher. 22182 (line 10) 22183* org-export-exclude-tags: Export Settings. (line 52) 22184* org-export-global-macros: Macro Replacement. (line 6) 22185* org-export-headline-levels: Export Settings. (line 141) 22186* org-export-html-table-tag: Tables in HTML export. 22187 (line 6) 22188* org-export-html-tag-class-prefix: CSS support. (line 6) 22189* org-export-html-todo-kwd-class-prefix: CSS support. (line 6) 22190* org-export-html-use-infojs: JavaScript support. (line 70) 22191* org-export-in-background: The Export Dispatcher. 22192 (line 39) 22193* org-export-initial-scope: The Export Dispatcher. 22194 (line 60) 22195* org-export-odt-convert-capabilities: Advanced topics in ODT export. 22196 (line 22) 22197* org-export-odt-convert-process: Advanced topics in ODT export. 22198 (line 28) 22199* org-export-odt-convert-processes: Advanced topics in ODT export. 22200 (line 17) 22201* org-export-odt-preferred-output-format: ODT export commands. 22202 (line 25) 22203* org-export-odt-schema-dir: Advanced topics in ODT export. 22204 (line 269) 22205* org-export-preserve-breaks: Export Settings. (line 93) 22206* org-export-select-tags: Export Settings. (line 44) 22207* org-export-time-stamp-file: Export Settings. (line 187) 22208* org-export-time-stamp-file <1>: HTML preamble and postamble. 22209 (line 6) 22210* org-export-use-babel: Exporting Code Blocks. 22211 (line 34) 22212* org-export-with-archived-trees: Internal archiving. (line 29) 22213* org-export-with-archived-trees <1>: Export Settings. (line 102) 22214* org-export-with-author: Export Settings. (line 107) 22215* org-export-with-broken-links: Export Settings. (line 111) 22216* org-export-with-clocks: Export Settings. (line 116) 22217* org-export-with-creator: Export Settings. (line 119) 22218* org-export-with-date: Export Settings. (line 127) 22219* org-export-with-drawers: Export Settings. (line 123) 22220* org-export-with-email: Export Settings. (line 134) 22221* org-export-with-emphasize: Export Settings. (line 79) 22222* org-export-with-entities: Export Settings. (line 131) 22223* org-export-with-fixed-width: Export Settings. (line 86) 22224* org-export-with-footnotes: Export Settings. (line 138) 22225* org-export-with-inlinetasks: Export Settings. (line 146) 22226* org-export-with-latex: LaTeX fragments. (line 38) 22227* org-export-with-latex <1>: Export Settings. (line 183) 22228* org-export-with-planning: Export Settings. (line 157) 22229* org-export-with-priority: Export Settings. (line 163) 22230* org-export-with-properties: Export Settings. (line 166) 22231* org-export-with-section-numbers: Export Settings. (line 149) 22232* org-export-with-smart-quotes: Export Settings. (line 73) 22233* org-export-with-special-strings: Export Settings. (line 82) 22234* org-export-with-statistics-cookies: Export Settings. (line 170) 22235* org-export-with-sub-superscripts: Export Settings. (line 97) 22236* org-export-with-tables: Export Settings. (line 202) 22237* org-export-with-tags: Export Settings. (line 174) 22238* org-export-with-tasks: Export Settings. (line 178) 22239* org-export-with-timestamps: Export Settings. (line 89) 22240* org-export-with-title: Export Settings. (line 191) 22241* org-export-with-toc: Export Settings. (line 194) 22242* org-export-with-toc <1>: Table of Contents. (line 6) 22243* org-export-with-todo-keywords: Export Settings. (line 198) 22244* org-expot-creator-string: Export Settings. (line 28) 22245* org-faces-easy-properties: Faces for TODO keywords. 22246 (line 17) 22247* org-fast-tag-selection-include-todo: Fast access to TODO states. 22248 (line 16) 22249* org-fast-tag-selection-single-key: Setting Tags. (line 141) 22250* org-file-apps: Handling Links. (line 106) 22251* org-file-apps <1>: Attachment defaults and dispatcher. 22252 (line 46) 22253* org-fontify-emphasized-text: Emphasis and Monospace. 22254 (line 11) 22255* org-footnote-auto-adjust: Creating Footnotes. (line 60) 22256* org-footnote-auto-adjust <1>: In-buffer Settings. (line 153) 22257* org-footnote-auto-label: Creating Footnotes. (line 32) 22258* org-footnote-auto-label <1>: In-buffer Settings. (line 153) 22259* org-footnote-define-inline: Creating Footnotes. (line 45) 22260* org-footnote-define-inline <1>: In-buffer Settings. (line 153) 22261* org-footnote-section: Headlines. (line 18) 22262* org-footnote-section <1>: Creating Footnotes. (line 45) 22263* org-format-latex-header: LaTeX fragments. (line 6) 22264* org-format-latex-header <1>: Previewing LaTeX fragments. 22265 (line 12) 22266* org-format-latex-options: Previewing LaTeX fragments. 22267 (line 12) 22268* org-global-properties: Property Syntax. (line 80) 22269* org-global-properties <1>: Effort Estimates. (line 35) 22270* org-goto-auto-isearch: Motion. (line 24) 22271* org-goto-interface: Motion. (line 41) 22272* org-group-tags: Tag Hierarchy. (line 86) 22273* org-habit-following-days: Tracking your habits. 22274 (line 91) 22275* org-habit-graph-column: Tracking your habits. 22276 (line 82) 22277* org-habit-preceding-days: Tracking your habits. 22278 (line 87) 22279* org-habit-show-habits-only-for-today: Tracking your habits. 22280 (line 94) 22281* org-hide, face: Hard indentation. (line 21) 22282* org-hide-block-startup: Blocks. (line 6) 22283* org-hide-block-startup <1>: In-buffer Settings. (line 166) 22284* org-hide-leading-stars: Hard indentation. (line 21) 22285* org-hide-leading-stars <1>: In-buffer Settings. (line 129) 22286* org-hide-macro-markers: Macro Replacement. (line 88) 22287* org-hierarchical-checkbox-statistics: Checkboxes. (line 29) 22288* org-hierarchical-todo-statistics: Breaking Down Tasks. (line 25) 22289* org-html-container-element: HTML specific export settings. 22290 (line 19) 22291* org-html-doctype: HTML specific export settings. 22292 (line 16) 22293* org-html-doctype <1>: HTML doctypes. (line 8) 22294* org-html-doctype-alist: HTML doctypes. (line 8) 22295* org-html-head: HTML specific export settings. 22296 (line 35) 22297* org-html-head <1>: CSS support. (line 44) 22298* org-html-head <2>: Bare HTML. (line 9) 22299* org-html-head-extra: HTML specific export settings. 22300 (line 39) 22301* org-html-head-extra <1>: CSS support. (line 44) 22302* org-html-head-extra <2>: Bare HTML. (line 9) 22303* org-html-head-include-default-style: CSS support. (line 52) 22304* org-html-head-include-default-style <1>: Bare HTML. (line 9) 22305* org-html-head-include-scripts: Bare HTML. (line 9) 22306* org-html-html5-elements: HTML doctypes. (line 60) 22307* org-html-html5-fancy: HTML doctypes. (line 25) 22308* org-html-inline-images: Images in HTML export. 22309 (line 9) 22310* org-html-link-home: HTML specific export settings. 22311 (line 23) 22312* org-html-link-org-files-as-html: Links in HTML export. 22313 (line 12) 22314* org-html-link-up: HTML specific export settings. 22315 (line 26) 22316* org-html-mathjax-options: HTML specific export settings. 22317 (line 30) 22318* org-html-mathjax-options~: Math formatting in HTML export. 22319 (line 6) 22320* org-html-mathjax-template: Math formatting in HTML export. 22321 (line 20) 22322* org-html-postamble: HTML preamble and postamble. 22323 (line 6) 22324* org-html-postamble <1>: Bare HTML. (line 9) 22325* org-html-postamble-format: HTML preamble and postamble. 22326 (line 6) 22327* org-html-preamble: HTML preamble and postamble. 22328 (line 6) 22329* org-html-preamble <1>: Bare HTML. (line 9) 22330* org-html-preamble-format: HTML preamble and postamble. 22331 (line 6) 22332* org-html-self-link-headlines: Headlines in HTML export. 22333 (line 10) 22334* org-html-style-default: CSS support. (line 44) 22335* org-html-table-align-individual-fields: Tables in HTML export. 22336 (line 20) 22337* org-html-table-caption-above: Tables in HTML export. 22338 (line 24) 22339* org-html-table-data-tags: Tables in HTML export. 22340 (line 27) 22341* org-html-table-default-attributes: Tables in HTML export. 22342 (line 30) 22343* org-html-table-header-tags: Tables in HTML export. 22344 (line 33) 22345* org-html-table-row-tags: Tables in HTML export. 22346 (line 36) 22347* org-html-table-use-header-tags-for-first-column: Tables in HTML export. 22348 (line 39) 22349* org-html-use-infojs: Bare HTML. (line 9) 22350* org-html-validation-link: HTML preamble and postamble. 22351 (line 6) 22352* org-icalendar-alarm-time: iCalendar Export. (line 20) 22353* org-icalendar-categories: iCalendar Export. (line 20) 22354* org-icalendar-combined-agenda-file: iCalendar Export. (line 47) 22355* org-icalendar-include-body: iCalendar Export. (line 57) 22356* org-icalendar-include-todo: iCalendar Export. (line 11) 22357* org-icalendar-store-UID: iCalendar Export. (line 26) 22358* org-icalendar-use-deadline: iCalendar Export. (line 11) 22359* org-icalendar-use-scheduled: iCalendar Export. (line 11) 22360* org-id-link-to-org-use-id: Handling Links. (line 21) 22361* org-imenu-depth: Cooperation. (line 37) 22362* org-indent-indentation-per-level: Org Indent Mode. (line 11) 22363* org-indent-mode-turns-off-org-adapt-indentation: Org Indent Mode. 22364 (line 15) 22365* org-indent-mode-turns-on-hiding-stars: Org Indent Mode. (line 15) 22366* org-infojs-options: JavaScript support. (line 70) 22367* org-insert-mode-line-in-empty-file: Activation. (line 30) 22368* org-irc-links-to-logs: Handling Links. (line 45) 22369* org-latex-bibtex-compiler: LaTeX/PDF export commands. 22370 (line 25) 22371* org-latex-classes: LaTeX specific export settings. 22372 (line 32) 22373* org-latex-classes <1>: LaTeX specific export settings. 22374 (line 49) 22375* org-latex-classes <2>: LaTeX header and sectioning. 22376 (line 13) 22377* org-latex-compiler: LaTeX/PDF export commands. 22378 (line 25) 22379* org-latex-compiler <1>: LaTeX specific export settings. 22380 (line 44) 22381* org-latex-default-class: LaTeX specific export settings. 22382 (line 32) 22383* org-latex-default-class <1>: LaTeX header and sectioning. 22384 (line 13) 22385* org-latex-default-packages-alist: LaTeX/PDF export commands. 22386 (line 25) 22387* org-latex-default-packages-alist <1>: LaTeX header and sectioning. 22388 (line 13) 22389* org-latex-default-table-environment: Tables in LaTeX export. 22390 (line 23) 22391* org-latex-default-table-mode: Tables in LaTeX export. 22392 (line 12) 22393* org-latex-hyperref-template: LaTeX specific export settings. 22394 (line 11) 22395* org-latex-hyperref-template <1>: LaTeX specific export settings. 22396 (line 54) 22397* org-latex-images-centered: Images in LaTeX export. 22398 (line 60) 22399* org-latex-listings: Literal Examples. (line 31) 22400* org-latex-listings-options: Source blocks in LaTeX export. 22401 (line 25) 22402* org-latex-minted-options: Source blocks in LaTeX export. 22403 (line 25) 22404* org-latex-packages-alist: LaTeX specific export settings. 22405 (line 20) 22406* org-latex-packages-alist <1>: LaTeX header and sectioning. 22407 (line 13) 22408* org-latex-subtitle-format: LaTeX specific export settings. 22409 (line 63) 22410* org-latex-subtitle-separate: LaTeX specific export settings. 22411 (line 63) 22412* org-latex-tables-booktabs: Tables in LaTeX export. 22413 (line 65) 22414* org-latex-tables-centered: Tables in LaTeX export. 22415 (line 65) 22416* org-latex-title-command: LaTeX specific export settings. 22417 (line 11) 22418* org-latex-title-command <1>: LaTeX specific export settings. 22419 (line 54) 22420* org-latex-to-mathml-convert-command: LaTeX math snippets. (line 20) 22421* org-latex-to-mathml-jar-file: LaTeX math snippets. (line 20) 22422* org-link-abbrev-alist: Link Abbreviations. (line 12) 22423* org-link-abbrev-alist <1>: In-buffer Settings. (line 38) 22424* org-link-elisp-confirm-function: Code Evaluation Security. 22425 (line 52) 22426* org-link-email-description-format: Handling Links. (line 31) 22427* org-link-frame-setup: Handling Links. (line 121) 22428* org-link-from-user-regexp: Template expansion. (line 104) 22429* org-link-keep-stored-after-insertion: Handling Links. (line 69) 22430* org-link-parameters: Adding Hyperlink Types. 22431 (line 74) 22432* org-link-search-must-match-exact-headline: Internal Links. (line 31) 22433* org-link-shell-confirm-function: Code Evaluation Security. 22434 (line 49) 22435* org-link-use-indirect-buffer-for-internals: Handling Links. (line 135) 22436* org-list-automatic-rules: Plain Lists. (line 63) 22437* org-list-automatic-rules <1>: Checkboxes. (line 6) 22438* org-list-demote-modify-bullet: Plain Lists. (line 57) 22439* org-list-indent-offset: Plain Lists. (line 57) 22440* org-list-use-circular-motion: Plain Lists. (line 95) 22441* org-log-done: Tracking TODO state changes. 22442 (line 28) 22443* org-log-done <1>: Agenda Commands. (line 131) 22444* org-log-done <2>: In-buffer Settings. (line 107) 22445* org-log-into-drawer: Tracking TODO state changes. 22446 (line 6) 22447* org-log-into-drawer <1>: Agenda Commands. (line 295) 22448* org-log-note-clock-out: Clocking commands. (line 36) 22449* org-log-note-clock-out <1>: In-buffer Settings. (line 107) 22450* org-log-redeadline: Inserting deadline/schedule. 22451 (line 10) 22452* org-log-refile: Refile and Copy. (line 13) 22453* org-log-repeat: Repeated tasks. (line 40) 22454* org-log-repeat <1>: In-buffer Settings. (line 107) 22455* org-log-reschedule: Inserting deadline/schedule. 22456 (line 18) 22457* org-log-states-order-reversed: Tracking TODO state changes. 22458 (line 6) 22459* org-loop-over-headlines-in-active-region: Execute commands in the active region. 22460 (line 6) 22461* org-M-RET-may-split-line: Structure Editing. (line 7) 22462* org-M-RET-may-split-line <1>: Plain Lists. (line 83) 22463* org-md-headline-style: Markdown Export. (line 29) 22464* org-mobile-directory: Setting up the staging area. 22465 (line 6) 22466* org-mobile-encryption: Setting up the staging area. 22467 (line 19) 22468* org-mobile-files: Pushing to the mobile application. 22469 (line 6) 22470* org-mobile-inbox-for-pull: Pulling from the mobile application. 22471 (line 12) 22472* org-num-face: Dynamic Headline Numbering. 22473 (line 19) 22474* org-num-format-function: Dynamic Headline Numbering. 22475 (line 19) 22476* org-num-max-level: Dynamic Headline Numbering. 22477 (line 10) 22478* org-num-skip-commented: Dynamic Headline Numbering. 22479 (line 10) 22480* org-num-skip-footnotes: Dynamic Headline Numbering. 22481 (line 16) 22482* org-num-skip-tags: Dynamic Headline Numbering. 22483 (line 10) 22484* org-num-skip-unnumbered: Dynamic Headline Numbering. 22485 (line 10) 22486* org-odd-levels-only: Matching tags and properties. 22487 (line 64) 22488* org-odd-levels-only <1>: Hard indentation. (line 29) 22489* org-odd-levels-only <2>: In-buffer Settings. (line 129) 22490* org-odd-levels-only <3>: Special Agenda Views. 22491 (line 41) 22492* org-odt-category-map-alist: Labels and captions in ODT export. 22493 (line 21) 22494* org-odt-convert-process: Extending ODT export. 22495 (line 12) 22496* org-odt-create-custom-styles-for-srcblocks: Literal examples in ODT export. 22497 (line 16) 22498* org-odt-fontify-srcblocks: Literal examples in ODT export. 22499 (line 13) 22500* org-odt-pixels-per-inch: Images in ODT export. 22501 (line 34) 22502* org-odt-preferred-output-format: ODT export commands. (line 9) 22503* org-odt-preferred-output-format <1>: Extending ODT export. 22504 (line 21) 22505* org-odt-styles-file: ODT specific export settings. 22506 (line 22) 22507* org-odt-styles-file <1>: Applying custom styles. 22508 (line 25) 22509* org-odt-table-styles: Advanced topics in ODT export. 22510 (line 158) 22511* org-odt-table-styles <1>: Advanced topics in ODT export. 22512 (line 226) 22513* org-outline-path-complete-in-steps: Refile and Copy. (line 13) 22514* org-plain-list-ordered-item-terminator: Plain Lists. (line 15) 22515* org-plain-list-ordered-item-terminator <1>: Plain Lists. (line 131) 22516* org-popup-calendar-for-date-prompt: The date/time prompt. 22517 (line 75) 22518* org-pretty-entities: Subscripts and Superscripts. 22519 (line 29) 22520* org-pretty-entities <1>: In-buffer Settings. (line 172) 22521* org-pretty-entities-include-sub-superscripts: Subscripts and Superscripts. 22522 (line 29) 22523* org-preview-latex-default-process: Previewing LaTeX fragments. 22524 (line 6) 22525* org-priority-default: Priorities. (line 46) 22526* org-priority-default <1>: In-buffer Settings. (line 43) 22527* org-priority-faces: Priorities. (line 13) 22528* org-priority-highest: Priorities. (line 46) 22529* org-priority-highest <1>: In-buffer Settings. (line 43) 22530* org-priority-lowest: Priorities. (line 46) 22531* org-priority-lowest <1>: In-buffer Settings. (line 43) 22532* org-priority-start-cycle-with-default: Priorities. (line 41) 22533* org-property-allowed-value-functions: Using the Property API. 22534 (line 63) 22535* org-protocol-default-template-key: The capture protocol. 22536 (line 19) 22537* org-protocol-project-alist: The open-source protocol. 22538 (line 13) 22539* org-publish-project-alist: Project alist. (line 6) 22540* org-publish-project-alist <1>: Publishing options. (line 12) 22541* org-publish-use-timestamps-flag: Triggering Publication. 22542 (line 21) 22543* org-put-time-stamp-overlays: In-buffer Settings. (line 141) 22544* org-read-date-display-live: The date/time prompt. 22545 (line 95) 22546* org-read-date-force-compatible-dates: The date/time prompt. 22547 (line 60) 22548* org-read-date-prefer-future: The date/time prompt. 22549 (line 6) 22550* org-refile-allow-creating-parent-nodes: Refile and Copy. (line 13) 22551* org-refile-keep: Refile and Copy. (line 41) 22552* org-refile-targets: Refile and Copy. (line 13) 22553* org-refile-use-cache: Refile and Copy. (line 46) 22554* org-refile-use-outline-path: Refile and Copy. (line 13) 22555* org-remove-highlights-with-change: Sparse Trees. (line 20) 22556* org-remove-highlights-with-change <1>: Clocking commands. (line 84) 22557* org-replace-disputed-keys: Conflicts. (line 17) 22558* org-return-follows-link: Handling Links. (line 127) 22559* org-reverse-note-order: Refile and Copy. (line 13) 22560* org-scheduled-delay-days: Deadlines and Scheduling. 22561 (line 42) 22562* org-show-context-detail: Sparse Trees. (line 6) 22563* org-sort-agenda-noeffort-is-high: Filtering/limiting agenda items. 22564 (line 56) 22565* org-sparse-tree-open-archived-trees: Internal archiving. (line 19) 22566* org-special-ctrl-a/e: Headlines. (line 6) 22567* org-special-ctrl-k: Headlines. (line 6) 22568* org-speed-commands-user: Speed Keys. (line 18) 22569* org-src-ask-before-returning-to-edit-buffer: Editing Source Code. 22570 (line 40) 22571* org-src-block-faces: Editing Source Code. (line 43) 22572* org-src-fontify-natively: Editing Source Code. (line 43) 22573* org-src-lang-modes: Editing Source Code. (line 22) 22574* org-src-preserve-indentation: Editing Source Code. (line 32) 22575* org-src-window-setup: Editing Source Code. (line 28) 22576* org-startup-align-all-tables: Column Width and Alignment. 22577 (line 19) 22578* org-startup-align-all-tables <1>: In-buffer Settings. (line 89) 22579* org-startup-folded: Initial visibility. (line 6) 22580* org-startup-folded <1>: In-buffer Settings. (line 67) 22581* org-startup-folded <2>: Speeding Up Your Agendas. 22582 (line 19) 22583* org-startup-indented: Org Indent Mode. (line 22) 22584* org-startup-indented <1>: In-buffer Settings. (line 77) 22585* org-startup-numerated: Dynamic Headline Numbering. 22586 (line 22) 22587* org-startup-numerated <1>: In-buffer Settings. (line 83) 22588* org-startup-shrink-all-tables: Column Width and Alignment. 22589 (line 64) 22590* org-startup-shrink-all-tables <1>: In-buffer Settings. (line 96) 22591* org-startup-with-inline-images: Images. (line 24) 22592* org-startup-with-inline-images <1>: In-buffer Settings. (line 100) 22593* org-startup-with-latex-preview: Previewing LaTeX fragments. 22594 (line 28) 22595* org-store-link-props: Template expansion. (line 102) 22596* org-structure-template-alist: Structure Templates. (line 17) 22597* org-stuck-projects: Stuck projects. (line 17) 22598* org-support-shift-select: Plain Lists. (line 95) 22599* org-support-shift-select <1>: Plain Lists. (line 154) 22600* org-support-shift-select <2>: Conflicts. (line 6) 22601* org-table-automatic-realign: Column Width and Alignment. 22602 (line 10) 22603* org-table-copy-increment: Built-in Table Editor. 22604 (line 186) 22605* org-table-current-column: References. (line 90) 22606* org-table-current-dline: References. (line 90) 22607* org-table-duration-custom-format: Durations and time values. 22608 (line 6) 22609* org-table-export-default-format: Built-in Table Editor. 22610 (line 226) 22611* org-table-formula: In-buffer Settings. (line 28) 22612* org-table-formula-constants: References. (line 114) 22613* org-table-formula-constants <1>: In-buffer Settings. (line 28) 22614* org-table-formula-constants <2>: Cooperation. (line 14) 22615* org-table-header-line-p: Built-in Table Editor. 22616 (line 237) 22617* org-table-use-standard-references: Editing and debugging formulas. 22618 (line 6) 22619* org-tag-alist: Setting Tags. (line 22) 22620* org-tag-alist <1>: In-buffer Settings. (line 179) 22621* org-tag-faces: Tags. (line 10) 22622* org-tag-persistent-alist: Setting Tags. (line 37) 22623* org-tags-column: Setting Tags. (line 11) 22624* org-tags-exclude-from-inheritance: Tag Inheritance. (line 22) 22625* org-tags-match-list-sublevels: Tag Inheritance. (line 26) 22626* org-tags-match-list-sublevels <1>: Tag Searches. (line 19) 22627* org-tags-match-list-sublevels <2>: Property Searches. (line 18) 22628* org-tags-match-list-sublevels <3>: Matching tags and properties. 22629 (line 21) 22630* org-tempo-keywords-alist: Structure Templates. (line 21) 22631* org-texinfo-classes: Texinfo file header. (line 19) 22632* org-texinfo-classes <1>: Headings and sectioning structure. 22633 (line 6) 22634* org-texinfo-coding-system: Texinfo file header. (line 11) 22635* org-texinfo-default-class: Texinfo specific export settings. 22636 (line 20) 22637* org-texinfo-default-class <1>: Headings and sectioning structure. 22638 (line 6) 22639* org-texinfo-info-process: Texinfo export commands. 22640 (line 11) 22641* org-texinfo-table-default-markup: Plain lists in Texinfo export. 22642 (line 12) 22643* org-time-stamp-custom-formats: Custom time format. (line 6) 22644* org-time-stamp-overlay-formats: In-buffer Settings. (line 141) 22645* org-time-stamp-rounding-minutes: Creating Timestamps. (line 16) 22646* org-timer-default-timer: Timers. (line 23) 22647* org-todo, face: Faces for TODO keywords. 22648 (line 6) 22649* org-todo-keyword-faces: Faces for TODO keywords. 22650 (line 6) 22651* org-todo-keywords: TODO Basics. (line 35) 22652* org-todo-keywords <1>: TODO Extensions. (line 6) 22653* org-todo-keywords <2>: Global TODO list. (line 18) 22654* org-todo-keywords <3>: In-buffer Settings. (line 186) 22655* org-todo-repeat-to-state: Repeated tasks. (line 22) 22656* org-todo-state-tags-triggers: TODO Basics. (line 56) 22657* org-track-ordered-property-with-tag: TODO dependencies. (line 38) 22658* org-track-ordered-property-with-tag <1>: Checkboxes. (line 90) 22659* org-treat-insert-todo-heading-as-state-change: Structure Editing. 22660 (line 29) 22661* org-treat-S-cursor-todo-selection-as-state-change: TODO Basics. 22662 (line 28) 22663* org-use-property-inheritance: Property Inheritance. 22664 (line 6) 22665* org-use-property-inheritance <1>: Using Header Arguments. 22666 (line 56) 22667* org-use-property-inheritance <2>: Using the Property API. 22668 (line 19) 22669* org-use-speed-commands: Speed Keys. (line 13) 22670* org-use-sub-superscripts: Subscripts and Superscripts. 22671 (line 13) 22672* org-use-tag-inheritance: Tag Inheritance. (line 22) 22673* org-yank-adjusted-subtrees: Structure Editing. (line 84) 22674* org-yank-folded-subtrees: Structure Editing. (line 84) 22675* parse-time-months: The date/time prompt. 22676 (line 56) 22677* parse-time-weekdays: The date/time prompt. 22678 (line 56) 22679* user-full-name: Export Settings. (line 25) 22680* user-mail-address: Export Settings. (line 35) 22681 22682 22683 22684Tag Table: 22685Node: Top884 22686Node: Introduction22475 22687Node: Summary22937 22688Node: Installation25654 22689Ref: Using Emacs packaging system26284 22690Ref: Downloading Org as an archive26904 22691Ref: Using Org's git repository27562 22692Node: Activation28462 22693Ref: Activation-Footnote-130082 22694Node: Feedback30209 22695Ref: How to create a useful backtrace32979 22696Ref: Feedback-Footnote-134131 22697Node: Conventions34257 22698Ref: TODO keywords tags properties etc34428 22699Ref: Key bindings and commands35313 22700Node: Document Structure35943 22701Node: Headlines37115 22702Ref: Headlines-Footnote-138413 22703Node: Visibility Cycling38692 22704Node: Global and local cycling39082 22705Ref: Global and local cycling-Footnote-141799 22706Ref: Global and local cycling-Footnote-241861 22707Node: Initial visibility42165 22708Ref: Initial visibility-Footnote-143237 22709Node: Catching invisible edits43430 22710Node: Motion43906 22711Node: Structure Editing45370 22712Node: Sparse Trees51830 22713Ref: Sparse Trees-Footnote-154393 22714Ref: Sparse Trees-Footnote-254508 22715Node: Plain Lists54584 22716Ref: Plain Lists-Footnote-162109 22717Ref: Plain Lists-Footnote-262473 22718Ref: Plain Lists-Footnote-362573 22719Ref: Plain Lists-Footnote-462830 22720Ref: Plain Lists-Footnote-563007 22721Ref: Plain Lists-Footnote-663111 22722Ref: Plain Lists-Footnote-763217 22723Node: Drawers63287 22724Ref: Drawers-Footnote-164957 22725Node: Blocks65069 22726Node: Tables65662 22727Node: Built-in Table Editor66345 22728Ref: Creation and conversion68079 22729Ref: Re-aligning and field motion69017 22730Ref: Column and row editing69944 22731Ref: Regions72374 22732Ref: Calculations73773 22733Ref: Miscellaneous (1)74586 22734Ref: Built-in Table Editor-Footnote-177063 22735Node: Column Width and Alignment77171 22736Node: Column Groups80508 22737Node: Orgtbl Mode82075 22738Node: The Spreadsheet82889 22739Node: References84363 22740Ref: Field references84822 22741Ref: Range references87261 22742Ref: Field coordinates in formulas88520 22743Ref: Named references89505 22744Ref: Remote references90476 22745Ref: References-Footnote-191398 22746Ref: References-Footnote-291626 22747Ref: References-Footnote-391729 22748Node: Formula syntax for Calc92054 22749Ref: Formula syntax for Calc-Footnote-197581 22750Node: Formula syntax for Lisp97920 22751Node: Durations and time values99703 22752Node: Field and range formulas101090 22753Node: Column formulas103559 22754Node: Lookup functions105671 22755Node: Editing and debugging formulas107640 22756Ref: Using multiple TBLFM lines112157 22757Ref: Debugging formulas113000 22758Node: Updating the table113424 22759Node: Advanced features114796 22760Ref: Advanced features-Footnote-1119247 22761Node: Org Plot119355 22762Ref: Graphical plots using Gnuplot119556 22763Ref: Plot options120755 22764Ref: ASCII bar plots122528 22765Node: Hyperlinks123778 22766Node: Link Format124642 22767Ref: Link Format-Footnote-1126705 22768Ref: Link Format-Footnote-2126937 22769Node: Internal Links127069 22770Ref: Internal Links-Footnote-1129631 22771Ref: Internal Links-Footnote-2129871 22772Node: Radio Targets130012 22773Node: External Links130729 22774Ref: External Links-Footnote-1136204 22775Node: Handling Links136628 22776Ref: Handling Links-Footnote-1144275 22777Ref: Handling Links-Footnote-2144436 22778Ref: Handling Links-Footnote-3144626 22779Ref: Handling Links-Footnote-4144922 22780Ref: Handling Links-Footnote-5145184 22781Ref: Handling Links-Footnote-6145306 22782Node: Using Links Outside Org145381 22783Node: Link Abbreviations145856 22784Node: Search Options148692 22785Ref: Search Options-Footnote-1150796 22786Node: Custom Searches150877 22787Node: TODO Items151911 22788Ref: TODO Items-Footnote-1153036 22789Node: TODO Basics153150 22790Node: TODO Extensions155785 22791Node: Workflow states156838 22792Ref: Workflow states-Footnote-1158237 22793Node: TODO types158353 22794Ref: TODO types-Footnote-1160172 22795Node: Multiple sets in one file160244 22796Node: Fast access to TODO states162189 22797Ref: Fast access to TODO states-Footnote-1163072 22798Ref: Fast access to TODO states-Footnote-2163179 22799Node: Per-file keywords163481 22800Ref: Per-file keywords-Footnote-1164930 22801Node: Faces for TODO keywords165134 22802Node: TODO dependencies166207 22803Node: Progress Logging168674 22804Node: Closing items169811 22805Ref: Closing items-Footnote-1170811 22806Ref: Closing items-Footnote-2170885 22807Node: Tracking TODO state changes170963 22808Ref: Tracking TODO state changes-Footnote-1174095 22809Ref: Tracking TODO state changes-Footnote-2174157 22810Ref: Tracking TODO state changes-Footnote-3174315 22811Node: Tracking your habits174593 22812Node: Priorities179014 22813Ref: Priorities-Footnote-1181526 22814Node: Breaking Down Tasks181599 22815Ref: Breaking Down Tasks-Footnote-1183640 22816Node: Checkboxes183747 22817Ref: Checkboxes-Footnote-1188890 22818Ref: Checkboxes-Footnote-2189018 22819Ref: Checkboxes-Footnote-3189198 22820Node: Tags189312 22821Node: Tag Inheritance190405 22822Ref: Tag Inheritance-Footnote-1192277 22823Ref: Tag Inheritance-Footnote-2192381 22824Node: Setting Tags192511 22825Ref: Setting Tags-Footnote-1198987 22826Ref: Setting Tags-Footnote-2199165 22827Node: Tag Hierarchy199243 22828Node: Tag Searches202809 22829Node: Properties and Columns204120 22830Node: Property Syntax205508 22831Node: Special Properties210114 22832Node: Property Searches211804 22833Node: Property Inheritance213245 22834Node: Column View215117 22835Node: Defining columns216368 22836Node: Scope of column definitions216753 22837Node: Column attributes217812 22838Ref: Column attributes-Footnote-1222223 22839Ref: Column attributes-Footnote-2222354 22840Ref: Column attributes-Footnote-3222552 22841Node: Using column view222691 22842Ref: Turning column view on or off222857 22843Ref: Editing values223898 22844Ref: Modifying column view on-the-fly225301 22845Node: Capturing column view225673 22846Ref: Capturing column view-Footnote-1229392 22847Node: Dates and Times229529 22848Node: Timestamps230448 22849Ref: Timestamps-Footnote-1232804 22850Ref: Timestamps-Footnote-2233100 22851Node: Creating Timestamps233849 22852Node: The date/time prompt236863 22853Ref: The date/time prompt-Footnote-1241651 22854Ref: The date/time prompt-Footnote-2241822 22855Ref: The date/time prompt-Footnote-3241933 22856Ref: The date/time prompt-Footnote-4242188 22857Node: Custom time format242286 22858Node: Deadlines and Scheduling244055 22859Ref: Deadlines and Scheduling-Footnote-1247625 22860Node: Inserting deadline/schedule247788 22861Ref: Inserting deadline/schedule-Footnote-1249780 22862Ref: Inserting deadline/schedule-Footnote-2249941 22863Ref: Inserting deadline/schedule-Footnote-3250067 22864Node: Repeated tasks250193 22865Ref: Repeated tasks-Footnote-1254828 22866Ref: Repeated tasks-Footnote-2254911 22867Ref: Repeated tasks-Footnote-3255194 22868Node: Clocking Work Time255416 22869Ref: Clocking Work Time-Footnote-1256621 22870Ref: Clocking Work Time-Footnote-2256774 22871Node: Clocking commands256916 22872Ref: Clocking commands-Footnote-1262021 22873Ref: Clocking commands-Footnote-2262136 22874Ref: Clocking commands-Footnote-3262218 22875Ref: Clocking commands-Footnote-4262281 22876Node: The clock table262364 22877Ref: The clock table-Footnote-1270447 22878Ref: The clock table-Footnote-2270556 22879Ref: The clock table-Footnote-3270654 22880Node: Resolving idle time270780 22881Ref: Resolving idle time (1)270976 22882Ref: Continuous clocking274173 22883Ref: Clocking out automatically after some idle time274679 22884Ref: Resolving idle time-Footnote-1275311 22885Node: Effort Estimates275790 22886Ref: Effort Estimates-Footnote-1278747 22887Node: Timers278858 22888Node: Refiling and Archiving281077 22889Node: Refile and Copy281640 22890Ref: Refile and Copy-Footnote-1284100 22891Node: Archiving284214 22892Node: Moving subtrees284927 22893Node: Internal archiving287053 22894Node: Capture and Attachments289782 22895Node: Capture290587 22896Node: Setting up capture291111 22897Node: Using capture291474 22898Node: Capture templates293872 22899Node: Template elements295911 22900Ref: Template elements-Footnote-1303278 22901Ref: Template elements-Footnote-2303611 22902Ref: Template elements-Footnote-3303798 22903Node: Template expansion303893 22904Ref: Template expansion-Footnote-1307815 22905Ref: Template expansion-Footnote-2307906 22906Ref: Template expansion-Footnote-3308096 22907Node: Templates in contexts308195 22908Node: Attachments309036 22909Node: Attachment defaults and dispatcher310066 22910Ref: Attachment defaults and dispatcher-Footnote-1313416 22911Node: Attachment options313567 22912Node: Attachment links317586 22913Node: Automatic version-control with Git318225 22914Node: Attach from Dired318740 22915Node: RSS Feeds320104 22916Node: Agenda Views321554 22917Node: Agenda Files323961 22918Ref: Agenda Files-Footnote-1326872 22919Ref: Agenda Files-Footnote-2327016 22920Node: Agenda Dispatcher327214 22921Ref: Agenda Dispatcher-Footnote-1330094 22922Ref: Agenda Dispatcher-Footnote-2330192 22923Node: Built-in Agenda Views330298 22924Node: Weekly/daily agenda330895 22925Ref: Calendar/Diary integration332235 22926Ref: Anniversaries from BBDB334311 22927Ref: Appointment reminders336102 22928Ref: Weekly/daily agenda-Footnote-1336652 22929Ref: Weekly/daily agenda-Footnote-2336896 22930Node: Global TODO list337116 22931Node: Matching tags and properties339966 22932Node: Search view347039 22933Node: Stuck projects348686 22934Node: Presentation and Sorting350823 22935Node: Categories351800 22936Node: Time-of-day specifications352546 22937Ref: Time-of-day specifications-Footnote-1354537 22938Node: Sorting of agenda items354660 22939Node: Filtering/limiting agenda items356278 22940Ref: Filtering in the agenda356983 22941Ref: Computed tag filtering361078 22942Ref: Setting limits for the agenda362572 22943Ref: Filtering/limiting agenda items-Footnote-1364121 22944Node: Agenda Commands364673 22945Ref: Motion (1)365406 22946Ref: View/Go to Org file365609 22947Ref: Change display367115 22948Ref: Remote editing374625 22949Ref: Bulk remote editing selected entries379978 22950Ref: Calendar commands383073 22951Ref: Quit and exit384954 22952Ref: Agenda Commands-Footnote-1385316 22953Ref: Agenda Commands-Footnote-2385392 22954Ref: Agenda Commands-Footnote-3385496 22955Node: Custom Agenda Views385583 22956Node: Storing searches386235 22957Ref: Storing searches-Footnote-1389187 22958Ref: Storing searches-Footnote-2389304 22959Node: Block agenda389551 22960Node: Setting options390880 22961Node: Exporting Agenda Views394494 22962Ref: Exporting Agenda Views-Footnote-1399033 22963Ref: Exporting Agenda Views-Footnote-2399221 22964Ref: Exporting Agenda Views-Footnote-3399371 22965Ref: Exporting Agenda Views-Footnote-4399558 22966Node: Agenda Column View399640 22967Node: Markup for Rich Contents402988 22968Node: Paragraphs404286 22969Node: Emphasis and Monospace405421 22970Node: Subscripts and Superscripts406072 22971Node: Special Symbols407690 22972Ref: Special Symbols-Footnote-1409603 22973Ref: Special Symbols-Footnote-2409768 22974Node: Embedded LaTeX409865 22975Ref: Embedded LaTeX-Footnote-1410714 22976Node: LaTeX fragments410910 22977Ref: LaTeX fragments-Footnote-1413066 22978Node: Previewing LaTeX fragments413259 22979Ref: Previewing LaTeX fragments-Footnote-1414742 22980Node: CDLaTeX mode414990 22981Ref: CDLaTeX mode-Footnote-1417720 22982Node: Literal Examples417867 22983Ref: Literal Examples-Footnote-1422978 22984Ref: Literal Examples-Footnote-2423348 22985Ref: Literal Examples-Footnote-3423526 22986Ref: Literal Examples-Footnote-4423711 22987Node: Images423809 22988Ref: Images-Footnote-1424896 22989Ref: Images-Footnote-2425019 22990Node: Captions425180 22991Node: Horizontal Rules425880 22992Node: Creating Footnotes426136 22993Ref: Creating Footnotes-Footnote-1429265 22994Ref: Creating Footnotes-Footnote-2429371 22995Node: Exporting429478 22996Node: The Export Dispatcher432248 22997Node: Export Settings434966 22998Ref: Export Settings-Footnote-1443065 22999Ref: Export Settings-Footnote-2443177 23000Ref: Export Settings-Footnote-3443278 23001Node: Table of Contents443308 23002Ref: Table of Contents-Footnote-1445982 23003Node: Include Files446149 23004Ref: Include Files-Footnote-1449086 23005Node: Macro Replacement449264 23006Ref: Macro Replacement-Footnote-1453144 23007Node: Comment Lines453361 23008Ref: Comment Lines-Footnote-1454224 23009Node: ASCII/Latin-1/UTF-8 export454328 23010Ref: ASCII export commands455182 23011Ref: ASCII specific export settings455715 23012Ref: Header and sectioning structure456159 23013Ref: Quoting ASCII text456433 23014Ref: ASCII specific attributes456805 23015Ref: ASCII special blocks457082 23016Node: Beamer Export457429 23017Node: Beamer export commands458179 23018Node: Beamer specific export settings458884 23019Node: Frames and Blocks in Beamer460789 23020Ref: Frames and Blocks in Beamer-Footnote-1464161 23021Node: Beamer specific syntax464320 23022Node: Editing support466299 23023Node: A Beamer example466770 23024Node: HTML Export468024 23025Node: HTML export commands469134 23026Node: HTML specific export settings469685 23027Node: HTML doctypes471779 23028Node: HTML preamble and postamble473960 23029Node: Quoting HTML tags475155 23030Node: Headlines in HTML export475854 23031Node: Links in HTML export476449 23032Node: Tables in HTML export477919 23033Node: Images in HTML export479376 23034Node: Math formatting in HTML export480866 23035Ref: Math formatting in HTML export-Footnote-1482406 23036Ref: Math formatting in HTML export-Footnote-2482530 23037Ref: Math formatting in HTML export-Footnote-3482791 23038Node: Text areas in HTML export482963 23039Node: CSS support484108 23040Ref: CSS support-Footnote-1487760 23041Node: JavaScript support487940 23042Node: LaTeX Export491127 23043Node: LaTeX/PDF export commands492905 23044Ref: LaTeX/PDF export commands-Footnote-1494408 23045Node: LaTeX specific export settings494610 23046Node: LaTeX header and sectioning497842 23047Node: Quoting LaTeX code499959 23048Node: Tables in LaTeX export500755 23049Node: Images in LaTeX export505173 23050Node: Plain lists in LaTeX export507776 23051Node: Source blocks in LaTeX export508796 23052Node: Example blocks in LaTeX export510226 23053Node: Special blocks in LaTeX export510952 23054Node: Horizontal rules in LaTeX export512215 23055Node: Markdown Export512615 23056Ref: Markdown export commands513082 23057Ref: Header and sectioning structure (1)513519 23058Node: OpenDocument Text Export513936 23059Ref: OpenDocument Text Export-Footnote-1515042 23060Node: Pre-requisites for ODT export515191 23061Node: ODT export commands515569 23062Node: ODT specific export settings516750 23063Node: Extending ODT export517801 23064Ref: Automatically exporting to other formats518612 23065Ref: Converting between document formats519038 23066Node: Applying custom styles519580 23067Ref: Applying custom styles the easy way520112 23068Ref: Using third-party styles and templates521070 23069Node: Links in ODT export521367 23070Node: Tables in ODT export522029 23071Node: Images in ODT export524039 23072Ref: Embedding images524243 23073Ref: Embedding clickable images524560 23074Ref: Sizing and scaling of embedded images524894 23075Ref: Anchoring of images526578 23076Node: Math formatting in ODT export526900 23077Node: LaTeX math snippets527329 23078Ref: LaTeX math snippets-Footnote-1529582 23079Ref: LaTeX math snippets-Footnote-2529658 23080Node: MathML and OpenDocument formula files529703 23081Node: Labels and captions in ODT export530211 23082Node: Literal examples in ODT export531487 23083Node: Advanced topics in ODT export532328 23084Ref: Configuring a document converter532638 23085Ref: Working with OpenDocument style files533579 23086Ref: x-orgodtstyles-xml534045 23087Ref: x-orgodtcontenttemplate-xml534387 23088Ref: x-overriding-factory-styles535031 23089Ref: Creating one-off styles536275 23090Ref: Customizing tables in ODT export538279 23091Ref: Validating OpenDocument XML543139 23092Ref: Advanced topics in ODT export-Footnote-1543936 23093Ref: Advanced topics in ODT export-Footnote-2544040 23094Ref: Advanced topics in ODT export-Footnote-3544133 23095Node: Org Export544481 23096Ref: Org export commands544837 23097Node: Texinfo Export545143 23098Node: Texinfo export commands546126 23099Node: Texinfo specific export settings546751 23100Node: Texinfo file header547904 23101Node: Texinfo title and copyright page548887 23102Node: Info directory file550251 23103Node: Headings and sectioning structure550976 23104Node: Indices553006 23105Node: Quoting Texinfo code554035 23106Node: Plain lists in Texinfo export554533 23107Node: Tables in Texinfo export556259 23108Node: Images in Texinfo export556755 23109Node: Quotations in Texinfo export557393 23110Node: Special blocks in Texinfo export558346 23111Node: A Texinfo example558999 23112Node: iCalendar Export561101 23113Node: Other Built-in Back-ends565390 23114Node: Advanced Export Configuration566022 23115Ref: Hooks566234 23116Ref: Filters567157 23117Ref: Defining filters for individual files569666 23118Ref: Extending an existing back-end570472 23119Node: Export in Foreign Buffers572712 23120Node: Bare HTML573953 23121Node: Publishing574495 23122Node: Configuration575378 23123Node: Project alist576160 23124Node: Sources and destinations577302 23125Node: Selecting files578620 23126Node: Publishing action579575 23127Ref: Publishing action-Footnote-1581404 23128Node: Publishing options581567 23129Ref: Generic properties582319 23130Ref: ASCII specific properties584206 23131Ref: Beamer specific properties585806 23132Ref: HTML specific properties586371 23133Ref: LaTeX specific properties590857 23134Ref: Markdown specific properties593781 23135Ref: ODT specific properties594019 23136Ref: Texinfo specific properties594951 23137Node: Publishing links596298 23138Node: Site map597678 23139Node: Generating an index600995 23140Node: Uploading Files601787 23141Node: Sample Configuration603570 23142Node: Simple example604068 23143Node: Complex example604721 23144Node: Triggering Publication606770 23145Node: Working with Source Code607796 23146Node: Features Overview610128 23147Node: Structure of Code Blocks612882 23148Node: Using Header Arguments615392 23149Ref: System-wide header arguments616119 23150Ref: Header arguments in Org mode properties617042 23151Ref: Code block specific header arguments618870 23152Ref: Header arguments in function calls620369 23153Node: Environment of a Code Block621043 23154Ref: Passing arguments621257 23155Ref: Using sessions629127 23156Ref: Choosing a working directory630526 23157Ref: Inserting headers and footers632380 23158Node: Evaluating Code Blocks632890 23159Ref: How to evaluate source code633345 23160Ref: Limit code block evaluation636247 23161Ref: Cache results of evaluation637107 23162Ref: Evaluating Code Blocks-Footnote-1639619 23163Ref: Evaluating Code Blocks-Footnote-2639753 23164Node: Results of Evaluation639911 23165Ref: Collection640718 23166Ref: Type642179 23167Ref: Format645821 23168Ref: Handling648122 23169Ref: Post-processing648837 23170Ref: Results of Evaluation-Footnote-1650587 23171Node: Exporting Code Blocks650745 23172Node: Extracting Source Code653098 23173Ref: Header arguments654079 23174Ref: Functions657620 23175Ref: Hooks (1)657871 23176Ref: Jumping between code and Org658106 23177Node: Languages658616 23178Ref: Languages-Footnote-1661317 23179Ref: Languages-Footnote-2661475 23180Node: Editing Source Code661629 23181Node: Noweb Reference Syntax664359 23182Ref: Noweb Reference Syntax-Footnote-1670507 23183Node: Library of Babel670597 23184Node: Key bindings and Useful Functions671315 23185Node: Batch Execution673740 23186Node: Miscellaneous674523 23187Node: Completion675857 23188Node: Structure Templates677782 23189Ref: Structure Templates-Footnote-1679532 23190Node: Speed Keys679624 23191Node: Clean View680801 23192Node: Org Indent Mode682003 23193Ref: Org Indent Mode-Footnote-1683209 23194Node: Hard indentation683433 23195Ref: Hard indentation-Footnote-1684916 23196Ref: Hard indentation-Footnote-2685022 23197Node: Execute commands in the active region685166 23198Node: Dynamic Headline Numbering686178 23199Node: The Very Busy C-c C-c Key687344 23200Node: In-buffer Settings689332 23201Ref: In-buffer Settings-Footnote-1698233 23202Node: Org Syntax698431 23203Node: Documentation Access700086 23204Node: Escape Character700507 23205Node: Code Evaluation Security701368 23206Node: Interaction704235 23207Node: Cooperation704658 23208Node: Conflicts707550 23209Node: TTY Keys712152 23210Node: Protocols713754 23211Node: The store-link protocol715213 23212Node: The capture protocol716061 23213Node: The open-source protocol717225 23214Node: Org Crypt720462 23215Node: Org Mobile721999 23216Node: Setting up the staging area723355 23217Ref: Setting up the staging area-Footnote-1724595 23218Ref: Setting up the staging area-Footnote-2724802 23219Node: Pushing to the mobile application724974 23220Ref: Pushing to the mobile application-Footnote-1725985 23221Ref: Pushing to the mobile application-Footnote-2726076 23222Ref: Pushing to the mobile application-Footnote-3726443 23223Node: Pulling from the mobile application726519 23224Ref: Pulling from the mobile application-Footnote-1728832 23225Node: Hacking728885 23226Node: Hooks (2)729836 23227Node: Add-on Packages730164 23228Node: Adding Hyperlink Types730707 23229Node: Adding Export Back-ends734302 23230Node: Tables in Arbitrary Syntax735559 23231Node: Radio tables736828 23232Node: A LaTeX example738965 23233Ref: A LaTeX example-Footnote-1742817 23234Ref: A LaTeX example-Footnote-2742860 23235Ref: A LaTeX example-Footnote-3743021 23236Node: Translator functions743473 23237Node: Dynamic Blocks745649 23238Node: Special Agenda Views747895 23239Ref: Special Agenda Views-Footnote-1751606 23240Ref: Special Agenda Views-Footnote-2751813 23241Node: Speeding Up Your Agendas751945 23242Node: Extracting Agenda Information753004 23243Node: Using the Property API756809 23244Node: Using the Mapping API760164 23245Node: History and Acknowledgments764200 23246Ref: From Carsten764398 23247Ref: From Bastien767829 23248Ref: List of Contributions769961 23249Node: GNU Free Documentation License778165 23250Ref: ADDENDUM How to use this License for your documents802121 23251Node: Main Index803514 23252Node: Key Index900184 23253Node: Command and Function Index956831 23254Node: Variable Index1003731 23255 23256End Tag Table 23257 23258 23259Local Variables: 23260coding: utf-8 23261End: 23262