mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-11-22 07:09:47 +00:00
Release 4.77
This commit is contained in:
parent
388f9e690a
commit
a096d004d7
441
org
441
org
@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY
|
||||
* Org Mode: (org). Outline-based notes management and organizer
|
||||
END-INFO-DIR-ENTRY
|
||||
|
||||
This manual is for Org-mode (version 4.76).
|
||||
This manual is for Org-mode (version 4.77).
|
||||
|
||||
Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation
|
||||
|
||||
@ -27,7 +27,7 @@ File: org, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
|
||||
Org Mode Manual
|
||||
***************
|
||||
|
||||
This manual is for Org-mode (version 4.76).
|
||||
This manual is for Org-mode (version 4.77).
|
||||
|
||||
Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation
|
||||
|
||||
@ -91,6 +91,7 @@ Tables
|
||||
|
||||
* Built-in table editor:: Simple tables
|
||||
* Narrow columns:: Stop wasting space in tables
|
||||
* Column groups:: Grouping to trigger vertical lines
|
||||
* orgtbl-mode:: The table editor as minor mode
|
||||
* The spreadsheet:: The table editor has spreadsheet capabilities.
|
||||
|
||||
@ -982,6 +983,7 @@ Emacs `calc' package.
|
||||
|
||||
* Built-in table editor:: Simple tables
|
||||
* Narrow columns:: Stop wasting space in tables
|
||||
* Column groups:: Grouping to trigger vertical lines
|
||||
* orgtbl-mode:: The table editor as minor mode
|
||||
* The spreadsheet:: The table editor has spreadsheet capabilities.
|
||||
|
||||
@ -1180,7 +1182,7 @@ Then the only table command that still works is `C-c C-c' to do a
|
||||
manual re-align.
|
||||
|
||||
|
||||
File: org, Node: Narrow columns, Next: orgtbl-mode, Prev: Built-in table editor, Up: Tables
|
||||
File: org, Node: Narrow columns, Next: Column groups, Prev: Built-in table editor, Up: Tables
|
||||
|
||||
3.2 Narrow columns
|
||||
==================
|
||||
@ -1223,9 +1225,42 @@ a per-file basis with:
|
||||
(1) This feature does not work on XEmacs.
|
||||
|
||||
|
||||
File: org, Node: orgtbl-mode, Next: The spreadsheet, Prev: Narrow columns, Up: Tables
|
||||
File: org, Node: Column groups, Next: orgtbl-mode, Prev: Narrow columns, Up: Tables
|
||||
|
||||
3.3 The Orgtbl minor mode
|
||||
3.3 Column groups
|
||||
=================
|
||||
|
||||
When Org-mode exports tables, it does so by default without vertical
|
||||
lines because that is visually more satisfying in general. Occasionally
|
||||
however, vertical lines can be useful to structure a table into groups
|
||||
of columns, much like horizontal lines can do for groups of rows. In
|
||||
order to specify column groups, you can use a special row where the
|
||||
first field contains only `/'. The further fields can either contain
|
||||
`<' to indicate that this column should start a group, `>' to indicate
|
||||
the end of a column, or `<>' to make a column a group of its own.
|
||||
Boundaries between colum groups will upon export be marked with
|
||||
vertical lines. Here is an example:
|
||||
|
||||
| | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
|
||||
|---+----+-----+-----+-----+---------+------------|
|
||||
| / | <> | < | | > | < | > |
|
||||
| # | 1 | 1 | 1 | 1 | 1 | 1 |
|
||||
| # | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 |
|
||||
| # | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 |
|
||||
|---+----+-----+-----+-----+---------+------------|
|
||||
#+TBLFM: $3=$2^2::$4=$2^3::$5=$2^4::$6=sqrt($2)::$7=sqrt(sqrt(($2))
|
||||
|
||||
It is also sufficient to just insert the colum group starters after
|
||||
every vertical line you'd like to have:
|
||||
|
||||
| N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
|
||||
|----+-----+-----+-----+---------+------------|
|
||||
| / | < | | | < | |
|
||||
|
||||
|
||||
File: org, Node: orgtbl-mode, Next: The spreadsheet, Prev: Column groups, Up: Tables
|
||||
|
||||
3.4 The Orgtbl minor mode
|
||||
=========================
|
||||
|
||||
If you like the intuitive way the Org-mode table editor works, you
|
||||
@ -1245,7 +1280,7 @@ Orgtbl-mode, including spreadsheet capabilities. For details, see
|
||||
|
||||
File: org, Node: The spreadsheet, Prev: orgtbl-mode, Up: Tables
|
||||
|
||||
3.4 The spreadsheet
|
||||
3.5 The spreadsheet
|
||||
===================
|
||||
|
||||
The table editor makes use of the Emacs `calc' package to implement
|
||||
@ -1270,7 +1305,7 @@ to each relevant field.
|
||||
|
||||
File: org, Node: References, Next: Formula syntax for Calc, Prev: The spreadsheet, Up: The spreadsheet
|
||||
|
||||
3.4.1 References
|
||||
3.5.1 References
|
||||
----------------
|
||||
|
||||
To compute fields in the table from other fields, formulas must
|
||||
@ -1370,7 +1405,7 @@ current buffer.
|
||||
|
||||
File: org, Node: Formula syntax for Calc, Next: Formula syntax for Lisp, Prev: References, Up: The spreadsheet
|
||||
|
||||
3.4.2 Formula syntax for Calc
|
||||
3.5.2 Formula syntax for Calc
|
||||
-----------------------------
|
||||
|
||||
A formula can be any algebraic expression understood by the Emacs
|
||||
@ -1419,7 +1454,7 @@ the final result. A few examples:
|
||||
|
||||
File: org, Node: Formula syntax for Lisp, Next: Field formulas, Prev: Formula syntax for Calc, Up: The spreadsheet
|
||||
|
||||
3.4.3 Emacs Lisp forms as formulas
|
||||
3.5.3 Emacs Lisp forms as formulas
|
||||
----------------------------------
|
||||
|
||||
It is also possible to write a formula in Emacs Lisp; this can be useful
|
||||
@ -1445,7 +1480,7 @@ in lisp.
|
||||
|
||||
File: org, Node: Field formulas, Next: Column formulas, Prev: Formula syntax for Lisp, Up: The spreadsheet
|
||||
|
||||
3.4.4 Field formulas
|
||||
3.5.4 Field formulas
|
||||
--------------------
|
||||
|
||||
To assign a formula to a particular field, type it directly into the
|
||||
@ -1474,7 +1509,7 @@ following command
|
||||
|
||||
File: org, Node: Column formulas, Next: Editing and debugging formulas, Prev: Field formulas, Up: The spreadsheet
|
||||
|
||||
3.4.5 Column formulas
|
||||
3.5.5 Column formulas
|
||||
---------------------
|
||||
|
||||
Often in a table, the same formula should be used for all fields in a
|
||||
@ -1508,7 +1543,7 @@ following command:
|
||||
|
||||
File: org, Node: Editing and debugging formulas, Next: Updating the table, Prev: Column formulas, Up: The spreadsheet
|
||||
|
||||
3.4.6 Editing and Debugging formulas
|
||||
3.5.6 Editing and Debugging formulas
|
||||
------------------------------------
|
||||
|
||||
You can edit individual formulas in the minibuffer or directly in the
|
||||
@ -1612,7 +1647,7 @@ information will be displayed.
|
||||
|
||||
File: org, Node: Updating the table, Next: Advanced features, Prev: Editing and debugging formulas, Up: The spreadsheet
|
||||
|
||||
3.4.7 Updating the Table
|
||||
3.5.7 Updating the Table
|
||||
------------------------
|
||||
|
||||
Recalculation of a table is normally not automatic, but needs to be
|
||||
@ -1641,7 +1676,7 @@ the following commands:
|
||||
|
||||
File: org, Node: Advanced features, Prev: Updating the table, Up: The spreadsheet
|
||||
|
||||
3.4.8 Advanced features
|
||||
3.5.8 Advanced features
|
||||
-----------------------
|
||||
|
||||
If you want the recalculation of fields to happen automatically, or if
|
||||
@ -6669,6 +6704,7 @@ Index
|
||||
* global TODO list: Global TODO list. (line 6)
|
||||
* global visibility states: Visibility cycling. (line 22)
|
||||
* GNUS links: External links. (line 6)
|
||||
* grouping columns in tables: Column groups. (line 6)
|
||||
* hand-formatted lists: Enhancing text. (line 11)
|
||||
* headline levels: Export options. (line 25)
|
||||
* headline levels, for exporting <1>: Export commands. (line 34)
|
||||
@ -7289,193 +7325,194 @@ Key Index
|
||||
|
||||
Tag Table:
|
||||
Node: Top970
|
||||
Node: Introduction11676
|
||||
Node: Summary12091
|
||||
Node: Installation15100
|
||||
Node: Activation16478
|
||||
Node: Feedback17727
|
||||
Node: Document structure19803
|
||||
Node: Outlines20577
|
||||
Node: Headlines21237
|
||||
Ref: Headlines-Footnote-122245
|
||||
Node: Visibility cycling22344
|
||||
Ref: Visibility cycling-Footnote-124554
|
||||
Ref: Visibility cycling-Footnote-224612
|
||||
Ref: Visibility cycling-Footnote-324662
|
||||
Node: Motion24932
|
||||
Node: Structure editing25886
|
||||
Node: Archiving28712
|
||||
Node: ARCHIVE tag29270
|
||||
Node: Moving subtrees31063
|
||||
Node: Sparse trees32374
|
||||
Ref: Sparse trees-Footnote-134506
|
||||
Ref: Sparse trees-Footnote-234688
|
||||
Node: Plain lists34803
|
||||
Ref: Plain lists-Footnote-138572
|
||||
Ref: Plain lists-Footnote-238930
|
||||
Node: Tables39114
|
||||
Node: Built-in table editor39628
|
||||
Node: Narrow columns46867
|
||||
Ref: Narrow columns-Footnote-148800
|
||||
Node: orgtbl-mode48846
|
||||
Node: The spreadsheet49650
|
||||
Node: References50737
|
||||
Ref: References-Footnote-154866
|
||||
Node: Formula syntax for Calc55155
|
||||
Node: Formula syntax for Lisp57612
|
||||
Node: Field formulas58881
|
||||
Node: Column formulas60189
|
||||
Node: Editing and debugging formulas61788
|
||||
Node: Updating the table65941
|
||||
Node: Advanced features66976
|
||||
Node: Hyperlinks71501
|
||||
Node: Link format72274
|
||||
Node: Internal links73567
|
||||
Ref: Internal links-Footnote-175492
|
||||
Node: Radio targets75624
|
||||
Node: External links76315
|
||||
Node: Handling links78719
|
||||
Ref: Handling links-Footnote-184006
|
||||
Ref: Handling links-Footnote-284243
|
||||
Node: Link abbreviations84317
|
||||
Node: Search options85996
|
||||
Ref: Search options-Footnote-187776
|
||||
Node: Custom searches87857
|
||||
Node: Remember88905
|
||||
Node: Setting up remember89892
|
||||
Node: Remember templates90474
|
||||
Ref: Remember templates-Footnote-193766
|
||||
Node: Storing notes93864
|
||||
Node: TODO items95751
|
||||
Node: TODO basics96734
|
||||
Node: TODO extensions98431
|
||||
Node: Workflow states99250
|
||||
Ref: Workflow states-Footnote-1100425
|
||||
Node: TODO types100518
|
||||
Ref: TODO types-Footnote-1102101
|
||||
Node: Multiple sets in one file102183
|
||||
Node: Per file keywords103794
|
||||
Ref: Per file keywords-Footnote-1105083
|
||||
Node: Priorities105284
|
||||
Node: Breaking down tasks106894
|
||||
Ref: Breaking down tasks-Footnote-1107414
|
||||
Node: Checkboxes107510
|
||||
Node: Timestamps110265
|
||||
Node: Time stamps110706
|
||||
Ref: Time stamps-Footnote-1113011
|
||||
Node: Creating timestamps113127
|
||||
Node: The date/time prompt115201
|
||||
Ref: The date/time prompt-Footnote-1117189
|
||||
Node: Custom time format117295
|
||||
Node: Deadlines and scheduling118843
|
||||
Ref: Deadlines and scheduling-Footnote-1120193
|
||||
Node: Inserting deadline/schedule120348
|
||||
Node: Repeated tasks121286
|
||||
Node: Progress logging122925
|
||||
Node: Closing items123580
|
||||
Ref: Closing items-Footnote-1124514
|
||||
Ref: Closing items-Footnote-2124583
|
||||
Node: Tracking TODO state changes124656
|
||||
Node: Clocking work time125512
|
||||
Ref: Clocking work time-Footnote-1129158
|
||||
Ref: Clocking work time-Footnote-2129236
|
||||
Node: Tags129362
|
||||
Node: Tag inheritance130124
|
||||
Node: Setting tags131061
|
||||
Ref: Setting tags-Footnote-1135584
|
||||
Ref: Setting tags-Footnote-2135696
|
||||
Node: Tag searches135779
|
||||
Node: Agenda views138490
|
||||
Node: Agenda files140435
|
||||
Ref: Agenda files-Footnote-1141401
|
||||
Ref: Agenda files-Footnote-2141550
|
||||
Node: Agenda dispatcher141743
|
||||
Node: Built-in agenda views143434
|
||||
Node: Weekly/Daily agenda144012
|
||||
Node: Global TODO list146953
|
||||
Node: Matching headline tags149225
|
||||
Node: Timeline150296
|
||||
Node: Stuck projects150962
|
||||
Node: Presentation and sorting152813
|
||||
Node: Categories153604
|
||||
Node: Time-of-day specifications154268
|
||||
Node: Sorting of agenda items156239
|
||||
Node: Agenda commands157521
|
||||
Node: Custom agenda views164675
|
||||
Node: Storing searches165394
|
||||
Node: Block agenda167306
|
||||
Node: Setting Options168536
|
||||
Node: Exporting Agenda Views171275
|
||||
Ref: Exporting Agenda Views-Footnote-1175559
|
||||
Ref: Exporting Agenda Views-Footnote-2175616
|
||||
Node: Extracting Agenda Information for other programs175802
|
||||
Node: Embedded LaTeX179928
|
||||
Ref: Embedded LaTeX-Footnote-1181020
|
||||
Node: Math symbols181210
|
||||
Node: Subscripts and Superscripts181975
|
||||
Node: LaTeX fragments182819
|
||||
Ref: LaTeX fragments-Footnote-1185053
|
||||
Node: Processing LaTeX fragments185315
|
||||
Node: CDLaTeX mode186261
|
||||
Ref: CDLaTeX mode-Footnote-1188745
|
||||
Node: Exporting188893
|
||||
Node: ASCII export190207
|
||||
Node: HTML export191497
|
||||
Node: Export commands192116
|
||||
Node: Quoting HTML tags193360
|
||||
Node: Links193990
|
||||
Node: Images194687
|
||||
Ref: Images-Footnote-1195558
|
||||
Node: CSS support195619
|
||||
Ref: CSS support-Footnote-1196938
|
||||
Node: XOXO export197051
|
||||
Node: iCalendar export197490
|
||||
Node: Text interpretation198709
|
||||
Node: Comment lines199300
|
||||
Node: Initial text199695
|
||||
Node: Footnotes201364
|
||||
Node: Enhancing text202179
|
||||
Ref: Enhancing text-Footnote-1204038
|
||||
Node: Export options204128
|
||||
Node: Publishing206021
|
||||
Ref: Publishing-Footnote-1206817
|
||||
Node: Configuration207013
|
||||
Node: Project alist207731
|
||||
Node: Sources and destinations208797
|
||||
Node: Selecting files209527
|
||||
Node: Publishing action210275
|
||||
Node: Publishing options211508
|
||||
Node: Publishing links213660
|
||||
Node: Project page index215173
|
||||
Node: Sample configuration215951
|
||||
Node: Simple example216443
|
||||
Node: Complex example217116
|
||||
Node: Triggering publication219192
|
||||
Node: Miscellaneous219877
|
||||
Node: Completion220511
|
||||
Node: Customization221982
|
||||
Node: In-buffer settings222565
|
||||
Node: The very busy C-c C-c key227441
|
||||
Node: Clean view229085
|
||||
Node: TTY keys231662
|
||||
Node: Interaction233272
|
||||
Node: Cooperation233669
|
||||
Node: Conflicts236545
|
||||
Node: Bugs238548
|
||||
Node: Extensions and Hacking240044
|
||||
Node: Extensions240640
|
||||
Node: Tables in arbitrary syntax242587
|
||||
Node: Radio tables243664
|
||||
Node: A LaTeX example246167
|
||||
Ref: A LaTeX example-Footnote-1249813
|
||||
Ref: A LaTeX example-Footnote-2249961
|
||||
Node: Translator functions250396
|
||||
Ref: Translator functions-Footnote-1253505
|
||||
Node: Dynamic blocks253593
|
||||
Node: Special agenda views255565
|
||||
Ref: Special agenda views-Footnote-1257844
|
||||
Node: History and Acknowledgments258104
|
||||
Node: Index264198
|
||||
Node: Key Index296279
|
||||
Node: Introduction11743
|
||||
Node: Summary12158
|
||||
Node: Installation15167
|
||||
Node: Activation16545
|
||||
Node: Feedback17794
|
||||
Node: Document structure19870
|
||||
Node: Outlines20644
|
||||
Node: Headlines21304
|
||||
Ref: Headlines-Footnote-122312
|
||||
Node: Visibility cycling22411
|
||||
Ref: Visibility cycling-Footnote-124621
|
||||
Ref: Visibility cycling-Footnote-224679
|
||||
Ref: Visibility cycling-Footnote-324729
|
||||
Node: Motion24999
|
||||
Node: Structure editing25953
|
||||
Node: Archiving28779
|
||||
Node: ARCHIVE tag29337
|
||||
Node: Moving subtrees31130
|
||||
Node: Sparse trees32441
|
||||
Ref: Sparse trees-Footnote-134573
|
||||
Ref: Sparse trees-Footnote-234755
|
||||
Node: Plain lists34870
|
||||
Ref: Plain lists-Footnote-138639
|
||||
Ref: Plain lists-Footnote-238997
|
||||
Node: Tables39181
|
||||
Node: Built-in table editor39762
|
||||
Node: Narrow columns47001
|
||||
Ref: Narrow columns-Footnote-148936
|
||||
Node: Column groups48982
|
||||
Node: orgtbl-mode50515
|
||||
Node: The spreadsheet51318
|
||||
Node: References52405
|
||||
Ref: References-Footnote-156534
|
||||
Node: Formula syntax for Calc56823
|
||||
Node: Formula syntax for Lisp59280
|
||||
Node: Field formulas60549
|
||||
Node: Column formulas61857
|
||||
Node: Editing and debugging formulas63456
|
||||
Node: Updating the table67609
|
||||
Node: Advanced features68644
|
||||
Node: Hyperlinks73169
|
||||
Node: Link format73942
|
||||
Node: Internal links75235
|
||||
Ref: Internal links-Footnote-177160
|
||||
Node: Radio targets77292
|
||||
Node: External links77983
|
||||
Node: Handling links80387
|
||||
Ref: Handling links-Footnote-185674
|
||||
Ref: Handling links-Footnote-285911
|
||||
Node: Link abbreviations85985
|
||||
Node: Search options87664
|
||||
Ref: Search options-Footnote-189444
|
||||
Node: Custom searches89525
|
||||
Node: Remember90573
|
||||
Node: Setting up remember91560
|
||||
Node: Remember templates92142
|
||||
Ref: Remember templates-Footnote-195434
|
||||
Node: Storing notes95532
|
||||
Node: TODO items97419
|
||||
Node: TODO basics98402
|
||||
Node: TODO extensions100099
|
||||
Node: Workflow states100918
|
||||
Ref: Workflow states-Footnote-1102093
|
||||
Node: TODO types102186
|
||||
Ref: TODO types-Footnote-1103769
|
||||
Node: Multiple sets in one file103851
|
||||
Node: Per file keywords105462
|
||||
Ref: Per file keywords-Footnote-1106751
|
||||
Node: Priorities106952
|
||||
Node: Breaking down tasks108562
|
||||
Ref: Breaking down tasks-Footnote-1109082
|
||||
Node: Checkboxes109178
|
||||
Node: Timestamps111933
|
||||
Node: Time stamps112374
|
||||
Ref: Time stamps-Footnote-1114679
|
||||
Node: Creating timestamps114795
|
||||
Node: The date/time prompt116869
|
||||
Ref: The date/time prompt-Footnote-1118857
|
||||
Node: Custom time format118963
|
||||
Node: Deadlines and scheduling120511
|
||||
Ref: Deadlines and scheduling-Footnote-1121861
|
||||
Node: Inserting deadline/schedule122016
|
||||
Node: Repeated tasks122954
|
||||
Node: Progress logging124593
|
||||
Node: Closing items125248
|
||||
Ref: Closing items-Footnote-1126182
|
||||
Ref: Closing items-Footnote-2126251
|
||||
Node: Tracking TODO state changes126324
|
||||
Node: Clocking work time127180
|
||||
Ref: Clocking work time-Footnote-1130826
|
||||
Ref: Clocking work time-Footnote-2130904
|
||||
Node: Tags131030
|
||||
Node: Tag inheritance131792
|
||||
Node: Setting tags132729
|
||||
Ref: Setting tags-Footnote-1137252
|
||||
Ref: Setting tags-Footnote-2137364
|
||||
Node: Tag searches137447
|
||||
Node: Agenda views140158
|
||||
Node: Agenda files142103
|
||||
Ref: Agenda files-Footnote-1143069
|
||||
Ref: Agenda files-Footnote-2143218
|
||||
Node: Agenda dispatcher143411
|
||||
Node: Built-in agenda views145102
|
||||
Node: Weekly/Daily agenda145680
|
||||
Node: Global TODO list148621
|
||||
Node: Matching headline tags150893
|
||||
Node: Timeline151964
|
||||
Node: Stuck projects152630
|
||||
Node: Presentation and sorting154481
|
||||
Node: Categories155272
|
||||
Node: Time-of-day specifications155936
|
||||
Node: Sorting of agenda items157907
|
||||
Node: Agenda commands159189
|
||||
Node: Custom agenda views166343
|
||||
Node: Storing searches167062
|
||||
Node: Block agenda168974
|
||||
Node: Setting Options170204
|
||||
Node: Exporting Agenda Views172943
|
||||
Ref: Exporting Agenda Views-Footnote-1177227
|
||||
Ref: Exporting Agenda Views-Footnote-2177284
|
||||
Node: Extracting Agenda Information for other programs177470
|
||||
Node: Embedded LaTeX181596
|
||||
Ref: Embedded LaTeX-Footnote-1182688
|
||||
Node: Math symbols182878
|
||||
Node: Subscripts and Superscripts183643
|
||||
Node: LaTeX fragments184487
|
||||
Ref: LaTeX fragments-Footnote-1186721
|
||||
Node: Processing LaTeX fragments186983
|
||||
Node: CDLaTeX mode187929
|
||||
Ref: CDLaTeX mode-Footnote-1190413
|
||||
Node: Exporting190561
|
||||
Node: ASCII export191875
|
||||
Node: HTML export193165
|
||||
Node: Export commands193784
|
||||
Node: Quoting HTML tags195028
|
||||
Node: Links195658
|
||||
Node: Images196355
|
||||
Ref: Images-Footnote-1197226
|
||||
Node: CSS support197287
|
||||
Ref: CSS support-Footnote-1198606
|
||||
Node: XOXO export198719
|
||||
Node: iCalendar export199158
|
||||
Node: Text interpretation200377
|
||||
Node: Comment lines200968
|
||||
Node: Initial text201363
|
||||
Node: Footnotes203032
|
||||
Node: Enhancing text203847
|
||||
Ref: Enhancing text-Footnote-1205706
|
||||
Node: Export options205796
|
||||
Node: Publishing207689
|
||||
Ref: Publishing-Footnote-1208485
|
||||
Node: Configuration208681
|
||||
Node: Project alist209399
|
||||
Node: Sources and destinations210465
|
||||
Node: Selecting files211195
|
||||
Node: Publishing action211943
|
||||
Node: Publishing options213176
|
||||
Node: Publishing links215328
|
||||
Node: Project page index216841
|
||||
Node: Sample configuration217619
|
||||
Node: Simple example218111
|
||||
Node: Complex example218784
|
||||
Node: Triggering publication220860
|
||||
Node: Miscellaneous221545
|
||||
Node: Completion222179
|
||||
Node: Customization223650
|
||||
Node: In-buffer settings224233
|
||||
Node: The very busy C-c C-c key229109
|
||||
Node: Clean view230753
|
||||
Node: TTY keys233330
|
||||
Node: Interaction234940
|
||||
Node: Cooperation235337
|
||||
Node: Conflicts238213
|
||||
Node: Bugs240216
|
||||
Node: Extensions and Hacking241712
|
||||
Node: Extensions242308
|
||||
Node: Tables in arbitrary syntax244255
|
||||
Node: Radio tables245332
|
||||
Node: A LaTeX example247835
|
||||
Ref: A LaTeX example-Footnote-1251481
|
||||
Ref: A LaTeX example-Footnote-2251629
|
||||
Node: Translator functions252064
|
||||
Ref: Translator functions-Footnote-1255173
|
||||
Node: Dynamic blocks255261
|
||||
Node: Special agenda views257233
|
||||
Ref: Special agenda views-Footnote-1259512
|
||||
Node: History and Acknowledgments259772
|
||||
Node: Index265866
|
||||
Node: Key Index298020
|
||||
|
||||
End Tag Table
|
||||
|
286
org.el
286
org.el
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
|
||||
;; Version: 4.76
|
||||
;; Version: 4.77
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -324,7 +324,7 @@ contexts. Valid contexts are
|
||||
(const default))
|
||||
(boolean)))))
|
||||
|
||||
(defcustom org-show-following-heading '((default . t))
|
||||
(defcustom org-show-following-heading '((default . nil))
|
||||
"Non-nil means, show following heading when revealing a location.
|
||||
Org-mode often shows locations in an org-mode file which might have
|
||||
been invisible before. When this is set, the heading following the
|
||||
@ -838,7 +838,7 @@ t: accept as input and present for editing"
|
||||
:type '(choice
|
||||
(const :tag "Never, don't even check unser input for them" nil)
|
||||
(const :tag "Always, both as user input, and when editing" t)
|
||||
(const :tag "Conver user input, don't offerr during editing" 'from)))
|
||||
(const :tag "Convert user input, don't offer during editing" 'from)))
|
||||
|
||||
(defcustom org-table-copy-increment t
|
||||
"Non-nil means, increment when copying current field with \\[org-table-copy-down]."
|
||||
@ -2951,9 +2951,7 @@ specify what is allowed/forbidden in each part:
|
||||
|
||||
pre Chars allowed as prematch. Beginning of line will be allowed too.
|
||||
post Chars allowed as postmatch. End of line will be allowed too.
|
||||
border The chars *forbidden* as border characters. In addition to the
|
||||
characters given here, all marker characters are forbidden too.
|
||||
FIXME: the last statement is no longer true.
|
||||
border The chars *forbidden* as border characters.
|
||||
body-regexp A regexp like \".\" to match a body character. Don't use
|
||||
non-shy groups here, and don't allow newline here.
|
||||
newline The maximum number of newlines allowed in an emphasis exp.
|
||||
@ -3438,7 +3436,7 @@ means to push this value onto the list in the variable.")
|
||||
(org-trim (match-string 2 value)))
|
||||
links)))
|
||||
((equal key "PRIORITIES")
|
||||
(setq prio (org-split-string " +" value)))
|
||||
(setq prio (org-split-string value " +")))
|
||||
((equal key "STARTUP")
|
||||
(let ((opts (org-split-string value splitre))
|
||||
l var val)
|
||||
@ -3984,20 +3982,15 @@ that will be added to PLIST. Returns the string that was modified."
|
||||
org-plain-link-re "\\)")
|
||||
"Regular expression matching any link.")
|
||||
|
||||
(defconst org-ts-lengths
|
||||
(cons (length (format-time-string (car org-time-stamp-formats)))
|
||||
(length (format-time-string (cdr org-time-stamp-formats))))
|
||||
"This holds the lengths of the two different time formats.")
|
||||
(defconst org-ts-regexp "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^\r\n>]*?\\)>"
|
||||
"Regular expression for fast time stamp matching.")
|
||||
(defconst org-ts-regexp-both "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^\r\n>]*?\\)[]>]"
|
||||
"Regular expression for fast time stamp matching.")
|
||||
(defconst org-ts-regexp1 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\) \\([^]0-9>\r\n]*\\)\\(\\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)"
|
||||
"Regular expression matching time strings for analysis.")
|
||||
(defconst org-ts-regexp2 (concat "<" org-ts-regexp1 "[^>\n]\\{0,5\\}>")
|
||||
(defconst org-ts-regexp2 (concat "<" org-ts-regexp1 "[^>\n]\\{0,6\\}>")
|
||||
"Regular expression matching time stamps, with groups.")
|
||||
;; FIXME need to exclude ] here as well, also need to think about lengths
|
||||
(defconst org-ts-regexp3 (concat "[[<]" org-ts-regexp1 "[^]>\n]\\{0,5\\}[]>]")
|
||||
(defconst org-ts-regexp3 (concat "[[<]" org-ts-regexp1 "[^]>\n]\\{0,6\\}[]>]")
|
||||
"Regular expression matching time stamps (also [..]), with groups.")
|
||||
(defconst org-tr-regexp (concat org-ts-regexp "--?-?" org-ts-regexp)
|
||||
"Regular expression matching a time stamp range.")
|
||||
@ -4476,12 +4469,20 @@ between words."
|
||||
((= eos eoh)
|
||||
;; Nothing is hidden behind this heading
|
||||
(message "EMPTY ENTRY")
|
||||
(setq org-cycle-subtree-status nil))
|
||||
(setq org-cycle-subtree-status nil)
|
||||
(save-excursion
|
||||
(goto-char eos)
|
||||
(outline-next-heading)
|
||||
(if (org-invisible-p) (org-flag-heading nil))))
|
||||
((>= eol eos)
|
||||
;; Entire subtree is hidden in one line: open it
|
||||
(org-show-entry)
|
||||
(show-children)
|
||||
(message "CHILDREN")
|
||||
(save-excursion
|
||||
(goto-char eos)
|
||||
(outline-next-heading)
|
||||
(if (org-invisible-p) (org-flag-heading nil)))
|
||||
(setq org-cycle-subtree-status 'children)
|
||||
(run-hook-with-args 'org-cycle-hook 'children))
|
||||
((and (eq last-command this-command)
|
||||
@ -6281,7 +6282,6 @@ When NSPACE is non-nil, it indicates the minimum number of spaces that
|
||||
separate columns. By default, the function first checks if every line
|
||||
contains at lease one TAB. If yes, it assumes that the material is TAB
|
||||
separated. If not, it assumes a single space as separator."
|
||||
;; FIXME: Allow CSV?????
|
||||
(interactive "rP")
|
||||
(let* ((beg (min beg0 end0))
|
||||
(end (max beg0 end0))
|
||||
@ -8239,7 +8239,7 @@ and TABLE is a vector with line types."
|
||||
(setq i 0 hdir "+")
|
||||
(if (eq (aref table 0) 'hline) (setq hn (1- hn)))))
|
||||
(if (and (not hn) on (not odir))
|
||||
(error "should never happen");;(aref org-table-dlines on) FIXME
|
||||
(error "should never happen");;(aref org-table-dlines on)
|
||||
(if (and hn (> hn 0))
|
||||
(setq i (org-find-row-type table i 'hline (equal hdir "-") nil hn)))
|
||||
(if on
|
||||
@ -8338,7 +8338,7 @@ With prefix arg ALL, do this for all lines in the table."
|
||||
(goto-char beg)
|
||||
(and all (message "Re-applying formulas to full table..."))
|
||||
(while (re-search-forward line-re end t)
|
||||
(unless (string-match "^ *[_^!$] *$" (org-table-get-field 1))
|
||||
(unless (string-match "^ *[_^!$/] *$" (org-table-get-field 1))
|
||||
;; Unprotected line, recalculate
|
||||
(and all (message "Re-applying formulas to full table...(line %d)"
|
||||
(setq cnt (1+ cnt))))
|
||||
@ -8551,9 +8551,15 @@ Works for single references, but also for entire formulas and even the
|
||||
full TBLFM line."
|
||||
(let ((start 0))
|
||||
(while (string-match "\\<\\([a-zA-Z]+\\)\\([0-9]+\\>\\|&\\)\\|\\(;[^\r\n:]+\\)" s start)
|
||||
(if (match-end 3)
|
||||
;; format match, just advance
|
||||
(setq start (match-end 0))
|
||||
(cond
|
||||
((match-end 3)
|
||||
;; format match, just advance
|
||||
(setq start (match-end 0)))
|
||||
((and (> (match-beginning 0) 0)
|
||||
(equal ?. (aref s (max (1- (match-beginning 0)) 0))))
|
||||
;; 3.e5 or something like this. FIXME: is this ok????
|
||||
(setq start (match-end 0)))
|
||||
(t
|
||||
(setq start (match-beginning 0)
|
||||
s (replace-match
|
||||
(if (equal (match-string 2 s) "&")
|
||||
@ -8561,7 +8567,7 @@ full TBLFM line."
|
||||
(format "@%d$%d"
|
||||
(string-to-number (match-string 2 s))
|
||||
(org-letters-to-number (match-string 1 s))))
|
||||
t t s))))
|
||||
t t s)))))
|
||||
s))
|
||||
|
||||
(defun org-table-convert-refs-to-an (s)
|
||||
@ -9038,7 +9044,7 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line."
|
||||
ic (1+ ic)
|
||||
s1 (concat "$" (int-to-string ic))
|
||||
s2 (org-number-to-letters ic)
|
||||
str (if org-table-use-standard-references s2 s1))
|
||||
str (if (eq org-table-use-standard-references t) s2 s1))
|
||||
(setq ov (org-make-overlay beg (+ beg (length str))))
|
||||
(push ov org-table-coordinate-overlays)
|
||||
(org-overlay-display ov str 'org-special-keyword 'evaporate)))
|
||||
@ -9412,7 +9418,7 @@ overwritten, and the table is not marked as requiring realignment."
|
||||
(defvar orgtbl-exp-regexp "^\\([-+]?[0-9][0-9.]*\\)[eE]\\([-+]?[0-9]+\\)$"
|
||||
"Regula expression matching exponentials as produced by calc.")
|
||||
|
||||
(defvar org-table-clean-did-remove-column-1 nil)
|
||||
(defvar org-table-clean-did-remove-column nil)
|
||||
|
||||
(defun orgtbl-export (table target)
|
||||
(let ((func (intern (concat "orgtbl-to-" (symbol-name target))))
|
||||
@ -9464,7 +9470,7 @@ this table."
|
||||
(org-table-begin) (org-table-end)))
|
||||
(lines (nthcdr (or skip 0) (org-split-string txt "[ \t]*\n[ \t]*")))
|
||||
(lines (org-table-clean-before-export lines))
|
||||
(i0 (if org-table-clean-did-remove-column-1 2 1))
|
||||
(i0 (if org-table-clean-did-remove-column 2 1))
|
||||
(table (mapcar
|
||||
(lambda (x)
|
||||
(if (string-match org-table-hline-regexp x)
|
||||
@ -12001,7 +12007,7 @@ be removed."
|
||||
The auto-repeater uses this.")
|
||||
|
||||
(defun org-add-log-maybe (&optional purpose state findpos)
|
||||
"FIXME"
|
||||
"Set up the post command hook to take a note."
|
||||
(save-excursion
|
||||
(when (and (listp org-log-done)
|
||||
(memq purpose org-log-done))
|
||||
@ -13042,20 +13048,24 @@ The command returns the inserted time stamp."
|
||||
(message "Time stamps are overlayed with custom format")
|
||||
(message "Time stamp overlays removed")))
|
||||
|
||||
;; FIXME: do something about the repeaters
|
||||
(defun org-display-custom-time (beg end)
|
||||
"Overlay modified time stamp format over timestamp between BED and END."
|
||||
(let* ((t1 (save-match-data
|
||||
(org-parse-time-string (buffer-substring beg end) t)))
|
||||
(w1 (- end beg))
|
||||
(with-hm (and (nth 1 t1) (nth 2 t1)))
|
||||
(tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats))
|
||||
(time (org-fix-decoded-time t1))
|
||||
(str (org-add-props
|
||||
(let* ((ts (buffer-substring beg end))
|
||||
t1 w1 with-hm tf time str w2 (off 0))
|
||||
(save-match-data
|
||||
(setq t1 (org-parse-time-string ts t))
|
||||
(if (string-match " \\+[0-9]+[dwmy]\\'" ts)
|
||||
(setq off (- (match-end 0) (match-beginning 0)))))
|
||||
(setq end (- end off))
|
||||
(setq w1 (- end beg)
|
||||
with-hm (and (nth 1 t1) (nth 2 t1))
|
||||
tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats)
|
||||
time (org-fix-decoded-time t1)
|
||||
str (org-add-props
|
||||
(format-time-string
|
||||
(substring tf 1 -1) (apply 'encode-time time))
|
||||
nil 'mouse-face 'highlight))
|
||||
(w2 (length str)))
|
||||
nil 'mouse-face 'highlight)
|
||||
w2 (length str))
|
||||
(if (not (= w2 w1))
|
||||
(add-text-properties (1+ beg) (+ 2 beg)
|
||||
(list 'org-dwidth t 'org-dwidth-n (- w1 w2))))
|
||||
@ -13443,14 +13453,13 @@ in the timestamp determines what will be changed."
|
||||
(not (get-text-property (1- (point)) 'display)))
|
||||
(setq org-ts-what 'day))
|
||||
(setq org-ts-what (or what org-ts-what)
|
||||
with-hm (<= (abs (- (cdr org-ts-lengths)
|
||||
(- (match-end 0) (match-beginning 0))))
|
||||
1)
|
||||
inactive (= (char-after (match-beginning 0)) ?\[)
|
||||
ts (match-string 0))
|
||||
(replace-match "")
|
||||
(if (string-match " \\+[0-9]+[dwmy]" ts)
|
||||
(setq extra (match-string 0 ts)))
|
||||
(if (string-match "^.\\{10\\}.*?[0-9]+:[0-9][0-9]" ts)
|
||||
(setq with-hm t))
|
||||
(setq time0 (org-parse-time-string ts))
|
||||
(setq time
|
||||
(apply 'encode-time
|
||||
@ -14409,7 +14418,7 @@ L Timeline for current buffer # List stuck projects (!=configure)
|
||||
((fboundp type)
|
||||
(org-let lprops '(funcall type match)))
|
||||
(t (error "Invalid custom agenda command type %s" type))))
|
||||
(org-run-agenda-series (cddr entry))))
|
||||
(org-run-agenda-series (nth 1 entry) (cddr entry))))
|
||||
((equal c ?C) (customize-variable 'org-agenda-custom-commands))
|
||||
((equal c ?a) (call-interactively 'org-agenda-list))
|
||||
((equal c ?t) (call-interactively 'org-todo-list))
|
||||
@ -14425,10 +14434,10 @@ L Timeline for current buffer # List stuck projects (!=configure)
|
||||
((equal c ?!) (customize-variable 'org-stuck-projects))
|
||||
(t (error "Invalid key"))))))
|
||||
|
||||
(defun org-run-agenda-series (series)
|
||||
(org-prepare-agenda)
|
||||
(defun org-run-agenda-series (name series)
|
||||
(org-prepare-agenda name)
|
||||
(let* ((org-agenda-multi t)
|
||||
(redo (list 'org-run-agenda-series (list 'quote series)))
|
||||
(redo (list 'org-run-agenda-series name (list 'quote series)))
|
||||
(cmds (car series))
|
||||
(gprops (nth 1 series))
|
||||
match ;; The byte compiler incorrectly complains about this. Keep it!
|
||||
@ -14480,7 +14489,12 @@ before running the agenda command."
|
||||
(flet ((read-char-exclusive () (string-to-char cmd-key)))
|
||||
(eval (list 'let (nreverse pars) '(org-agenda nil)))))
|
||||
(set-buffer "*Org Agenda*")
|
||||
(princ (buffer-string))))
|
||||
(princ (org-encode-for-stdout (buffer-string)))))
|
||||
|
||||
(defun org-encode-for-stdout (string)
|
||||
(if (fboundp 'encode-coding-string)
|
||||
(encode-coding-string string buffer-file-coding-system)
|
||||
string))
|
||||
|
||||
(defvar org-agenda-info nil)
|
||||
|
||||
@ -14537,10 +14551,11 @@ priority-n The computed numerical priority"
|
||||
(setq org-agenda-info
|
||||
(org-fix-agenda-info (text-properties-at 0 line)))
|
||||
(princ
|
||||
(mapconcat 'org-agenda-export-csv-mapper
|
||||
'(org-category txt type todo tags date time-of-day extra
|
||||
priority-letter priority)
|
||||
","))
|
||||
(org-encode-for-stdout
|
||||
(mapconcat 'org-agenda-export-csv-mapper
|
||||
'(org-category txt type todo tags date time-of-day extra
|
||||
priority-letter priority)
|
||||
",")))
|
||||
(princ "\n"))))))
|
||||
|
||||
(defun org-fix-agenda-info (props)
|
||||
@ -14551,8 +14566,15 @@ priority-n The computed numerical priority"
|
||||
(when (setq tmp (plist-get props 'date))
|
||||
(if (integerp tmp) (setq tmp (calendar-gregorian-from-absolute tmp)))
|
||||
(let ((calendar-date-display-form '(year "-" month "-" day)))
|
||||
'((format "%4d, %9s %2s, %4s" dayname monthname day year))
|
||||
|
||||
(setq tmp (calendar-date-string tmp)))
|
||||
(setq props (plist-put props 'date tmp)))
|
||||
(when (setq tmp (plist-get props 'day))
|
||||
(if (integerp tmp) (setq tmp (calendar-gregorian-from-absolute tmp)))
|
||||
(let ((calendar-date-display-form '(year "-" month "-" day)))
|
||||
(setq tmp (calendar-date-string tmp)))
|
||||
(setq props (plist-put props 'day tmp)))
|
||||
(when (setq tmp (plist-get props 'txt))
|
||||
(when (string-match "\\[#\\([A-Z0-9]\\)\\] ?" tmp)
|
||||
(plist-put props 'priority-letter (match-string 1 tmp))
|
||||
@ -14589,6 +14611,7 @@ priority-n The computed numerical priority"
|
||||
(defmacro org-batch-store-agenda-views (&rest parameters)
|
||||
"Run all custom agenda commands that have a file argument."
|
||||
(let ((cmds org-agenda-custom-commands)
|
||||
(dir (default-directory))
|
||||
pars cmd thiscmdkey files opts)
|
||||
(while parameters
|
||||
(push (list (pop parameters) (if parameters (pop parameters))) pars))
|
||||
@ -14607,7 +14630,8 @@ priority-n The computed numerical priority"
|
||||
(set-buffer "*Org Agenda*")
|
||||
(while files
|
||||
(eval (list 'let (append org-agenda-exporter-settings opts pars)
|
||||
(list 'org-write-agenda (pop files) t)))))
|
||||
(list 'org-write-agenda
|
||||
(expand-file-name (pop files) dir) t)))))
|
||||
(kill-buffer org-agenda-buffer-name)))))
|
||||
|
||||
(defun org-write-agenda (file &optional nosettings)
|
||||
@ -14807,7 +14831,8 @@ Optional argument FILE means, use this file instead of the current."
|
||||
(defvar org-agenda-multi nil) ; dynammically scoped
|
||||
(defvar org-agenda-buffer-name "*Org Agenda*")
|
||||
(defvar org-pre-agenda-window-conf nil)
|
||||
(defun org-prepare-agenda ()
|
||||
(defvar org-agenda-name nil)
|
||||
(defun org-prepare-agenda (&optional name)
|
||||
(setq org-todo-keywords-for-agenda nil)
|
||||
(setq org-done-keywords-for-agenda nil)
|
||||
(if org-agenda-multi
|
||||
@ -14840,7 +14865,9 @@ Optional argument FILE means, use this file instead of the current."
|
||||
(switch-to-buffer-other-window abuf))))
|
||||
(setq buffer-read-only nil)
|
||||
(erase-buffer)
|
||||
(org-agenda-mode))
|
||||
(org-agenda-mode)
|
||||
(and name (not org-agenda-name)
|
||||
(org-set-local 'org-agenda-name name)))
|
||||
(setq buffer-read-only nil))
|
||||
|
||||
(defun org-finalize-agenda ()
|
||||
@ -15037,7 +15064,8 @@ dates."
|
||||
(setq day-numbers (delq nil (mapcar (lambda(x)
|
||||
(if (>= x today) x nil))
|
||||
day-numbers))))
|
||||
(org-prepare-agenda)
|
||||
(org-prepare-agenda (concat "Timeline "
|
||||
(file-name-nondirectory buffer-file-name)))
|
||||
(if doclosed (push :closed args))
|
||||
(push :timestamp args)
|
||||
(push :sexp args)
|
||||
@ -15182,7 +15210,7 @@ NDAYS defaults to `org-agenda-ndays'."
|
||||
(push (1+ (car day-numbers)) day-numbers)
|
||||
(setq ndays (1- ndays)))
|
||||
(setq day-numbers (nreverse day-numbers))
|
||||
(org-prepare-agenda)
|
||||
(org-prepare-agenda "Day/Week")
|
||||
(org-set-local 'org-starting-day (car day-numbers))
|
||||
(org-set-local 'org-include-all-loc include-all)
|
||||
(when (and (or include-all org-agenda-include-all-todo)
|
||||
@ -15282,7 +15310,7 @@ for a keyword. A numeric prefix directly selects the Nth keyword in
|
||||
(require 'calendar)
|
||||
(org-compile-prefix-format 'todo)
|
||||
(org-set-sorting-strategy 'todo)
|
||||
(org-prepare-agenda)
|
||||
(org-prepare-agenda "TODO")
|
||||
(let* ((today (time-to-days (current-time)))
|
||||
(date (calendar-gregorian-from-absolute today))
|
||||
(kwds org-todo-keywords-for-agenda)
|
||||
@ -15353,7 +15381,7 @@ The prefix arg TODO-ONLY limits the search to TODO entries."
|
||||
buffer)
|
||||
(setq matcher (org-make-tags-matcher match)
|
||||
match (car matcher) matcher (cdr matcher))
|
||||
(org-prepare-agenda)
|
||||
(org-prepare-agenda (concat "TAGS " match))
|
||||
(setq org-agenda-redo-command
|
||||
(list 'org-tags-view (list 'quote todo-only)
|
||||
(list 'if 'current-prefix-arg nil match)))
|
||||
@ -18411,7 +18439,8 @@ underlined headlines. The default is 3."
|
||||
(plist-get opt-plist :skip-before-1st-heading)
|
||||
:add-text (plist-get opt-plist :text))
|
||||
"[\r\n]")))
|
||||
thetoc have-headings first-heading-pos)
|
||||
thetoc have-headings first-heading-pos
|
||||
table-open table-buffer)
|
||||
|
||||
(let (buffer-read-only)
|
||||
(org-unmodified
|
||||
@ -18520,6 +18549,24 @@ underlined headlines. The default is 3."
|
||||
(setq level (org-tr-level (- (match-end 1) (match-beginning 1)))
|
||||
txt (match-string 2 line))
|
||||
(org-ascii-level-start level txt umax lines))
|
||||
|
||||
((and org-export-with-tables
|
||||
(string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line))
|
||||
(if (not table-open)
|
||||
;; New table starts
|
||||
(setq table-open t table-buffer nil))
|
||||
;; Accumulate lines
|
||||
(setq table-buffer (cons line table-buffer))
|
||||
(when (or (not lines)
|
||||
(not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)"
|
||||
(car lines))))
|
||||
(setq table-open nil
|
||||
table-buffer (nreverse table-buffer))
|
||||
(insert (mapconcat
|
||||
(lambda (x)
|
||||
(org-fix-indentation x org-ascii-current-indentation))
|
||||
(org-format-table-ascii table-buffer)
|
||||
"\n") "\n")))
|
||||
(t
|
||||
(insert (org-fix-indentation line org-ascii-current-indentation) "\n"))))
|
||||
(normal-mode)
|
||||
@ -19295,6 +19342,17 @@ lang=\"%s\" xml:lang=\"%s\">
|
||||
(concat (substring line 0 (match-beginning 2))
|
||||
"<span class=\"todo\">" (match-string 2 line)
|
||||
"</span>" (substring line (match-end 2))))))
|
||||
|
||||
;; Does this contain a reference to a footnote?
|
||||
(while (string-match "\\([^* \t].*?\\)\\[\\([0-9]+\\)\\]" line)
|
||||
(let ((n (match-string 2 line)))
|
||||
(setq line
|
||||
(replace-match
|
||||
(format
|
||||
"%s<sup><a class=\"footref\" name=\"fnr.%s\" href=\"#fn.%s\">%s</a></sup>"
|
||||
(match-string 1 line) n n n)
|
||||
t t line))))
|
||||
|
||||
(cond
|
||||
((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
|
||||
;; This is a headline
|
||||
@ -19395,19 +19453,13 @@ lang=\"%s\" xml:lang=\"%s\">
|
||||
;; are not fully interpreted, lines starting with "-", "+", "*"
|
||||
;; also start a new paragraph.
|
||||
(if (string-match "^ [-+*]-\\|^[ \t]*$" line) (org-open-par))
|
||||
|
||||
;; Is this the start of a footnote?
|
||||
(when (string-match "^[ \t]*\\[\\([0-9]+\\)\\]" line)
|
||||
(org-close-par-maybe)
|
||||
(let ((n (match-string 1 line)))
|
||||
(setq line (replace-match
|
||||
(format "<p class=\"footnote\"><sup><a class=\"footnum\"name=\"fn.%s\" href=\"#fnr.%s\">%s</a></sup>" n n n) t t line))))
|
||||
;; Does this contain a reference to a footnote?
|
||||
(while (string-match "\\[\\([0-9]+\\)\\]" line)
|
||||
(let ((n (match-string 1 line)))
|
||||
(setq line (replace-match
|
||||
(format
|
||||
"<sup><a class=\"footref\" name=\"fnr.%s\" href=\"#fn.%s\">%s</a></sup>"
|
||||
n n n) t t line))))
|
||||
(format "<p class=\"footnote\"><sup><a class=\"footnum\" name=\"fn.%s\" href=\"#fnr.%s\">%s</a></sup>" n n n) t t line))))
|
||||
|
||||
;; Check if the line break needs to be conserved
|
||||
(cond
|
||||
@ -19484,6 +19536,50 @@ lang=\"%s\" xml:lang=\"%s\">
|
||||
(kill-buffer (current-buffer)))
|
||||
(current-buffer)))))
|
||||
|
||||
(defvar org-table-colgroup-info nil) ;; FIXME: mode to a better place
|
||||
(defun org-format-table-ascii (lines)
|
||||
"Format a table for ascii export."
|
||||
(if (stringp lines)
|
||||
(setq lines (org-split-string lines "\n")))
|
||||
(if (not (string-match "^[ \t]*|" (car lines)))
|
||||
;; Table made by table.el - test for spanning
|
||||
lines
|
||||
|
||||
;; A normal org table
|
||||
;; Get rid of hlines at beginning and end
|
||||
(if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines)))
|
||||
(setq lines (nreverse lines))
|
||||
(if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines)))
|
||||
(setq lines (nreverse lines))
|
||||
(when org-export-table-remove-special-lines
|
||||
;; Check if the table has a marking column. If yes remove the
|
||||
;; column and the special lines
|
||||
(setq lines (org-table-clean-before-export lines)))
|
||||
;; Get rid of the vertical lines except for grouping
|
||||
(let ((vl (org-colgroup-info-to-vline-list org-table-colgroup-info))
|
||||
rtn line vl1 start)
|
||||
(while (setq line (pop lines))
|
||||
(if (string-match org-table-hline-regexp line)
|
||||
(and (string-match "|\\(.*\\)|" line)
|
||||
(setq line (replace-match " \\1" t nil line)))
|
||||
(setq start 0 vl1 vl)
|
||||
(while (string-match "|" line start)
|
||||
(setq start (match-end 0))
|
||||
(or (pop vl1) (setq line (replace-match " " t t line)))))
|
||||
(push line rtn))
|
||||
(nreverse rtn))))
|
||||
|
||||
(defun org-colgroup-info-to-vline-list (info)
|
||||
(let (vl new last rtn line)
|
||||
(while info
|
||||
(setq last new new (pop info))
|
||||
(if (or (memq last '(:end :startend))
|
||||
(memq new '(:start :startend)))
|
||||
(push t vl)
|
||||
(push nil vl)))
|
||||
(setq vl (cons nil (nreverse vl)))))
|
||||
|
||||
|
||||
(defun org-format-table-html (lines olines)
|
||||
"Find out which HTML converter to use and return the HTML code."
|
||||
(if (stringp lines)
|
||||
@ -19527,7 +19623,7 @@ lang=\"%s\" xml:lang=\"%s\">
|
||||
(lambda (x) (string-match "^[ \t]*|-" x))
|
||||
(cdr lines)))))
|
||||
(nlines 0) fnum i
|
||||
tbopen line fields html)
|
||||
tbopen line fields html gr)
|
||||
(if splice (setq head nil))
|
||||
(unless splice (push (if head "<thead>" "<tbody>") html))
|
||||
(setq tbopen t)
|
||||
@ -19567,9 +19663,12 @@ lang=\"%s\" xml:lang=\"%s\">
|
||||
;; Put in COL tags with the alignment (unfortuntely often ignored...)
|
||||
(push (mapconcat
|
||||
(lambda (x)
|
||||
(format "<COL align=\"%s\">"
|
||||
(setq gr (pop org-table-colgroup-info))
|
||||
(format "%s<COL align=\"%s\">%s"
|
||||
(if (memq gr '(:start :startend)) "<colgroup>" "")
|
||||
(if (> (/ (float x) nlines) org-table-number-fraction)
|
||||
"right" "left")))
|
||||
"right" "left")
|
||||
(if (memq gr '(:end :startend)) "</colgroup>" "")))
|
||||
fnum "")
|
||||
html)
|
||||
(push org-export-html-table-tag html))
|
||||
@ -19578,22 +19677,50 @@ lang=\"%s\" xml:lang=\"%s\">
|
||||
(defun org-table-clean-before-export (lines)
|
||||
"Check if the table has a marking column.
|
||||
If yes remove the column and the special lines."
|
||||
(setq org-table-colgroup-info nil)
|
||||
(if (memq nil
|
||||
(mapcar
|
||||
(lambda (x) (or (string-match "^[ \t]*|-" x)
|
||||
(string-match "^[ \t]*| *\\([#!$*_^ /]\\) *|" x)))
|
||||
lines))
|
||||
(progn
|
||||
(setq org-table-clean-did-remove-column-1 nil)
|
||||
lines)
|
||||
(setq org-table-clean-did-remove-column-1 t)
|
||||
(setq org-table-clean-did-remove-column nil)
|
||||
(delq nil
|
||||
(mapcar
|
||||
(lambda (x)
|
||||
(cond
|
||||
((string-match "^[ \t]*| */ *|" x)
|
||||
(setq org-table-colgroup-info
|
||||
(mapcar (lambda (x)
|
||||
(cond ((member x '("<" "<")) :start)
|
||||
((member x '(">" ">")) :end)
|
||||
((member x '("<>" "<>")) :startend)
|
||||
(t nil)))
|
||||
(org-split-string x "[ \t]*|[ \t]*")))
|
||||
nil)
|
||||
(t x)))
|
||||
lines)))
|
||||
(setq org-table-clean-did-remove-column t)
|
||||
(delq nil
|
||||
(mapcar
|
||||
(lambda (x) (if (string-match "^[ \t]*| *[!_^/] *|" x)
|
||||
nil ; ignore this line
|
||||
(and (or (string-match "^[ \t]*|-+\\+" x)
|
||||
(string-match "^[ \t]*|[^|]*|" x))
|
||||
(replace-match "|" t t x))))
|
||||
(lambda (x)
|
||||
(cond
|
||||
((string-match "^[ \t]*| */ *|" x)
|
||||
(setq org-table-colgroup-info
|
||||
(mapcar (lambda (x)
|
||||
(cond ((member x '("<" "<")) :start)
|
||||
((member x '(">" ">")) :end)
|
||||
((member x '("<>" "<>")) :startend)
|
||||
(t nil)))
|
||||
(cdr (org-split-string x "[ \t]*|[ \t]*"))))
|
||||
nil)
|
||||
((string-match "^[ \t]*| *[!_^/] *|" x)
|
||||
nil) ; ignore this line
|
||||
((or (string-match "^\\([ \t]*\\)|-+\\+" x)
|
||||
(string-match "^\\([ \t]*\\)|[^|]*|" x))
|
||||
;; remove the first column
|
||||
(replace-match "\\1|" t nil x))
|
||||
(t (error "This should not happen"))))
|
||||
lines))))
|
||||
|
||||
(defun org-format-table-table-html (lines)
|
||||
@ -21347,8 +21474,10 @@ In particular, this makes sure hanging paragraphs for hand-formatted lists
|
||||
work correctly."
|
||||
(cond ((looking-at "#[ \t]+")
|
||||
(match-string 0))
|
||||
((looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?")
|
||||
(make-string (- (match-end 0) (match-beginning 0)) ?\ ))
|
||||
((looking-at "[ \t]*\\([-*+] \\|[0-9]+[.)] \\)?")
|
||||
(save-excursion
|
||||
(goto-char (match-end 0))
|
||||
(make-string (current-column) ?\ )))
|
||||
(t nil)))
|
||||
|
||||
;;;; Functions extending outline functionality
|
||||
@ -21568,7 +21697,7 @@ Show the heading too, if it is currently invisible."
|
||||
;;;; Experimental code
|
||||
|
||||
(defun org-closed-in-range ()
|
||||
"Sparse treee of items closed in a certain time range.
|
||||
"Sparse tree of items closed in a certain time range.
|
||||
Still experimental, may disappear in the furture."
|
||||
(interactive)
|
||||
;; Get the time interval from the user.
|
||||
@ -21596,3 +21725,4 @@ Still experimental, may disappear in the furture."
|
||||
|
||||
;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
|
||||
;;; org.el ends here
|
||||
|
||||
|
45
org.texi
45
org.texi
@ -3,8 +3,8 @@
|
||||
@setfilename ../info/org
|
||||
@settitle Org Mode Manual
|
||||
|
||||
@set VERSION 4.76
|
||||
@set DATE May 2007
|
||||
@set VERSION 4.77
|
||||
@set DATE June 2007
|
||||
|
||||
@dircategory Emacs
|
||||
@direntry
|
||||
@ -122,6 +122,7 @@ Tables
|
||||
|
||||
* Built-in table editor:: Simple tables
|
||||
* Narrow columns:: Stop wasting space in tables
|
||||
* Column groups:: Grouping to trigger vertical lines
|
||||
* orgtbl-mode:: The table editor as minor mode
|
||||
* The spreadsheet:: The table editor has spreadsheet capabilities.
|
||||
|
||||
@ -1109,6 +1110,7 @@ Emacs @file{calc} package.
|
||||
@menu
|
||||
* Built-in table editor:: Simple tables
|
||||
* Narrow columns:: Stop wasting space in tables
|
||||
* Column groups:: Grouping to trigger vertical lines
|
||||
* orgtbl-mode:: The table editor as minor mode
|
||||
* The spreadsheet:: The table editor has spreadsheet capabilities.
|
||||
@end menu
|
||||
@ -1328,7 +1330,7 @@ it off with
|
||||
@noindent Then the only table command that still works is
|
||||
@kbd{C-c C-c} to do a manual re-align.
|
||||
|
||||
@node Narrow columns, orgtbl-mode, Built-in table editor, Tables
|
||||
@node Narrow columns, Column groups, Built-in table editor, Tables
|
||||
@section Narrow columns
|
||||
@cindex narrow columns in tables
|
||||
|
||||
@ -1374,7 +1376,42 @@ on a per-file basis with:
|
||||
#+STARTUP: noalign
|
||||
@end example
|
||||
|
||||
@node orgtbl-mode, The spreadsheet, Narrow columns, Tables
|
||||
@node Column groups, orgtbl-mode, Narrow columns, Tables
|
||||
@section Column groups
|
||||
@cindex grouping columns in tables
|
||||
|
||||
When Org-mode exports tables, it does so by default without vertical
|
||||
lines because that is visually more satisfying in general. Occasionally
|
||||
however, vertical lines can be useful to structure a table into groups
|
||||
of columns, much like horizontal lines can do for groups of rows. In
|
||||
order to specify column groups, you can use a special row where the
|
||||
first field contains only @samp{/}. The further fields can either
|
||||
contain @samp{<} to indicate that this column should start a group,
|
||||
@samp{>} to indicate the end of a column, or @samp{<>} to make a column
|
||||
a group of its own. Boundaries between colum groups will upon export be
|
||||
marked with vertical lines. Here is an example:
|
||||
|
||||
@example
|
||||
| | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
|
||||
|---+----+-----+-----+-----+---------+------------|
|
||||
| / | <> | < | | > | < | > |
|
||||
| # | 1 | 1 | 1 | 1 | 1 | 1 |
|
||||
| # | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 |
|
||||
| # | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 |
|
||||
|---+----+-----+-----+-----+---------+------------|
|
||||
#+TBLFM: $3=$2^2::$4=$2^3::$5=$2^4::$6=sqrt($2)::$7=sqrt(sqrt(($2))
|
||||
@end example
|
||||
|
||||
It is also sufficient to just insert the colum group starters after
|
||||
every vertical line you'd like to have:
|
||||
|
||||
@example
|
||||
| N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
|
||||
|----+-----+-----+-----+---------+------------|
|
||||
| / | < | | | < | |
|
||||
@end example
|
||||
|
||||
@node orgtbl-mode, The spreadsheet, Column groups, Tables
|
||||
@section The Orgtbl minor mode
|
||||
@cindex orgtbl-mode
|
||||
@cindex minor mode for tables
|
||||
|
BIN
orgcard.pdf
BIN
orgcard.pdf
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
% Reference Card for Org Mode
|
||||
\def\orgversionnumber{4.75}
|
||||
\def\orgversionnumber{4.77}
|
||||
\def\versionyear{2007} % latest update
|
||||
\def\year{2007} % latest copyright year
|
||||
|
||||
|
@ -299,7 +299,7 @@ Turning on outline mode calls the value of `text-mode-hook' and then of
|
||||
(setq line-move-ignore-invisible t)
|
||||
;; Cause use of ellipses for invisible text.
|
||||
(add-to-invisibility-spec '(outline . t))
|
||||
|
||||
|
||||
(easy-menu-add outline-mode-menu-heading)
|
||||
(easy-menu-add outline-mode-menu-show)
|
||||
(easy-menu-add outline-mode-menu-hide)
|
||||
@ -719,15 +719,15 @@ BEG and END default respectively to the beginning and end of buffer."
|
||||
(map-extents
|
||||
#'(lambda (ex ignored)
|
||||
(if (< (extent-start-position ex) beg)
|
||||
(if (> (extent-end-position ex) end)
|
||||
(progn
|
||||
(set-extent-endpoints (copy-extent ex)
|
||||
(extent-start-position ex) beg)
|
||||
(set-extent-endpoints ex end (extent-end-position ex)))
|
||||
(set-extent-endpoints ex (extent-start-position ex) beg)))
|
||||
(if (> (extent-end-position ex) end)
|
||||
(set-extent-endpoints ex end (extent-end-position ex))
|
||||
(delete-extent ex)))
|
||||
(if (> (extent-end-position ex) end)
|
||||
(progn
|
||||
(set-extent-endpoints (copy-extent ex)
|
||||
(extent-start-position ex) beg)
|
||||
(set-extent-endpoints ex end (extent-end-position ex)))
|
||||
(set-extent-endpoints ex (extent-start-position ex) beg))
|
||||
(if (> (extent-end-position ex) end)
|
||||
(set-extent-endpoints ex end (extent-end-position ex))
|
||||
(delete-extent ex))))
|
||||
(current-buffer) beg end nil 'end-closed 'outline)))
|
||||
|
||||
(defun outline-flag-region (from to flag)
|
||||
@ -881,8 +881,8 @@ Show the heading too, if it is currently invisible."
|
||||
(outline-back-to-heading)
|
||||
(outline-end-of-heading)
|
||||
(outline-flag-region (point)
|
||||
(progn (outline-end-of-subtree) (point))
|
||||
flag)))
|
||||
(progn (outline-end-of-subtree) (point))
|
||||
flag)))
|
||||
|
||||
(defun outline-end-of-subtree ()
|
||||
(outline-back-to-heading)
|
||||
@ -1008,7 +1008,7 @@ Stop at the first and last subheadings of a superior heading."
|
||||
(outline-previous-visible-heading 1))
|
||||
(if (< (funcall outline-level) level)
|
||||
nil
|
||||
(point))))
|
||||
(point))))
|
||||
|
||||
(defun outline-headers-as-kill (beg end)
|
||||
"Save the visible outline headers in region at the start of the kill ring.
|
||||
|
Loading…
Reference in New Issue
Block a user