comparison lisp/textmodes/org.el @ 65964:4a5b33d70e6f

(org-mode-map): Explicit definition of `C-c C-x' as a prefix. (orgtbl-mode-map): Full keymap instead of sparse, because all `self-insert-command' keys are redifined in this map. (org-export-as-html): Specify charset for HTML file, by taking it from the coding system.
author Carsten Dominik <dominik@science.uva.nl>
date Mon, 10 Oct 2005 09:16:22 +0000
parents 7d20cbe1d616
children 6c46e0e1ba7b 5e2d3828e89f
comparison
equal deleted inserted replaced
65963:9d6ad284b72a 65964:4a5b33d70e6f
3 ;; Copyright (c) 2004, 2005 Free Software Foundation 3 ;; Copyright (c) 2004, 2005 Free Software Foundation
4 ;; 4 ;;
5 ;; Author: Carsten Dominik <dominik at science dot uva dot nl> 5 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
6 ;; Keywords: outlines, hypermedia, calendar 6 ;; Keywords: outlines, hypermedia, calendar
7 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ 7 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
8 ;; Version: 3.16 8 ;; Version: 3.17
9 ;; 9 ;;
10 ;; This file is part of GNU Emacs. 10 ;; This file is part of GNU Emacs.
11 ;; 11 ;;
12 ;; GNU Emacs is free software; you can redistribute it and/or modify 12 ;; GNU Emacs is free software; you can redistribute it and/or modify
13 ;; it under the terms of the GNU General Public License as published by 13 ;; it under the terms of the GNU General Public License as published by
78 ;; Org-mode, you can read the same text online as HTML. There is also an 78 ;; Org-mode, you can read the same text online as HTML. There is also an
79 ;; excellent reference card made by Philip Rooke. 79 ;; excellent reference card made by Philip Rooke.
80 ;; 80 ;;
81 ;; Changes: 81 ;; Changes:
82 ;; ------- 82 ;; -------
83 ;; Version 3.17
84 ;; - HTML export specifies character set depending on coding-system.
85 ;;
83 ;; Version 3.16 86 ;; Version 3.16
84 ;; - In tables, directly after the field motion commands like TAB and RET, 87 ;; - In tables, directly after the field motion commands like TAB and RET,
85 ;; typing a character will blank the field. Can be turned off with 88 ;; typing a character will blank the field. Can be turned off with
86 ;; variable `org-table-auto-blank-field'. 89 ;; variable `org-table-auto-blank-field'.
87 ;; - Inactive timestamps with `C-c !'. These do not trigger the agenda 90 ;; - Inactive timestamps with `C-c !'. These do not trigger the agenda
208 (defvar calc-embedded-open-formula) 211 (defvar calc-embedded-open-formula)
209 (defvar font-lock-unfontify-region-function) 212 (defvar font-lock-unfontify-region-function)
210 213
211 ;;; Customization variables 214 ;;; Customization variables
212 215
213 (defvar org-version "3.16" 216 (defvar org-version "3.17"
214 "The version number of the file org.el.") 217 "The version number of the file org.el.")
215 (defun org-version () 218 (defun org-version ()
216 (interactive) 219 (interactive)
217 (message "Org-mode version %s" org-version)) 220 (message "Org-mode version %s" org-version))
218 221
479 482
480 #+CATEGORY: ELisp 483 #+CATEGORY: ELisp
481 484
482 If the file does not specify a category, then file's base name 485 If the file does not specify a category, then file's base name
483 is used instead.") 486 is used instead.")
487
488 (defgroup org-time nil
489 "Options concerning time stamps and deadlines in Org-mode."
490 :tag "Org Time"
491 :group 'org)
492
493 (defconst org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>")
494 "Formats for `format-time-string' which are used for time stamps.
495 It is not recommended to change this constant.")
496
497
498 (defcustom org-deadline-warning-days 30
499 "No. of days before expiration during which a deadline becomes active.
500 This variable governs the display in the org file."
501 :group 'org-time
502 :type 'number)
503
504 (defcustom org-popup-calendar-for-date-prompt t
505 "Non-nil means, pop up a calendar when prompting for a date.
506 In the calendar, the date can be selected with mouse-1. However, the
507 minibuffer will also be active, and you can simply enter the date as well.
508 When nil, only the minibuffer will be available."
509 :group 'org-time
510 :type 'number)
511
512 (defcustom org-calendar-follow-timestamp-change t
513 "Non-nil means, make the calendar window follow timestamp changes.
514 When a timestamp is modified and the calendar window is visible, it will be
515 moved to the new date."
516 :group 'org-time
517 :type 'boolean)
518
519 (defgroup org-agenda nil
520 "Options concerning agenda display Org-mode."
521 :tag "Org Agenda"
522 :group 'org)
523
524 (defcustom org-agenda-files nil
525 "A list of org files for agenda/diary display.
526 Entries are added to this list with \\[org-add-file] and removed with
527 \\[org-remove-file]. You can also use customize to edit the list."
528 :group 'org-agenda
529 :type '(repeat file))
530
531 (defcustom org-select-timeline-window t
532 "Non-nil means, after creating a timeline, move cursor into Timeline window.
533 When nil, cursor will remain in the current window."
534 :group 'org-agenda
535 :type 'boolean)
536
537 (defcustom org-select-agenda-window t
538 "Non-nil means, after creating an agenda, move cursor into Agenda window.
539 When nil, cursor will remain in the current window."
540 :group 'org-agenda
541 :type 'boolean)
542
543 (defcustom org-fit-agenda-window t
544 "Non-nil means, change window size of agenda to fit content."
545 :group 'org-agenda
546 :type 'boolean)
547
548 (defcustom org-agenda-show-all-dates t
549 "Non-nil means, `org-agenda' shows every day in the selected range.
550 When nil, only the days which actually have entries are shown."
551 :group 'org-agenda
552 :type 'boolean)
553
554 ;; FIXME: First day of month works only for current month because it would
555 ;; require a variable ndays treatment.
556 (defcustom org-agenda-start-on-weekday 1
557 "Non-nil means, start the overview always on the specified weekday.
558 0 Denotes Sunday, 1 denotes Monday etc.
559 When nil, always start on the current day."
560 :group 'org-agenda
561 :type '(choice (const :tag "Today" nil)
562 (const :tag "First day of month" t)
563 (number :tag "Weekday No.")))
564
565 (defcustom org-agenda-ndays 7
566 "Number of days to include in overview display."
567 :group 'org-agenda
568 :type 'number)
569
570 (defcustom org-agenda-include-all-todo t
571 "Non-nil means, the agenda will always contain all TODO entries.
572 When nil, date-less entries will only be shown if `org-agenda' is called
573 with a prefix argument.
574 When non-nil, the TODO entries will be listed at the top of the agenda, before
575 the entries for specific days."
576 :group 'org-agenda
577 :type 'boolean)
578
579 (defcustom org-agenda-include-diary nil
580 "If non-nil, include in the agenda entries from the Emacs Calendar's diary."
581 :group 'org-agenda
582 :type 'boolean)
583
584 (defcustom org-calendar-to-agenda-key [?c]
585 "The key to be installed in `calendar-mode-map' for switching to the agenda.
586 The command `org-calendar-goto-agenda' will be bound to this key. The
587 default is the character `c' because then`c' can be used to switch back and
588 force between agenda and calendar."
589 :group 'org-agenda
590 :type 'sexp)
591
592 (defcustom org-agenda-sorting-strategy '(time-up category-keep priority-down)
593 "Sorting structure for the agenda items of a single day.
594 This is a list of symbols which will be used in sequence to determine
595 if an entry should be listed before another entry. The following
596 symbols are recognized.
597
598 time-up Put entries with time-of-day indications first, early first
599 time-down Put entries with time-of-day indications first, late first
600 category-keep Keep the default order of categories, corresponding to the
601 sequence in `org-agenda-files'.
602 category-up Sort alphabetically by category, A-Z.
603 category-down Sort alphabetically by category, Z-A.
604 priority-up Sort numerically by priority, high priority last.
605 priority-down Sort numerically by priority, high priority first.
606
607 The different possibilities will be tried in sequence, and testing stops
608 if one comparison returns a \"not-equal\". For example, the default
609 '(time-up category-keep priority-down)
610 means: Pull out all entries having a specified time of day and sort them,
611 in order to make a time schedule for the current day the first thing in the
612 agenda listing for the day. Of the entries without a time indication, keep
613 the grouped in categories, don't sort the categories, but keep them in
614 the sequence given in `org-agenda-files'. Within each category sort by
615 priority.
616
617 Leaving out `category-keep' would mean that items will be sorted across
618 categories by priority."
619 :group 'org-agenda
620 :type '(repeat
621 (choice
622 (const time-up)
623 (const time-down)
624 (const category-keep)
625 (const category-up)
626 (const category-down)
627 (const priority-up)
628 (const priority-down))))
629
630 (defcustom org-agenda-prefix-format " %-12:c%?-12t% s"
631 "Format specification for the prefix of items in the agenda buffer.
632 This format works similar to a printf format, with the following meaning:
633
634 %c the category of the item, \"Diary\" for entries from the diary, or
635 as given by the CATEGORY keyword or derived from the file name.
636 %t the time-of-day specification if one applies to the entry, in the
637 format HH:MM
638 %s Scheduling/Deadline information, a short string
639
640 All specifiers work basically like the standard `%s' of printf, but may
641 contain two additional characters: A question mark just after the `%' and
642 a whitespace/punctuation character just before the final letter.
643
644 If the first character after `%' is a question mark, the entire field
645 will only be included if the corresponding value applies to the
646 current entry. This is useful for fields which should have fixed
647 width when present, but zero width when absent. For example,
648 \"%?-12t\" will result in a 12 character time field if a time of the
649 day is specified, but will completely disappear in entries which do
650 not contain a time.
651
652 If there is punctuation or whitespace character just before the final
653 format letter, this character will be appended to the field value if
654 the value is not empty. For example, the format \"%-12:c\" leads to
655 \"Diary: \" if the category is \"Diary\". If the category were be
656 empty, no additional colon would be interted.
657
658 The default value of this option is \" %-12:c%?-12t% s\", meaning:
659 - Indent the line with two space characters
660 - Give the category in a 12 chars wide field, padded with whitespace on
661 the right (because of `-'). Append a colon if there is a category
662 (because of `:').
663 - If there is a time-of-day, put it into a 12 chars wide field. If no
664 time, don't put in an empty field, just skip it (because of '?').
665 - Finally, put the scheduling information and append a whitespace.
666
667 As another example, if you don't want the time-of-day of entries in
668 the prefix, you could use:
669
670 (setq org-agenda-prefix-format \" %-11:c% s\")
671
672 See also the variable `org-agenda-remove-times-when-in-prefix'."
673 :type 'string
674 :group 'org-agenda)
675
676 (defcustom org-timeline-prefix-format " % s"
677 "Like `org-agenda-prefix-format', but for the timeline of a single file."
678 :type 'string
679 :group 'org-agenda)
680
681 (defvar org-prefix-format-compiled nil
682 "The compiled version of the most recently used prefix format.
683 Depending on which command was used last, this may be the compiled version
684 of `org-agenda-prefix-format' or `org-timeline-prefix-format'.")
685
686 (defcustom org-agenda-use-time-grid t
687 "Non-nil means, show a time grid in the agenda schedule.
688 A time grid is a set of lines for specific times (like every two hours between
689 8:00 and 20:00. The items scheduled for a day at specific times are
690 sorted in between these lines.
691 For deails about when the grid will be shown, and what it will look like, see
692 the variable `org-agenda-time-grid'."
693 :group 'org-agenda
694 :type 'boolean)
695
696 (defcustom org-agenda-time-grid
697 '((daily today require-timed)
698 "----------------"
699 (800 1000 1200 1400 1600 1800 2000))
700
701 "The settings for time grid for agenda display.
702 This is a list of three items. The first item is again a list. It contains
703 symbols specifying conditions when the grid should be displayed:
704
705 daily if the agenda shows a single day
706 weekly if the agenda shows an entire week
707 today show grid on current date, independent of daily/weekly display
708 require-timed show grid only if at least on item has a time specification
709
710 The second item is a string which will be places behing the grid time.
711
712 The third item is a list of integers, indicating the times that should have
713 a grid line."
714 :group 'org-agenda
715 :type
716 '(list
717 (set :greedy t :tag "Grid Display Options"
718 (const :tag "Show grid in single day agenda display" daily)
719 (const :tag "Show grid in weekly agenda display" weekly)
720 (const :tag "Always show grid for today" today)
721 (const :tag "Show grid only if any timed entries are present"
722 require-timed)
723 (const :tag "Skip grid times already present in an entry"
724 remove-match))
725 (string :tag "Grid String")
726 (repeat :tag "Grid Times" (integer :tag "Time"))))
727
728 (defcustom org-agenda-remove-times-when-in-prefix t
729 "Non-nil means, remove duplicate time specifications in agenda items.
730 When the format `org-agenda-prefix-format' contains a `%t' specifier, a
731 time-of-day specification in a headline or diary entry is extracted and
732 placed into the prefix. If this option is non-nil, the original specification
733 \(a timestamp or -range, or just a plain time(range) specification like
734 11:30-4pm) will be removed for agenda display. This makes the agenda less
735 cluttered.
736 The option can be t or nil. It may also be the symbol `beg', indicating
737 that the time should only be removed what it is located at the beginning of
738 the headline/diary entry."
739 :group 'org-agenda
740 :type '(choice
741 (const :tag "Always" t)
742 (const :tag "Never" nil)
743 (const :tag "When at beginning of entry" beg)))
744
745 (defcustom org-sort-agenda-notime-is-late t
746 "Non-nil means, items without time are considered late.
747 This is only relevant for sorting. When t, items which have no explicit
748 time like 15:30 will be considered as 24:01, i.e. later than any items which
749 do have a time. When nil, the default time is before 0:00. You can use this
750 option to decide if the schedule for today should come before or after timeless
751 agenda entries."
752 :group 'org-agenda
753 :type 'boolean)
754
755 (defgroup org-structure nil
756 "Options concerning structure editing in Org-mode."
757 :tag "Org Structure"
758 :group 'org)
759
760 (defcustom org-cycle-hook '(org-optimize-window-after-visibility-change)
761 "Hook that is run after `org-cycle' has changed the buffer visibility.
762 The function(s) in this hook must accept a single argument which indicates
763 the new state that was set by the most recent `org-cycle' command. The
764 argument is a symbol. After a global state change, it can have the values
765 `overview', `content', or `all'. After a local state change, it can have
766 the values `folded', `children', or `subtree'."
767 :group 'org-structure
768 :type 'hook)
769
770 (defcustom org-occur-hook '(org-first-headline-recenter)
771 "Hook that is run after `org-occur' has constructed a sparse tree.
772 This can be used to recenter the window to show as much of the structure
773 as possible."
774 :group 'org-structure
775 :type 'hook)
776
777 (defcustom org-level-color-stars-only nil
778 "Non-nil means fontify only the stars in each headline.
779 When nil, the entire headline is fontified.
780 After changin this, requires restart of Emacs to become effective."
781 :group 'org-structure
782 :type 'boolean)
783
784 (defcustom org-adapt-indentation t
785 "Non-nil means, adapt indentation when promoting and demoting.
786 When this is set and the *entire* text in an entry is indented, the
787 indentation is increased by one space in a demotion command, and
788 decreased by one in a promotion command. If any line in the entry
789 body starts at column 0, indentation is not changed at all."
790 :group 'org-structure
791 :type 'boolean)
792
793 (defcustom org-enable-fixed-width-editor t
794 "Non-nil means, lines starting with \":\" are treated as fixed-width.
795 This currently only means, they are never auto-wrapped.
796 When nil, such lines will be treated like ordinary lines.
797 See also the QUOTE keyword."
798 :group 'org-structure
799 :type 'boolean)
800
801 (defcustom org-cycle-emulate-tab t
802 "Where should `org-cycle' emulate TAB.
803 nil Never
804 white Only in completely white lines
805 t Everywhere except in headlines"
806 :group 'org-structure
807 :type '(choice (const :tag "Never" nil)
808 (const :tag "Only in completely white lines" white)
809 (const :tag "Everywhere except in headlines" t)
810 ))
811
812 (defcustom org-show-following-heading t
813 "Non-nil means, show heading following match in `org-occur'.
814 When doing an `org-occur' it is useful to show the headline which
815 follows the match, even if they do not match the regexp. This makes it
816 easier to edit directly inside the sparse tree. However, if you use
817 org-occur mainly as an overview, the following headlines are
818 unnecessary clutter."
819 :group 'org-structure
820 :type 'boolean)
821
822 (defcustom org-archive-location "%s_archive::"
823 "The location where subtrees should be archived.
824 This string consists of two parts, separated by a double-colon.
825
826 The first part is a file name - when omitted, archiving happens in the same
827 file. %s will be replaced by the current file name (without directory part).
828 Archiving to a different file is useful to keep archived entries from
829 contributing to the Org-mode Agenda.
830
831 The part after the double colon is a headline. The archived entries will be
832 filed under that headline. When omitted, the subtrees are simply filed away
833 at the end of the file, as top-level entries.
834
835 Here are a few examples:
836 \"%s_archive::\"
837 If the current file is Projects.org, archive in file
838 Projects.org_archive, as top-level trees. This is the default.
839
840 \"::* Archived Tasks\"
841 Archive in the current file, under the top-level headline
842 \"* Archived Tasks\".
843
844 \"~/org/archive.org::\"
845 Archive in file ~/org/archive.org (absolute path), as top-level trees.
846
847 \"basement::** Finished Tasks\"
848 Archive in file ./basement (relative path), as level 3 trees
849 below the level 2 heading \"** Finished Tasks\".
850
851 You may set this option on a per-file basis by adding to the buffer a
852 line like
853
854 #+ARCHIVE: basement::** Finished Tasks"
855 :group 'org-structure
856 :type 'string)
857
858 (defcustom org-archive-mark-done t
859 "Non-nil means, mark archived entries as DONE."
860 :group 'org-structure
861 :type 'boolean)
862
863 (defcustom org-archive-stamp-time t
864 "Non-nil means, add a time stamp to archived entries.
865 The time stamp will be added directly after the TODO state keyword in the
866 first line, so it is probably best to use this in combinations with
867 `org-archive-mark-done'."
868 :group 'org-structure
869 :type 'boolean)
870
871 (defgroup org-link nil
872 "Options concerning links in Org-mode."
873 :tag "Org Link"
874 :group 'org)
875
876 (defcustom org-link-format "<%s>"
877 "Default format for linkes in the buffer.
878 This is a format string for printf, %s will be replaced by the link text.
879 If you want to make sure that your link is always properly terminated,
880 include angle brackets into this format, like \"<%s>\". Some people also
881 recommend an additional URL: prefix, so the format would be \"<URL:%s>\"."
882 :group 'org-link
883 :type '(choice
884 (const :tag "\"%s\" (e.g. http://www.there.com)" "%s")
885 (const :tag "\"<%s>\" (e.g. <http://www.there.com>)" "<%s>")
886 (const :tag "\"<URL:%s>\" (e.g. <URL:http://www.there.com>)" "<URL:%s>")
887 (string :tag "Other" :value "<%s>")))
888
889 (defcustom org-allow-space-in-links t
890 "Non-nil means, file names in links may contain space characters.
891 When nil, it becomes possible to put several links into a line.
892 Note that in tables, a link never extends accross fields, so in a table
893 it is always possible to put several links into a line.
894 Changing this varable requires a re-launch of Emacs of become effective."
895 :group 'org-link
896 :type 'boolean)
897
898 (defcustom org-line-numbers-in-file-links t
899 "Non-nil means, file links from `org-store-link' contain line numbers.
900 The line number will be added to the file name with :NNN and interpreted
901 by the command `org-open-at-point'.
902 Using a prefix arg to the command \\[org-store-link] (`org-store-link')
903 negates this setting for the duration of the command."
904 :group 'org-link
905 :type 'boolean)
906
907 (defcustom org-keep-stored-link-after-insertion nil
908 "Non-nil means, keep link in list for entire session.
909
910 The command `org-store-link' adds a link pointing to the current
911 location to an internal list. These links accumulate during a session.
912 The command `org-insert-link' can be used to insert links into any
913 Org-mode file (offering completion for all stored links). When this
914 option is nil, every link which has been inserted once using \\[org-insert-link]
915 will be removed from the list, to make completing the unused links
916 more efficient."
917 :group 'org-link
918 :type 'boolean)
919
920 (defcustom org-link-frame-setup
921 '((vm . vm-visit-folder-other-frame)
922 (gnus . gnus-other-frame)
923 (file . find-file-other-window))
924 "Setup the frame configuration for following links.
925 When following a link with Emacs, it may often be useful to display
926 this link in another window or frame. This variable can be used to
927 set this up for the different types of links.
928 For VM, use any of
929 `vm-visit-folder'
930 `vm-visit-folder-other-frame'
931 For Gnus, use any of
932 `gnus'
933 `gnus-other-frame'
934 For FILE, use any of
935 `find-file'
936 `find-file-other-window'
937 `find-file-other-frame'
938 For the calendar, use the variable `calendar-setup'.
939 For BBDB, it is currently only possible to display the matches in
940 another window."
941 :group 'org-link
942 :type '(list
943 (cons (const vm)
944 (choice
945 (const vm-visit-folder)
946 (const vm-visit-folder-other-window)
947 (const vm-visit-folder-other-frame)))
948 (cons (const gnus)
949 (choice
950 (const gnus)
951 (const gnus-other-frame)))
952 (cons (const file)
953 (choice
954 (const find-file)
955 (const find-file-other-window)
956 (const find-file-other-frame)))))
957
958 (defcustom org-usenet-links-prefer-google nil
959 "Non-nil means, `org-store-link' will create web links to google groups.
960 When nil, Gnus will be used for such links.
961 Using a prefix arg to the command \\[org-store-link] (`org-store-link')
962 negates this setting for the duration of the command."
963 :group 'org-link
964 :type 'boolean)
965
966 (defcustom org-open-non-existing-files nil
967 "Non-nil means, `org-open-file' will open non-existing file.
968 When nil, an error will be generated."
969 :group 'org-link
970 :type 'boolean)
971
972 (defcustom org-confirm-shell-links t
973 "Non-nil means, ask for confirmation before executing shell links.
974 The default is true, to keep new users from shooting into their own foot."
975 :group 'org-link
976 :type 'boolean)
977
978 (defconst org-file-apps-defaults-gnu
979 '((t . emacs)
980 ("jpg" . "xv %s")
981 ("gif" . "xv %s")
982 ("ppm" . "xv %s")
983 ("pgm" . "xv %s")
984 ("pbm" . "xv %s")
985 ("tif" . "xv %s")
986 ("png" . "xv %s")
987 ("ps" . "gv %s")
988 ("ps.gz" . "gv %s")
989 ("eps" . "gv %s")
990 ("eps.gz" . "gv %s")
991 ("dvi" . "xdvi %s")
992 ("mpeg" . "plaympeg %s")
993 ("mp3" . "plaympeg %s")
994 ("fig" . "xfig %s")
995 ("pdf" . "acroread %s")
996 ("doc" . "soffice %s")
997 ("ppt" . "soffice %s")
998 ("pps" . "soffice %s")
999 ("html" . "netscape -remote openURL(%s,new-window)")
1000 ("htm" . "netscape -remote openURL(%s,new-window)")
1001 ("xs" . "soffice %s"))
1002 "Default file applications on a UNIX/LINUX system.
1003 See `org-file-apps'.")
1004
1005 (defconst org-file-apps-defaults-macosx
1006 '((t . "open %s")
1007 ("ps" . "gv %s")
1008 ("ps.gz" . "gv %s")
1009 ("eps" . "gv %s")
1010 ("eps.gz" . "gv %s")
1011 ("dvi" . "xdvi %s")
1012 ("fig" . "xfig %s"))
1013 "Default file applications on a MacOS X system.
1014 The system \"open\" is known as a default, but we use X11 applications
1015 for some files for which the OS does not have a good default.
1016 See `org-file-apps'.")
1017
1018 (defconst org-file-apps-defaults-windowsnt
1019 '((t . (w32-shell-execute "open" file)))
1020 "Default file applications on a Windows NT system.
1021 The system \"open\" is used for most files.
1022 See `org-file-apps'.")
1023
1024 (defcustom org-file-apps
1025 '(
1026 ("txt" . emacs)
1027 ("tex" . emacs)
1028 ("ltx" . emacs)
1029 ("org" . emacs)
1030 ("el" . emacs)
1031 )
1032 "External applications for opening `file:path' items in a document.
1033 Org-mode uses system defaults for different file types, but
1034 you can use this variable to set the application for a given file
1035 extension. The entries in this list are cons cells with a file extension
1036 and the corresponding command. Possible values for the command are:
1037 `emacs' The file will be visited by the current Emacs process.
1038 `default' Use the default application for this file type.
1039 string A command to be executed by a shell; %s will be replaced
1040 by the path to the file.
1041 sexp A Lisp form which will be evaluated. The file path will
1042 be available in the Lisp variable `file'.
1043 For more examples, see the system specific constants
1044 `org-file-apps-defaults-macosx'
1045 `org-file-apps-defaults-windowsnt'
1046 `org-file-apps-defaults-gnu'."
1047 :group 'org-link
1048 :type '(repeat
1049 (cons (string :tag "Extension")
1050 (choice :value ""
1051 (const :tag "Visit with Emacs" 'emacs)
1052 (const :tag "Use system default" 'default)
1053 (string :tag "Command")
1054 (sexp :tag "Lisp form")))))
1055
1056
1057 (defgroup org-remember nil
1058 "Options concerning interaction with remember.el."
1059 :tag "Org Remember"
1060 :group 'org)
1061
1062 (defcustom org-directory "~/org"
1063 "Directory with org files.
1064 This directory will be used as default to prompt for org files.
1065 Used by the hooks for remember.el."
1066 :group 'org-remember
1067 :type 'directory)
1068
1069 (defcustom org-default-notes-file "~/.notes"
1070 "Default target for storing notes.
1071 Used by the hooks for remember.el. This can be a string, or nil to mean
1072 the value of `remember-data-file'."
1073 :group 'org-remember
1074 :type '(choice
1075 (const :tag "Default from remember-data-file" nil)
1076 file))
1077
1078 (defcustom org-reverse-note-order nil
1079 "Non-nil means, store new notes at the beginning of a file or entry.
1080 When nil, new notes will be filed to the end of a file or entry."
1081 :group 'org-remember
1082 :type '(choice
1083 (const :tag "Reverse always" t)
1084 (const :tag "Reverse never" nil)
1085 (repeat :tag "By file name regexp"
1086 (cons regexp boolean))))
1087
1088 (defgroup org-table nil
1089 "Options concerning tables in Org-mode."
1090 :tag "Org Table"
1091 :group 'org)
1092
1093 (defcustom org-enable-table-editor 'optimized
1094 "Non-nil means, lines starting with \"|\" are handled by the table editor.
1095 When nil, such lines will be treated like ordinary lines.
1096
1097 When equal to the symbol `optimized', the table editor will be optimized to
1098 do the following
1099 - Use automatic overwrite mode in front of whitespace in table fields.
1100 This make the structure of the table stay in tact as long as the edited
1101 field does not exceed the column width.
1102 - Minimize the number of realigns. Normally, the table is aligned each time
1103 TAB or RET are pressed to move to another field. With optimization this
1104 happens only if changes to a field might have changed the column width.
1105 Optimization requires replacing the functions `self-insert-command',
1106 `delete-char', and `backward-delete-char' in Org-mode buffers, with a
1107 slight (in fact: unnoticeable) speed impact for normal typing. Org-mode is
1108 very good at guessing when a re-align will be necessary, but you can always
1109 force one with \\[org-ctrl-c-ctrl-c].
1110
1111 If you would like to use the optimized version in Org-mode, but the
1112 un-optimized version in OrgTbl-mode, see the variable `orgtbl-optimized'.
1113
1114 This variable can be used to turn on and off the table editor during a session,
1115 but in order to toggle optimization, a restart is required.
1116
1117 See also the variable `org-table-auto-blank-field'."
1118 :group 'org-table
1119 :type '(choice
1120 (const :tag "off" nil)
1121 (const :tag "on" t)
1122 (const :tag "on, optimized" optimized)))
1123
1124 (defcustom org-table-auto-blank-field t
1125 "Non-nil means, automatically blank table field when starting to type into it.
1126 This only happens when typing immediately after a field motion
1127 command (TAB, S-TAB or RET).
1128 Only relevant when `org-enable-table-editor' is equal to `optimized'."
1129 :group 'org-table
1130 :type 'boolean)
1131
1132 (defcustom org-table-default-size "5x2"
1133 "The default size for newly created tables, Columns x Rows."
1134 :group 'org-table
1135 :type 'string)
1136
1137 (defcustom org-table-automatic-realign t
1138 "Non-nil means, automatically re-align table when pressing TAB or RETURN.
1139 When nil, aligning is only done with \\[org-table-align], or after column
1140 removal/insertion."
1141 :group 'org-table
1142 :type 'boolean)
1143
1144 (defcustom org-table-spaces-around-separators '(1 . 1)
1145 "The number of spaces to be placed before and after separators."
1146 :group 'org-table
1147 :type '(cons (number :tag "Before \"|\"") (number :tag " After \"|\"")))
1148
1149 (defcustom org-table-spaces-around-invisible-separators '(1 . 2)
1150 "The number of spaces to be placed before and after separators.
1151 This option applies when the column separators have been made invisible."
1152 :group 'org-table
1153 :type '(cons (number :tag "Before \"|\"") (number :tag " After \"|\"")))
1154
1155 (defcustom org-table-number-regexp "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$"
1156 "Regular expression for recognizing numbers in table columns.
1157 If a table column contains mostly numbers, it will be aligned to the
1158 right. If not, it will be aligned to the left.
1159
1160 The default value of this option is a regular expression which allows
1161 anything which looks remotely like a number as used in scientific
1162 context. For example, all of the following will be considered a
1163 number:
1164 12 12.2 2.4e-08 2x10^12 4.034+-0.02 2.7(10) >3.5
1165
1166 Other options offered by the customize interface are more restrictive."
1167 :group 'org-table
1168 :type '(choice
1169 (const :tag "Positive Integers"
1170 "^[0-9]+$")
1171 (const :tag "Integers"
1172 "^[-+]?[0-9]+$")
1173 (const :tag "Floating Point Numbers"
1174 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.[0-9]*\\)$")
1175 (const :tag "Floating Point Number or Integer"
1176 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.?[0-9]*\\)$")
1177 (const :tag "Exponential, Floating point, Integer"
1178 "^[-+]?[0-9.]+\\([eEdD][-+0-9]+\\)?$")
1179 (const :tag "Very General Number-Like"
1180 "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$")
1181 (string :tag "Regexp:")))
1182
1183 (defcustom org-table-number-fraction 0.5
1184 "Fraction of numbers in a column required to make the column align right.
1185 In a column all non-white fields are considered. If at least this
1186 fraction of fields is matched by `org-table-number-fraction',
1187 alignment to the right border applies."
1188 :group 'org-table
1189 :type 'number)
1190
1191 (defcustom org-export-highlight-first-table-line t
1192 "Non-nil means, highlight the first table line.
1193 In HTML export, this means use <th> instead of <td>.
1194 In tables created with table.el, this applies to the first table line.
1195 In Org-mode tables, all lines before the first horizontal separator
1196 line will be formatted with <th> tags."
1197 :group 'org-table
1198 :type 'boolean)
1199
1200 (defcustom org-table-tab-recognizes-table.el t
1201 "Non-nil means, TAB will automatically notice a table.el table.
1202 When it sees such a table, it moves point into it and - if necessary -
1203 calls `table-recognize-table'."
1204 :group 'org-table
1205 :type 'boolean)
1206
1207 (defgroup org-table-calculation nil
1208 "Options concerning tables in Org-mode."
1209 :tag "Org Table Calculation"
1210 :group 'org)
1211
1212 (defcustom org-table-copy-increment t
1213 "Non-nil means, increment when copying current field with \\[org-table-copy-down]."
1214 :group 'org-table-calculation
1215 :type 'boolean)
1216
1217 (defcustom org-calc-default-modes
1218 '(calc-internal-prec 12
1219 calc-float-format (float 5)
1220 calc-angle-mode deg
1221 calc-prefer-frac nil
1222 calc-symbolic-mode nil
1223 calc-date-format (YYYY "-" MM "-" DD " " Www (" " HH ":" mm))
1224 calc-display-working-message t
1225 )
1226 "List with Calc mode settings for use in calc-eval for table formulas.
1227 The list must contain alternating symbols (calc modes variables and values.
1228 Don't remove any of the default settings, just change the values. Org-mode
1229 relies on the variables to be present in the list."
1230 :group 'org-table-calculation
1231 :type 'plist)
1232
1233 (defcustom org-table-formula-evaluate-inline t
1234 "Non-nil means, TAB and RET evaluate a formula in current table field.
1235 If the current field starts with an equal sign, it is assumed to be a formula
1236 which should be evaluated as described in the manual and in the documentation
1237 string of the command `org-table-eval-formula'. This feature requires the
1238 Emacs calc package.
1239 When this variable is nil, formula calculation is only available through
1240 the command \\[org-table-eval-formula]."
1241 :group 'org-table-calculation
1242 :type 'boolean)
1243
1244
1245 (defcustom org-table-formula-use-constants t
1246 "Non-nil means, interpret constants in formulas in tables.
1247 A constant looks like `$c' or `$Grav' and will be replaced before evaluation
1248 by the value given in `org-table-formula-constants', or by a value obtained
1249 from the `constants.el' package."
1250 :group 'org-table-calculation
1251 :type 'boolean)
1252
1253 (defcustom org-table-formula-constants nil
1254 "Alist with constant names and values, for use in table formulas.
1255 The car of each element is a name of a constant, without the `$' before it.
1256 The cdr is the value as a string. For example, if you'd like to use the
1257 speed of light in a formula, you would configure
1258
1259 (setq org-table-formula-constants '((\"c\" . \"299792458.\")))
1260
1261 and then use it in an equation like `$1*$c'."
1262 :group 'org-table-calculation
1263 :type '(repeat
1264 (cons (string :tag "name")
1265 (string :tag "value"))))
1266
1267 (defcustom org-table-formula-numbers-only nil
1268 "Non-nil means, calculate only with numbers in table formulas.
1269 Then all input fields will be converted to a number, and the result
1270 must also be a number. When nil, calc's full potential is available
1271 in table calculations, including symbolics etc."
1272 :group 'org-table-calculation
1273 :type 'boolean)
1274
1275 (defcustom org-table-allow-automatic-line-recalculation t
1276 "Non-nil means, lines makred with |#| or |*| will be recomputed automatically.
1277 Automatically means, when TAB or RET or C-c C-c are pressed in the line."
1278 :group 'org-table-calculation
1279 :type 'boolean)
1280
1281 (defgroup org-export nil
1282 "Options for exporting org-listings."
1283 :tag "Org Export"
1284 :group 'org)
1285
1286 (defcustom org-export-language-setup
1287 '(("en" "Author" "Date" "Table of Contents")
1288 ("da" "Ophavsmand" "Dato" "Indhold")
1289 ("de" "Autor" "Datum" "Inhaltsverzeichnis")
1290 ("es" "Autor" "Fecha" "\xccndice")
1291 ("fr" "Auteur" "Date" "Table des Mati\xe8res")
1292 ("it" "Autore" "Data" "Indice")
1293 ("nl" "Auteur" "Datum" "Inhoudsopgave")
1294 ("nn" "Forfattar" "Dato" "Innhold") ;; nn = Norsk (nynorsk)
1295 ("sv" "F\xf6rfattarens" "Datum" "Inneh\xe5ll"))
1296 "Terms used in export text, translated to different languages.
1297 Use the variable `org-export-default-language' to set the language,
1298 or use the +OPTION lines for a per-file setting."
1299 :group 'org-export
1300 :type '(repeat
1301 (list
1302 (string :tag "HTML language tag")
1303 (string :tag "Author")
1304 (string :tag "Date")
1305 (string :tag "Table of Contents"))))
1306
1307 (defcustom org-export-default-language "en"
1308 "The default language of HTML export, as a string.
1309 This should have an association in `org-export-language-setup'"
1310 :group 'org-export
1311 :type 'string)
1312
1313 (defcustom org-export-headline-levels 3
1314 "The last level which is still exported as a headline.
1315 Inferior levels will produce itemize lists when exported.
1316 Note that a numeric prefix argument to an exporter function overrides
1317 this setting.
1318
1319 This option can also be set with the +OPTIONS line, e.g. \"H:2\"."
1320 :group 'org-export
1321 :type 'number)
1322
1323 (defcustom org-export-with-section-numbers t
1324 "Non-nil means, add section numbers to headlines when exporting.
1325
1326 This option can also be set with the +OPTIONS line, e.g. \"num:t\"."
1327 :group 'org-export
1328 :type 'boolean)
1329
1330 (defcustom org-export-with-toc t
1331 "Non-nil means, create a table of contents in exported files.
1332 The TOC contains headlines with levels up to`org-export-headline-levels'.
1333
1334 Headlines which contain any TODO items will be marked with \"(*)\" in
1335 ASCII export, and with red color in HTML output.
1336
1337 In HTML output, the TOC will be clickable.
1338
1339 This option can also be set with the +OPTIONS line, e.g. \"toc:nil\"."
1340 :group 'org-export
1341 :type 'boolean)
1342
1343 (defcustom org-export-preserve-breaks nil
1344 "Non-nil means, preserve all line breaks when exporting.
1345 Normally, in HTML output paragraphs will be reformatted. In ASCII
1346 export, line breaks will always be preserved, regardless of this variable.
1347
1348 This option can also be set with the +OPTIONS line, e.g. \"\\n:t\"."
1349 :group 'org-export
1350 :type 'boolean)
1351
1352 (defcustom org-export-html-inline-images t
1353 "Non-nil means, inline images into exported HTML pages.
1354 The link will still be to the original location of the image file.
1355 So if you are moving the page, lets say to your public HTML site,
1356 you will have to move the image and maybe change the link."
1357 :group 'org-export
1358 :type 'boolean)
1359
1360 (defcustom org-export-html-expand t
1361 "Non-nil means, for HTML export, treat @<...> as HTML tag.
1362 When nil, these tags will be exported as plain text and therefore
1363 not be interpreted by a browser.
1364
1365 This option can also be set with the +OPTIONS line, e.g. \"@:nil\"."
1366 :group 'org-export
1367 :type 'boolean)
1368
1369 (defcustom org-export-with-fixed-width t
1370 "Non-nil means, lines starting with \":\" will be in fixed width font.
1371 This can be used to have pre-formatted text, fragments of code etc. For
1372 example
1373 : ;; Some Lisp examples
1374 : (while (defc cnt)
1375 : (ding))
1376 will be looking just like this in also HTML. In ASCII export, this option
1377 has no effect.
1378
1379 This option can also be set with the +OPTIONS line, e.g. \"::nil\"."
1380 :group 'org-export
1381 :type 'boolean)
1382
1383 (defcustom org-export-with-tables t
1384 "If non-nil, lines starting with \"|\" define a table.
1385 For example:
1386
1387 | Name | Address | Birthday |
1388 |-------------+----------+-----------|
1389 | Arthur Dent | England | 29.2.2100 |
1390
1391 In ASCII export, this option has no effect.
1392
1393 This option can also be set with the +OPTIONS line, e.g. \"|:nil\"."
1394 :group 'org-export
1395 :type 'boolean)
1396
1397 (defcustom org-export-prefer-native-exporter-for-tables nil
1398 "Non-nil means, always export tables created with table.el natively.
1399 Natively means, use the HTML code generator in table.el.
1400 When nil, Org-mode's own HTML generator is used when possible (i.e. if
1401 the table does not use row- or column-spanning). This has the
1402 advantage, that the automatic HTML conversions for math symbols and
1403 sub/superscripts can be applied. Org-mode's HTML generator is also
1404 much faster."
1405 :group 'org-export
1406 :type 'boolean)
1407
1408 (defcustom org-export-html-table-tag
1409 "<table border=1 cellspacing=0 cellpadding=6>"
1410 "The HTML tag used to start a table.
1411 This must be a <table> tag, but you may change the options like
1412 borders and spacing."
1413 :group 'org-export
1414 :type 'string)
1415
1416 (defcustom org-export-with-emphasize t
1417 "Non-nil means, interpret *word*, /word/, and _word_ as emphasized text.
1418 If the export target supports emphasizing text, the word will be
1419 typeset in bold, italic, or underlined, respectively. Works only for
1420 single words, but you can say: I *really* *mean* *this*.
1421 In ASCII export, this option has no effect.
1422
1423 This option can also be set with the +OPTIONS line, e.g. \"*:nil\"."
1424 :group 'org-export
1425 :type 'boolean)
1426
1427 (defcustom org-match-sexp-depth 3
1428 "Number of stacked braces for sub/superscript matching.
1429 This has to be set before loading org.el to be effective."
1430 :group 'org-export
1431 :type 'integer)
1432
1433 ;; FIXME: Should () parens be removed as well in sub/superscripts?
1434 (defcustom org-export-with-sub-superscripts t
1435 "Non-nil means, interpret \"_\" and \"^\" for export.
1436 When this option is turned on, you can use TeX-like syntax for sub- and
1437 superscripts. Several characters after \"_\" or \"^\" will be
1438 considered as a single item - so grouping with {} is normally not
1439 needed. For example, the following things will be parsed as single
1440 sub- or superscripts.
1441
1442 10^24 or 10^tau several digits will be considered 1 item
1443 10^-12 or 10^-tau a leading sign with digits or a word
1444 x^2-y^3 will be read as x^2 - y^3, because items are
1445 terminated by almost any nonword/nondigit char.
1446 x_{i^2} or x^(2-i) braces or parenthesis do grouping.
1447
1448 Still, ambiguity is possible - so when in doubt use {} to enclose the
1449 sub/superscript.
1450 In ASCII export, this option has no effect.
1451
1452 This option can also be set with the +OPTIONS line, e.g. \"^:nil\"."
1453 :group 'org-export
1454 :type 'boolean)
1455
1456 (defcustom org-export-with-TeX-macros t
1457 "Non-nil means, interpret simple TeX-like macros when exporting.
1458 For example, HTML export converts \\alpha to &alpha; and \\AA to &Aring;.
1459 No only real TeX macros will work here, but the standard HTML entities
1460 for math can be used as macro names as well. For a list of supported
1461 names in HTML export, see the constant `org-html-entities'.
1462 In ASCII export, this option has no effect.
1463
1464 This option can also be set with the +OPTIONS line, e.g. \"TeX:nil\"."
1465 :group 'org-export
1466 :type 'boolean)
1467
1468 (defcustom org-export-html-with-timestamp nil
1469 "If non-nil, write `org-export-html-html-helper-timestamp'
1470 into the exported html text. Otherwise, the buffer will just be saved
1471 to a file."
1472 :group 'org-export
1473 :type 'boolean)
1474
1475 (defcustom org-export-html-html-helper-timestamp
1476 "<br><br><hr><p><!-- hhmts start --> <!-- hhmts end -->\n"
1477 "The HTML tag used as timestamp delimiter for HTML-helper-mode."
1478 :group 'org-export
1479 :type 'string)
1480
1481 (defcustom org-export-ascii-show-new-buffer t
1482 "Non-nil means, popup buffer containing the exported ASCII text.
1483 Otherwise the buffer will just be saved to a file and stay hidden."
1484 :group 'org-export
1485 :type 'boolean)
1486
1487 (defcustom org-export-html-show-new-buffer nil
1488 "Non-nil means, popup buffer containing the exported html text.
1489 Otherwise, the buffer will just be saved to a file and stay hidden."
1490 :group 'org-export
1491 :type 'boolean)
1492
1493 (defgroup org-faces nil
1494 "Faces for highlighting in Org-mode."
1495 :tag "Org Faces"
1496 :group 'org)
1497
1498 (defface org-level-1 ;; font-lock-function-name-face
1499 '((((type tty) (class color)) (:foreground "blue" :weight bold))
1500 (((class color) (background light)) (:foreground "Blue"))
1501 (((class color) (background dark)) (:foreground "LightSkyBlue"))
1502 (t (:inverse-video t :bold t)))
1503 "Face used for level 1 headlines."
1504 :group 'org-faces)
1505
1506 (defface org-level-2 ;; font-lock-variable-name-face
1507 '((((type tty) (class color)) (:foreground "yellow" :weight light))
1508 (((class color) (background light)) (:foreground "DarkGoldenrod"))
1509 (((class color) (background dark)) (:foreground "LightGoldenrod"))
1510 (t (:bold t :italic t)))
1511 "Face used for level 2 headlines."
1512 :group 'org-faces)
1513
1514 (defface org-level-3 ;; font-lock-keyword-face
1515 '((((type tty) (class color)) (:foreground "cyan" :weight bold))
1516 (((class color) (background light)) (:foreground "Purple"))
1517 (((class color) (background dark)) (:foreground "Cyan"))
1518 (t (:bold t)))
1519 "Face used for level 3 headlines."
1520 :group 'org-faces)
1521
1522 (defface org-level-4 ;; font-lock-comment-face
1523 '((((type tty pc) (class color) (background light)) (:foreground "red"))
1524 (((type tty pc) (class color) (background dark)) (:foreground "red1"))
1525 (((class color) (background light)) (:foreground "Firebrick"))
1526 (((class color) (background dark)) (:foreground "chocolate1"))
1527 (t (:bold t :italic t)))
1528 "Face used for level 4 headlines."
1529 :group 'org-faces)
1530
1531 (defface org-level-5 ;; font-lock-type-face
1532 '((((type tty) (class color)) (:foreground "green"))
1533 (((class color) (background light)) (:foreground "ForestGreen"))
1534 (((class color) (background dark)) (:foreground "PaleGreen"))
1535 (t (:bold t :underline t)))
1536 "Face used for level 5 headlines."
1537 :group 'org-faces)
1538
1539 (defface org-level-6 ;; font-lock-constant-face
1540 '((((type tty) (class color)) (:foreground "magenta"))
1541 (((class color) (background light)) (:foreground "CadetBlue"))
1542 (((class color) (background dark)) (:foreground "Aquamarine"))
1543 (t (:bold t :underline t)))
1544 "Face used for level 6 headlines."
1545 :group 'org-faces)
1546
1547 (defface org-level-7 ;; font-lock-builtin-face
1548 '((((type tty) (class color)) (:foreground "blue" :weight light))
1549 (((class color) (background light)) (:foreground "Orchid"))
1550 (((class color) (background dark)) (:foreground "LightSteelBlue"))
1551 (t (:bold t)))
1552 "Face used for level 7 headlines."
1553 :group 'org-faces)
1554
1555 (defface org-level-8 ;; font-lock-string-face
1556 '((((type tty) (class color)) (:foreground "green"))
1557 (((class color) (background light)) (:foreground "RosyBrown"))
1558 (((class color) (background dark)) (:foreground "LightSalmon"))
1559 (t (:italic t)))
1560 "Face used for level 8 headlines."
1561 :group 'org-faces)
1562
1563 (defface org-special-keyword ;; font-lock-string-face
1564 '((((type tty) (class color)) (:foreground "green"))
1565 (((class color) (background light)) (:foreground "RosyBrown"))
1566 (((class color) (background dark)) (:foreground "LightSalmon"))
1567 (t (:italic t)))
1568 "Face used for level 8 headlines."
1569 :group 'org-faces)
1570
1571 (defface org-warning ;; font-lock-warning-face
1572 '((((type tty) (class color)) (:foreground "red"))
1573 (((class color) (background light)) (:foreground "Red" :bold t))
1574 (((class color) (background dark)) (:foreground "Red1" :bold t))
1575 ; (((class color) (background dark)) (:foreground "Pink" :bold t))
1576 (t (:inverse-video t :bold t)))
1577 "Face for deadlines and TODO keywords."
1578 :group 'org-faces)
1579
1580 (defcustom org-fontify-done-headline nil
1581 "Non-nil means, change the face of a headline if it is marked DONE.
1582 Normally, only the TODO/DONE keyword indicates the state of a headline.
1583 When this is non-nil, the headline after the keyword is set to the
1584 `org-headline-done' as an additional indication."
1585 :group 'org-faces
1586 :type 'boolean)
1587
1588 (defface org-headline-done ;; font-lock-string-face
1589 '((((type tty) (class color)) (:foreground "green"))
1590 (((class color) (background light)) (:foreground "RosyBrown"))
1591 (((class color) (background dark)) (:foreground "LightSalmon"))
1592 (t (:italic t)))
1593 "Face used to indicate that a headline is DONE. See also the variable
1594 `org-fontify-done-headline'."
1595 :group 'org-faces)
1596
1597 ;; Inheritance does not yet work for xemacs. So we just copy...
1598
1599 (defface org-deadline-announce
1600 '((((type tty) (class color)) (:foreground "blue" :weight bold))
1601 (((class color) (background light)) (:foreground "Blue"))
1602 (((class color) (background dark)) (:foreground "LightSkyBlue"))
1603 (t (:inverse-video t :bold t)))
1604 "Face for upcoming deadlines."
1605 :group 'org-faces)
1606
1607 (defface org-scheduled-today
1608 '((((type tty) (class color)) (:foreground "green"))
1609 (((class color) (background light)) (:foreground "DarkGreen"))
1610 (((class color) (background dark)) (:foreground "PaleGreen"))
1611 (t (:bold t :underline t)))
1612 "Face for items scheduled for a certain day."
1613 :group 'org-faces)
1614
1615 (defface org-scheduled-previously
1616 '((((type tty pc) (class color) (background light)) (:foreground "red"))
1617 (((type tty pc) (class color) (background dark)) (:foreground "red1"))
1618 (((class color) (background light)) (:foreground "Firebrick"))
1619 (((class color) (background dark)) (:foreground "chocolate1"))
1620 (t (:bold t :italic t)))
1621 "Face for items scheduled previously, and not yet done."
1622 :group 'org-faces)
1623
1624 (defface org-formula
1625 '((((type tty pc) (class color) (background light)) (:foreground "red"))
1626 (((type tty pc) (class color) (background dark)) (:foreground "red1"))
1627 (((class color) (background light)) (:foreground "Firebrick"))
1628 (((class color) (background dark)) (:foreground "chocolate1"))
1629 (t (:bold t :italic t)))
1630 "Face for items scheduled previously, and not yet done."
1631 :group 'org-faces)
1632
1633 (defface org-link
1634 '((((type tty) (class color)) (:foreground "cyan" :weight bold))
1635 (((class color) (background light)) (:foreground "Purple"))
1636 (((class color) (background dark)) (:foreground "Cyan"))
1637 (t (:bold t)))
1638 "Face for links."
1639 :group 'org-faces)
1640
1641 (defface org-done ;; font-lock-type-face
1642 '((((type tty) (class color)) (:foreground "green"))
1643 (((class color) (background light)) (:foreground "ForestGreen" :bold t))
1644 (((class color) (background dark)) (:foreground "PaleGreen" :bold t))
1645 (t (:bold t :underline t)))
1646 "Face used for DONE."
1647 :group 'org-faces)
1648
1649 (defface org-table ;; font-lock-function-name-face
1650 '((((type tty) (class color)) (:foreground "blue" :weight bold))
1651 (((class color) (background light)) (:foreground "Blue"))
1652 (((class color) (background dark)) (:foreground "LightSkyBlue"))
1653 (t (:inverse-video t :bold t)))
1654 "Face used for tables."
1655 :group 'org-faces)
1656
1657 (defface org-time-grid ;; font-lock-variable-name-face
1658 '((((type tty) (class color)) (:foreground "yellow" :weight light))
1659 (((class color) (background light)) (:foreground "DarkGoldenrod"))
1660 (((class color) (background dark)) (:foreground "LightGoldenrod"))
1661 (t (:bold t :italic t)))
1662 "Face used for level 2 headlines."
1663 :group 'org-faces)
1664
1665 (defvar org-level-faces
1666 '(
1667 org-level-1
1668 org-level-2
1669 org-level-3
1670 org-level-4
1671 org-level-5
1672 org-level-6
1673 org-level-7
1674 org-level-8
1675 ))
1676 (defvar org-n-levels (length org-level-faces))
484 1677
485 (defun org-set-regexps-and-options () 1678 (defun org-set-regexps-and-options ()
486 "Precompute regular expressions for current buffer." 1679 "Precompute regular expressions for current buffer."
487 (when (eq major-mode 'org-mode) 1680 (when (eq major-mode 'org-mode)
488 (let ((re (org-make-options-regexp 1681 (let ((re (org-make-options-regexp
562 org-scheduled-regexp 1755 org-scheduled-regexp
563 (concat "\\<" org-scheduled-string) 1756 (concat "\\<" org-scheduled-string)
564 org-scheduled-time-regexp 1757 org-scheduled-time-regexp
565 (concat "\\<" org-scheduled-string " *<\\([^>]+\\)>")) 1758 (concat "\\<" org-scheduled-string " *<\\([^>]+\\)>"))
566 (org-set-font-lock-defaults))) 1759 (org-set-font-lock-defaults)))
567
568 (defgroup org-time nil
569 "Options concerning time stamps and deadlines in Org-mode."
570 :tag "Org Time"
571 :group 'org)
572
573 (defconst org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>")
574 "Formats for `format-time-string' which are used for time stamps.
575 It is not recommended to change this constant.")
576
577
578 (defcustom org-deadline-warning-days 30
579 "No. of days before expiration during which a deadline becomes active.
580 This variable governs the display in the org file."
581 :group 'org-time
582 :type 'number)
583
584 (defcustom org-popup-calendar-for-date-prompt t
585 "Non-nil means, pop up a calendar when prompting for a date.
586 In the calendar, the date can be selected with mouse-1. However, the
587 minibuffer will also be active, and you can simply enter the date as well.
588 When nil, only the minibuffer will be available."
589 :group 'org-time
590 :type 'number)
591
592 (defcustom org-calendar-follow-timestamp-change t
593 "Non-nil means, make the calendar window follow timestamp changes.
594 When a timestamp is modified and the calendar window is visible, it will be
595 moved to the new date."
596 :group 'org-time
597 :type 'boolean)
598
599 (defgroup org-agenda nil
600 "Options concerning agenda display Org-mode."
601 :tag "Org Agenda"
602 :group 'org)
603
604 (defcustom org-agenda-files nil
605 "A list of org files for agenda/diary display.
606 Entries are added to this list with \\[org-add-file] and removed with
607 \\[org-remove-file]. You can also use customize to edit the list."
608 :group 'org-agenda
609 :type '(repeat file))
610
611 (defcustom org-select-timeline-window t
612 "Non-nil means, after creating a timeline, move cursor into Timeline window.
613 When nil, cursor will remain in the current window."
614 :group 'org-agenda
615 :type 'boolean)
616
617 (defcustom org-select-agenda-window t
618 "Non-nil means, after creating an agenda, move cursor into Agenda window.
619 When nil, cursor will remain in the current window."
620 :group 'org-agenda
621 :type 'boolean)
622
623 (defcustom org-fit-agenda-window t
624 "Non-nil means, change window size of agenda to fit content."
625 :group 'org-agenda
626 :type 'boolean)
627
628 (defcustom org-agenda-show-all-dates t
629 "Non-nil means, `org-agenda' shows every day in the selected range.
630 When nil, only the days which actually have entries are shown."
631 :group 'org-agenda
632 :type 'boolean)
633
634 ;; FIXME: First day of month works only for current month because it would
635 ;; require a variable ndays treatment.
636 (defcustom org-agenda-start-on-weekday 1
637 "Non-nil means, start the overview always on the specified weekday.
638 0 Denotes Sunday, 1 denotes Monday etc.
639 When nil, always start on the current day."
640 :group 'org-agenda
641 :type '(choice (const :tag "Today" nil)
642 (const :tag "First day of month" t)
643 (number :tag "Weekday No.")))
644
645 (defcustom org-agenda-ndays 7
646 "Number of days to include in overview display."
647 :group 'org-agenda
648 :type 'number)
649
650 (defcustom org-agenda-include-all-todo t
651 "Non-nil means, the agenda will always contain all TODO entries.
652 When nil, date-less entries will only be shown if `org-agenda' is called
653 with a prefix argument.
654 When non-nil, the TODO entries will be listed at the top of the agenda, before
655 the entries for specific days."
656 :group 'org-agenda
657 :type 'boolean)
658
659 (defcustom org-agenda-include-diary nil
660 "If non-nil, include in the agenda entries from the Emacs Calendar's diary."
661 :group 'org-agenda
662 :type 'boolean)
663
664 (defcustom org-calendar-to-agenda-key [?c]
665 "The key to be installed in `calendar-mode-map' for switching to the agenda.
666 The command `org-calendar-goto-agenda' will be bound to this key. The
667 default is the character `c' because then`c' can be used to switch back and
668 force between agenda and calendar."
669 :group 'org-agenda
670 :type 'sexp)
671
672 (defcustom org-agenda-sorting-strategy '(time-up category-keep priority-down)
673 "Sorting structure for the agenda items of a single day.
674 This is a list of symbols which will be used in sequence to determine
675 if an entry should be listed before another entry. The following
676 symbols are recognized.
677
678 time-up Put entries with time-of-day indications first, early first
679 time-down Put entries with time-of-day indications first, late first
680 category-keep Keep the default order of categories, corresponding to the
681 sequence in `org-agenda-files'.
682 category-up Sort alphabetically by category, A-Z.
683 category-down Sort alphabetically by category, Z-A.
684 priority-up Sort numerically by priority, high priority last.
685 priority-down Sort numerically by priority, high priority first.
686
687 The different possibilities will be tried in sequence, and testing stops
688 if one comparison returns a \"not-equal\". For example, the default
689 '(time-up category-keep priority-down)
690 means: Pull out all entries having a specified time of day and sort them,
691 in order to make a time schedule for the current day the first thing in the
692 agenda listing for the day. Of the entries without a time indication, keep
693 the grouped in categories, don't sort the categories, but keep them in
694 the sequence given in `org-agenda-files'. Within each category sort by
695 priority.
696
697 Leaving out `category-keep' would mean that items will be sorted across
698 categories by priority."
699 :group 'org-agenda
700 :type '(repeat
701 (choice
702 (const time-up)
703 (const time-down)
704 (const category-keep)
705 (const category-up)
706 (const category-down)
707 (const priority-up)
708 (const priority-down))))
709
710 (defcustom org-agenda-prefix-format " %-12:c%?-12t% s"
711 "Format specification for the prefix of items in the agenda buffer.
712 This format works similar to a printf format, with the following meaning:
713
714 %c the category of the item, \"Diary\" for entries from the diary, or
715 as given by the CATEGORY keyword or derived from the file name.
716 %t the time-of-day specification if one applies to the entry, in the
717 format HH:MM
718 %s Scheduling/Deadline information, a short string
719
720 All specifiers work basically like the standard `%s' of printf, but may
721 contain two additional characters: A question mark just after the `%' and
722 a whitespace/punctuation character just before the final letter.
723
724 If the first character after `%' is a question mark, the entire field
725 will only be included if the corresponding value applies to the
726 current entry. This is useful for fields which should have fixed
727 width when present, but zero width when absent. For example,
728 \"%?-12t\" will result in a 12 character time field if a time of the
729 day is specified, but will completely disappear in entries which do
730 not contain a time.
731
732 If there is punctuation or whitespace character just before the final
733 format letter, this character will be appended to the field value if
734 the value is not empty. For example, the format \"%-12:c\" leads to
735 \"Diary: \" if the category is \"Diary\". If the category were be
736 empty, no additional colon would be interted.
737
738 The default value of this option is \" %-12:c%?-12t% s\", meaning:
739 - Indent the line with two space characters
740 - Give the category in a 12 chars wide field, padded with whitespace on
741 the right (because of `-'). Append a colon if there is a category
742 (because of `:').
743 - If there is a time-of-day, put it into a 12 chars wide field. If no
744 time, don't put in an empty field, just skip it (because of '?').
745 - Finally, put the scheduling information and append a whitespace.
746
747 As another example, if you don't want the time-of-day of entries in
748 the prefix, you could use:
749
750 (setq org-agenda-prefix-format \" %-11:c% s\")
751
752 See also the variable `org-agenda-remove-times-when-in-prefix'."
753 :type 'string
754 :group 'org-agenda)
755
756 (defcustom org-timeline-prefix-format " % s"
757 "Like `org-agenda-prefix-format', but for the timeline of a single file."
758 :type 'string
759 :group 'org-agenda)
760
761 (defvar org-prefix-format-compiled nil
762 "The compiled version of the most recently used prefix format.
763 Depending on which command was used last, this may be the compiled version
764 of `org-agenda-prefix-format' or `org-timeline-prefix-format'.")
765
766 (defcustom org-agenda-use-time-grid t
767 "Non-nil means, show a time grid in the agenda schedule.
768 A time grid is a set of lines for specific times (like every two hours between
769 8:00 and 20:00. The items scheduled for a day at specific times are
770 sorted in between these lines.
771 For deails about when the grid will be shown, and what it will look like, see
772 the variable `org-agenda-time-grid'."
773 :group 'org-agenda
774 :type 'boolean)
775
776 (defcustom org-agenda-time-grid
777 '((daily today require-timed)
778 "----------------"
779 (800 1000 1200 1400 1600 1800 2000))
780
781 "The settings for time grid for agenda display.
782 This is a list of three items. The first item is again a list. It contains
783 symbols specifying conditions when the grid should be displayed:
784
785 daily if the agenda shows a single day
786 weekly if the agenda shows an entire week
787 today show grid on current date, independent of daily/weekly display
788 require-timed show grid only if at least on item has a time specification
789
790 The second item is a string which will be places behing the grid time.
791
792 The third item is a list of integers, indicating the times that should have
793 a grid line."
794 :group 'org-agenda
795 :type
796 '(list
797 (set :greedy t :tag "Grid Display Options"
798 (const :tag "Show grid in single day agenda display" daily)
799 (const :tag "Show grid in weekly agenda display" weekly)
800 (const :tag "Always show grid for today" today)
801 (const :tag "Show grid only if any timed entries are present"
802 require-timed)
803 (const :tag "Skip grid times already present in an entry"
804 remove-match))
805 (string :tag "Grid String")
806 (repeat :tag "Grid Times" (integer :tag "Time"))))
807
808 (defcustom org-agenda-remove-times-when-in-prefix t
809 "Non-nil means, remove duplicate time specifications in agenda items.
810 When the format `org-agenda-prefix-format' contains a `%t' specifier, a
811 time-of-day specification in a headline or diary entry is extracted and
812 placed into the prefix. If this option is non-nil, the original specification
813 \(a timestamp or -range, or just a plain time(range) specification like
814 11:30-4pm) will be removed for agenda display. This makes the agenda less
815 cluttered.
816 The option can be t or nil. It may also be the symbol `beg', indicating
817 that the time should only be removed what it is located at the beginning of
818 the headline/diary entry."
819 :group 'org-agenda
820 :type '(choice
821 (const :tag "Always" t)
822 (const :tag "Never" nil)
823 (const :tag "When at beginning of entry" beg)))
824
825 (defcustom org-sort-agenda-notime-is-late t
826 "Non-nil means, items without time are considered late.
827 This is only relevant for sorting. When t, items which have no explicit
828 time like 15:30 will be considered as 24:01, i.e. later than any items which
829 do have a time. When nil, the default time is before 0:00. You can use this
830 option to decide if the schedule for today should come before or after timeless
831 agenda entries."
832 :group 'org-agenda
833 :type 'boolean)
834
835 (defgroup org-structure nil
836 "Options concerning structure editing in Org-mode."
837 :tag "Org Structure"
838 :group 'org)
839
840 (defcustom org-cycle-hook '(org-optimize-window-after-visibility-change)
841 "Hook that is run after `org-cycle' has changed the buffer visibility.
842 The function(s) in this hook must accept a single argument which indicates
843 the new state that was set by the most recent `org-cycle' command. The
844 argument is a symbol. After a global state change, it can have the values
845 `overview', `content', or `all'. After a local state change, it can have
846 the values `folded', `children', or `subtree'."
847 :group 'org-structure
848 :type 'hook)
849
850 (defcustom org-occur-hook '(org-first-headline-recenter)
851 "Hook that is run after `org-occur' has constructed a sparse tree.
852 This can be used to recenter the window to show as much of the structure
853 as possible."
854 :group 'org-structure
855 :type 'hook)
856
857 (defcustom org-level-color-stars-only nil
858 "Non-nil means fontify only the stars in each headline.
859 When nil, the entire headline is fontified.
860 After changin this, requires restart of Emacs to become effective."
861 :group 'org-structure
862 :type 'boolean)
863
864 (defcustom org-adapt-indentation t
865 "Non-nil means, adapt indentation when promoting and demoting.
866 When this is set and the *entire* text in an entry is indented, the
867 indentation is increased by one space in a demotion command, and
868 decreased by one in a promotion command. If any line in the entry
869 body starts at column 0, indentation is not changed at all."
870 :group 'org-structure
871 :type 'boolean)
872
873 (defcustom org-enable-fixed-width-editor t
874 "Non-nil means, lines starting with \":\" are treated as fixed-width.
875 This currently only means, they are never auto-wrapped.
876 When nil, such lines will be treated like ordinary lines.
877 See also the QUOTE keyword."
878 :group 'org-structure
879 :type 'boolean)
880
881 (defcustom org-cycle-emulate-tab t
882 "Where should `org-cycle' emulate TAB.
883 nil Never
884 white Only in completely white lines
885 t Everywhere except in headlines"
886 :group 'org-structure
887 :type '(choice (const :tag "Never" nil)
888 (const :tag "Only in completely white lines" white)
889 (const :tag "Everywhere except in headlines" t)
890 ))
891
892 (defcustom org-show-following-heading t
893 "Non-nil means, show heading following match in `org-occur'.
894 When doing an `org-occur' it is useful to show the headline which
895 follows the match, even if they do not match the regexp. This makes it
896 easier to edit directly inside the sparse tree. However, if you use
897 org-occur mainly as an overview, the following headlines are
898 unnecessary clutter."
899 :group 'org-structure
900 :type 'boolean)
901
902 (defcustom org-archive-location "%s_archive::"
903 "The location where subtrees should be archived.
904 This string consists of two parts, separated by a double-colon.
905
906 The first part is a file name - when omitted, archiving happens in the same
907 file. %s will be replaced by the current file name (without directory part).
908 Archiving to a different file is useful to keep archived entries from
909 contributing to the Org-mode Agenda.
910
911 The part after the double colon is a headline. The archived entries will be
912 filed under that headline. When omitted, the subtrees are simply filed away
913 at the end of the file, as top-level entries.
914
915 Here are a few examples:
916 \"%s_archive::\"
917 If the current file is Projects.org, archive in file
918 Projects.org_archive, as top-level trees. This is the default.
919
920 \"::* Archived Tasks\"
921 Archive in the current file, under the top-level headline
922 \"* Archived Tasks\".
923
924 \"~/org/archive.org::\"
925 Archive in file ~/org/archive.org (absolute path), as top-level trees.
926
927 \"basement::** Finished Tasks\"
928 Archive in file ./basement (relative path), as level 3 trees
929 below the level 2 heading \"** Finished Tasks\".
930
931 You may set this option on a per-file basis by adding to the buffer a
932 line like
933
934 #+ARCHIVE: basement::** Finished Tasks"
935 :group 'org-structure
936 :type 'string)
937
938 (defcustom org-archive-mark-done t
939 "Non-nil means, mark archived entries as DONE."
940 :group 'org-structure
941 :type 'boolean)
942
943 (defcustom org-archive-stamp-time t
944 "Non-nil means, add a time stamp to archived entries.
945 The time stamp will be added directly after the TODO state keyword in the
946 first line, so it is probably best to use this in combinations with
947 `org-archive-mark-done'."
948 :group 'org-structure
949 :type 'boolean)
950
951 (defgroup org-link nil
952 "Options concerning links in Org-mode."
953 :tag "Org Link"
954 :group 'org)
955
956 (defcustom org-link-format "<%s>"
957 "Default format for linkes in the buffer.
958 This is a format string for printf, %s will be replaced by the link text.
959 If you want to make sure that your link is always properly terminated,
960 include angle brackets into this format, like \"<%s>\". Some people also
961 recommend an additional URL: prefix, so the format would be \"<URL:%s>\"."
962 :group 'org-link
963 :type '(choice
964 (const :tag "\"%s\" (e.g. http://www.there.com)" "%s")
965 (const :tag "\"<%s>\" (e.g. <http://www.there.com>)" "<%s>")
966 (const :tag "\"<URL:%s>\" (e.g. <URL:http://www.there.com>)" "<URL:%s>")
967 (string :tag "Other" :value "<%s>")))
968
969 (defcustom org-allow-space-in-links t
970 "Non-nil means, file names in links may contain space characters.
971 When nil, it becomes possible to put several links into a line.
972 Note that in tables, a link never extends accross fields, so in a table
973 it is always possible to put several links into a line.
974 Changing this varable requires a re-launch of Emacs of become effective."
975 :group 'org-link
976 :type 'boolean)
977
978 (defcustom org-line-numbers-in-file-links t
979 "Non-nil means, file links from `org-store-link' contain line numbers.
980 The line number will be added to the file name with :NNN and interpreted
981 by the command `org-open-at-point'.
982 Using a prefix arg to the command \\[org-store-link] (`org-store-link')
983 negates this setting for the duration of the command."
984 :group 'org-link
985 :type 'boolean)
986
987 (defcustom org-keep-stored-link-after-insertion nil
988 "Non-nil means, keep link in list for entire session.
989
990 The command `org-store-link' adds a link pointing to the current
991 location to an internal list. These links accumulate during a session.
992 The command `org-insert-link' can be used to insert links into any
993 Org-mode file (offering completion for all stored links). When this
994 option is nil, every link which has been inserted once using \\[org-insert-link]
995 will be removed from the list, to make completing the unused links
996 more efficient."
997 :group 'org-link
998 :type 'boolean)
999
1000 (defcustom org-link-frame-setup
1001 '((vm . vm-visit-folder-other-frame)
1002 (gnus . gnus-other-frame)
1003 (file . find-file-other-window))
1004 "Setup the frame configuration for following links.
1005 When following a link with Emacs, it may often be useful to display
1006 this link in another window or frame. This variable can be used to
1007 set this up for the different types of links.
1008 For VM, use any of
1009 `vm-visit-folder'
1010 `vm-visit-folder-other-frame'
1011 For Gnus, use any of
1012 `gnus'
1013 `gnus-other-frame'
1014 For FILE, use any of
1015 `find-file'
1016 `find-file-other-window'
1017 `find-file-other-frame'
1018 For the calendar, use the variable `calendar-setup'.
1019 For BBDB, it is currently only possible to display the matches in
1020 another window."
1021 :group 'org-link
1022 :type '(list
1023 (cons (const vm)
1024 (choice
1025 (const vm-visit-folder)
1026 (const vm-visit-folder-other-window)
1027 (const vm-visit-folder-other-frame)))
1028 (cons (const gnus)
1029 (choice
1030 (const gnus)
1031 (const gnus-other-frame)))
1032 (cons (const file)
1033 (choice
1034 (const find-file)
1035 (const find-file-other-window)
1036 (const find-file-other-frame)))))
1037
1038 (defcustom org-usenet-links-prefer-google nil
1039 "Non-nil means, `org-store-link' will create web links to google groups.
1040 When nil, Gnus will be used for such links.
1041 Using a prefix arg to the command \\[org-store-link] (`org-store-link')
1042 negates this setting for the duration of the command."
1043 :group 'org-link
1044 :type 'boolean)
1045
1046 (defcustom org-open-non-existing-files nil
1047 "Non-nil means, `org-open-file' will open non-existing file.
1048 When nil, an error will be generated."
1049 :group 'org-link
1050 :type 'boolean)
1051
1052 (defcustom org-confirm-shell-links t
1053 "Non-nil means, ask for confirmation before executing shell links.
1054 The default is true, to keep new users from shooting into their own foot."
1055 :group 'org-link
1056 :type 'boolean)
1057
1058 (defconst org-file-apps-defaults-gnu
1059 '((t . emacs)
1060 ("jpg" . "xv %s")
1061 ("gif" . "xv %s")
1062 ("ppm" . "xv %s")
1063 ("pgm" . "xv %s")
1064 ("pbm" . "xv %s")
1065 ("tif" . "xv %s")
1066 ("png" . "xv %s")
1067 ("ps" . "gv %s")
1068 ("ps.gz" . "gv %s")
1069 ("eps" . "gv %s")
1070 ("eps.gz" . "gv %s")
1071 ("dvi" . "xdvi %s")
1072 ("mpeg" . "plaympeg %s")
1073 ("mp3" . "plaympeg %s")
1074 ("fig" . "xfig %s")
1075 ("pdf" . "acroread %s")
1076 ("doc" . "soffice %s")
1077 ("ppt" . "soffice %s")
1078 ("pps" . "soffice %s")
1079 ("html" . "netscape -remote openURL(%s,new-window)")
1080 ("htm" . "netscape -remote openURL(%s,new-window)")
1081 ("xs" . "soffice %s"))
1082 "Default file applications on a UNIX/LINUX system.
1083 See `org-file-apps'.")
1084
1085 (defconst org-file-apps-defaults-macosx
1086 '((t . "open %s")
1087 ("ps" . "gv %s")
1088 ("ps.gz" . "gv %s")
1089 ("eps" . "gv %s")
1090 ("eps.gz" . "gv %s")
1091 ("dvi" . "xdvi %s")
1092 ("fig" . "xfig %s"))
1093 "Default file applications on a MacOS X system.
1094 The system \"open\" is known as a default, but we use X11 applications
1095 for some files for which the OS does not have a good default.
1096 See `org-file-apps'.")
1097
1098 (defconst org-file-apps-defaults-windowsnt
1099 '((t . (w32-shell-execute "open" file)))
1100 "Default file applications on a Windows NT system.
1101 The system \"open\" is used for most files.
1102 See `org-file-apps'.")
1103
1104 (defcustom org-file-apps
1105 '(
1106 ("txt" . emacs)
1107 ("tex" . emacs)
1108 ("ltx" . emacs)
1109 ("org" . emacs)
1110 ("el" . emacs)
1111 )
1112 "External applications for opening `file:path' items in a document.
1113 Org-mode uses system defaults for different file types, but
1114 you can use this variable to set the application for a given file
1115 extension. The entries in this list are cons cells with a file extension
1116 and the corresponding command. Possible values for the command are:
1117 `emacs' The file will be visited by the current Emacs process.
1118 `default' Use the default application for this file type.
1119 string A command to be executed by a shell; %s will be replaced
1120 by the path to the file.
1121 sexp A Lisp form which will be evaluated. The file path will
1122 be available in the Lisp variable `file'.
1123 For more examples, see the system specific constants
1124 `org-file-apps-defaults-macosx'
1125 `org-file-apps-defaults-windowsnt'
1126 `org-file-apps-defaults-gnu'."
1127 :group 'org-link
1128 :type '(repeat
1129 (cons (string :tag "Extension")
1130 (choice :value ""
1131 (const :tag "Visit with Emacs" 'emacs)
1132 (const :tag "Use system default" 'default)
1133 (string :tag "Command")
1134 (sexp :tag "Lisp form")))))
1135
1136
1137 (defgroup org-remember nil
1138 "Options concerning interaction with remember.el."
1139 :tag "Org Remember"
1140 :group 'org)
1141
1142 (defcustom org-directory "~/org"
1143 "Directory with org files.
1144 This directory will be used as default to prompt for org files.
1145 Used by the hooks for remember.el."
1146 :group 'org-remember
1147 :type 'directory)
1148
1149 (defcustom org-default-notes-file "~/.notes"
1150 "Default target for storing notes.
1151 Used by the hooks for remember.el. This can be a string, or nil to mean
1152 the value of `remember-data-file'."
1153 :group 'org-remember
1154 :type '(choice
1155 (const :tag "Default from remember-data-file" nil)
1156 file))
1157
1158 (defcustom org-reverse-note-order nil
1159 "Non-nil means, store new notes at the beginning of a file or entry.
1160 When nil, new notes will be filed to the end of a file or entry."
1161 :group 'org-remember
1162 :type '(choice
1163 (const :tag "Reverse always" t)
1164 (const :tag "Reverse never" nil)
1165 (repeat :tag "By file name regexp"
1166 (cons regexp boolean))))
1167
1168 (defgroup org-table nil
1169 "Options concerning tables in Org-mode."
1170 :tag "Org Table"
1171 :group 'org)
1172
1173 (defcustom org-enable-table-editor 'optimized
1174 "Non-nil means, lines starting with \"|\" are handled by the table editor.
1175 When nil, such lines will be treated like ordinary lines.
1176
1177 When equal to the symbol `optimized', the table editor will be optimized to
1178 do the following
1179 - Use automatic overwrite mode in front of whitespace in table fields.
1180 This make the structure of the table stay in tact as long as the edited
1181 field does not exceed the column width.
1182 - Minimize the number of realigns. Normally, the table is aligned each time
1183 TAB or RET are pressed to move to another field. With optimization this
1184 happens only if changes to a field might have changed the column width.
1185 Optimization requires replacing the functions `self-insert-command',
1186 `delete-char', and `backward-delete-char' in Org-mode buffers, with a
1187 slight (in fact: unnoticeable) speed impact for normal typing. Org-mode is
1188 very good at guessing when a re-align will be necessary, but you can always
1189 force one with \\[org-ctrl-c-ctrl-c].
1190
1191 If you would like to use the optimized version in Org-mode, but the
1192 un-optimized version in OrgTbl-mode, see the variable `orgtbl-optimized'.
1193
1194 This variable can be used to turn on and off the table editor during a session,
1195 but in order to toggle optimization, a restart is required.
1196
1197 See also the variable `org-table-auto-blank-field'."
1198 :group 'org-table
1199 :type '(choice
1200 (const :tag "off" nil)
1201 (const :tag "on" t)
1202 (const :tag "on, optimized" optimized)))
1203
1204 (defcustom org-table-auto-blank-field t
1205 "Non-nil means, automatically blank table field when starting to type into it.
1206 This only happens when typing immediately after a field motion
1207 command (TAB, S-TAB or RET).
1208 Only relevant when `org-enable-table-editor' is equal to `optimized'."
1209 :group 'org-table
1210 :type 'boolean)
1211
1212 (defcustom org-table-default-size "5x2"
1213 "The default size for newly created tables, Columns x Rows."
1214 :group 'org-table
1215 :type 'string)
1216
1217 (defcustom org-table-automatic-realign t
1218 "Non-nil means, automatically re-align table when pressing TAB or RETURN.
1219 When nil, aligning is only done with \\[org-table-align], or after column
1220 removal/insertion."
1221 :group 'org-table
1222 :type 'boolean)
1223
1224 (defcustom org-table-spaces-around-separators '(1 . 1)
1225 "The number of spaces to be placed before and after separators."
1226 :group 'org-table
1227 :type '(cons (number :tag "Before \"|\"") (number :tag " After \"|\"")))
1228
1229 (defcustom org-table-spaces-around-invisible-separators '(1 . 2)
1230 "The number of spaces to be placed before and after separators.
1231 This option applies when the column separators have been made invisible."
1232 :group 'org-table
1233 :type '(cons (number :tag "Before \"|\"") (number :tag " After \"|\"")))
1234
1235 (defcustom org-table-number-regexp "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$"
1236 "Regular expression for recognizing numbers in table columns.
1237 If a table column contains mostly numbers, it will be aligned to the
1238 right. If not, it will be aligned to the left.
1239
1240 The default value of this option is a regular expression which allows
1241 anything which looks remotely like a number as used in scientific
1242 context. For example, all of the following will be considered a
1243 number:
1244 12 12.2 2.4e-08 2x10^12 4.034+-0.02 2.7(10) >3.5
1245
1246 Other options offered by the customize interface are more restrictive."
1247 :group 'org-table
1248 :type '(choice
1249 (const :tag "Positive Integers"
1250 "^[0-9]+$")
1251 (const :tag "Integers"
1252 "^[-+]?[0-9]+$")
1253 (const :tag "Floating Point Numbers"
1254 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.[0-9]*\\)$")
1255 (const :tag "Floating Point Number or Integer"
1256 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.?[0-9]*\\)$")
1257 (const :tag "Exponential, Floating point, Integer"
1258 "^[-+]?[0-9.]+\\([eEdD][-+0-9]+\\)?$")
1259 (const :tag "Very General Number-Like"
1260 "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$")
1261 (string :tag "Regexp:")))
1262
1263 (defcustom org-table-number-fraction 0.5
1264 "Fraction of numbers in a column required to make the column align right.
1265 In a column all non-white fields are considered. If at least this
1266 fraction of fields is matched by `org-table-number-fraction',
1267 alignment to the right border applies."
1268 :group 'org-table
1269 :type 'number)
1270
1271 (defcustom org-export-highlight-first-table-line t
1272 "Non-nil means, highlight the first table line.
1273 In HTML export, this means use <th> instead of <td>.
1274 In tables created with table.el, this applies to the first table line.
1275 In Org-mode tables, all lines before the first horizontal separator
1276 line will be formatted with <th> tags."
1277 :group 'org-table
1278 :type 'boolean)
1279
1280 (defcustom org-table-tab-recognizes-table.el t
1281 "Non-nil means, TAB will automatically notice a table.el table.
1282 When it sees such a table, it moves point into it and - if necessary -
1283 calls `table-recognize-table'."
1284 :group 'org-table
1285 :type 'boolean)
1286
1287 (defgroup org-table-calculation nil
1288 "Options concerning tables in Org-mode."
1289 :tag "Org Table Calculation"
1290 :group 'org)
1291
1292 (defcustom org-table-copy-increment t
1293 "Non-nil means, increment when copying current field with \\[org-table-copy-down]."
1294 :group 'org-table-calculation
1295 :type 'boolean)
1296
1297 (defcustom org-calc-default-modes
1298 '(calc-internal-prec 12
1299 calc-float-format (float 5)
1300 calc-angle-mode deg
1301 calc-prefer-frac nil
1302 calc-symbolic-mode nil
1303 calc-date-format (YYYY "-" MM "-" DD " " Www (" " HH ":" mm))
1304 calc-display-working-message t
1305 )
1306 "List with Calc mode settings for use in calc-eval for table formulas.
1307 The list must contain alternating symbols (calc modes variables and values.
1308 Don't remove any of the default settings, just change the values. Org-mode
1309 relies on the variables to be present in the list."
1310 :group 'org-table-calculation
1311 :type 'plist)
1312
1313 (defcustom org-table-formula-evaluate-inline t
1314 "Non-nil means, TAB and RET evaluate a formula in current table field.
1315 If the current field starts with an equal sign, it is assumed to be a formula
1316 which should be evaluated as described in the manual and in the documentation
1317 string of the command `org-table-eval-formula'. This feature requires the
1318 Emacs calc package.
1319 When this variable is nil, formula calculation is only available through
1320 the command \\[org-table-eval-formula]."
1321 :group 'org-table-calculation
1322 :type 'boolean)
1323
1324
1325 (defcustom org-table-formula-use-constants t
1326 "Non-nil means, interpret constants in formulas in tables.
1327 A constant looks like `$c' or `$Grav' and will be replaced before evaluation
1328 by the value given in `org-table-formula-constants', or by a value obtained
1329 from the `constants.el' package."
1330 :group 'org-table-calculation
1331 :type 'boolean)
1332
1333 (defcustom org-table-formula-constants nil
1334 "Alist with constant names and values, for use in table formulas.
1335 The car of each element is a name of a constant, without the `$' before it.
1336 The cdr is the value as a string. For example, if you'd like to use the
1337 speed of light in a formula, you would configure
1338
1339 (setq org-table-formula-constants '((\"c\" . \"299792458.\")))
1340
1341 and then use it in an equation like `$1*$c'."
1342 :group 'org-table-calculation
1343 :type '(repeat
1344 (cons (string :tag "name")
1345 (string :tag "value"))))
1346
1347 (defcustom org-table-formula-numbers-only nil
1348 "Non-nil means, calculate only with numbers in table formulas.
1349 Then all input fields will be converted to a number, and the result
1350 must also be a number. When nil, calc's full potential is available
1351 in table calculations, including symbolics etc."
1352 :group 'org-table-calculation
1353 :type 'boolean)
1354
1355 (defcustom org-table-allow-automatic-line-recalculation t
1356 "Non-nil means, lines makred with |#| or |*| will be recomputed automatically.
1357 Automatically means, when TAB or RET or C-c C-c are pressed in the line."
1358 :group 'org-table-calculation
1359 :type 'boolean)
1360
1361 (defgroup org-export nil
1362 "Options for exporting org-listings."
1363 :tag "Org Export"
1364 :group 'org)
1365
1366 (defcustom org-export-language-setup
1367 '(("en" "Author" "Date" "Table of Contents")
1368 ("da" "Ophavsmand" "Dato" "Indhold")
1369 ("de" "Autor" "Datum" "Inhaltsverzeichnis")
1370 ("es" "Autor" "Fecha" "\xccndice")
1371 ("fr" "Auteur" "Date" "Table des Mati\xe8res")
1372 ("it" "Autore" "Data" "Indice")
1373 ("nl" "Auteur" "Datum" "Inhoudsopgave")
1374 ("nn" "Forfattar" "Dato" "Innhold") ;; nn = Norsk (nynorsk)
1375 ("sv" "F\xf6rfattarens" "Datum" "Inneh\xe5ll"))
1376 "Terms used in export text, translated to different languages.
1377 Use the variable `org-export-default-language' to set the language,
1378 or use the +OPTION lines for a per-file setting."
1379 :group 'org-export
1380 :type '(repeat
1381 (list
1382 (string :tag "HTML language tag")
1383 (string :tag "Author")
1384 (string :tag "Date")
1385 (string :tag "Table of Contents"))))
1386
1387 (defcustom org-export-default-language "en"
1388 "The default language of HTML export, as a string.
1389 This should have an association in `org-export-language-setup'"
1390 :group 'org-export
1391 :type 'string)
1392
1393 (defcustom org-export-headline-levels 3
1394 "The last level which is still exported as a headline.
1395 Inferior levels will produce itemize lists when exported.
1396 Note that a numeric prefix argument to an exporter function overrides
1397 this setting.
1398
1399 This option can also be set with the +OPTIONS line, e.g. \"H:2\"."
1400 :group 'org-export
1401 :type 'number)
1402
1403 (defcustom org-export-with-section-numbers t
1404 "Non-nil means, add section numbers to headlines when exporting.
1405
1406 This option can also be set with the +OPTIONS line, e.g. \"num:t\"."
1407 :group 'org-export
1408 :type 'boolean)
1409
1410 (defcustom org-export-with-toc t
1411 "Non-nil means, create a table of contents in exported files.
1412 The TOC contains headlines with levels up to`org-export-headline-levels'.
1413
1414 Headlines which contain any TODO items will be marked with \"(*)\" in
1415 ASCII export, and with red color in HTML output.
1416
1417 In HTML output, the TOC will be clickable.
1418
1419 This option can also be set with the +OPTIONS line, e.g. \"toc:nil\"."
1420 :group 'org-export
1421 :type 'boolean)
1422
1423 (defcustom org-export-preserve-breaks nil
1424 "Non-nil means, preserve all line breaks when exporting.
1425 Normally, in HTML output paragraphs will be reformatted. In ASCII
1426 export, line breaks will always be preserved, regardless of this variable.
1427
1428 This option can also be set with the +OPTIONS line, e.g. \"\\n:t\"."
1429 :group 'org-export
1430 :type 'boolean)
1431
1432 (defcustom org-export-html-inline-images t
1433 "Non-nil means, inline images into exported HTML pages.
1434 The link will still be to the original location of the image file.
1435 So if you are moving the page, lets say to your public HTML site,
1436 you will have to move the image and maybe change the link."
1437 :group 'org-export
1438 :type 'boolean)
1439
1440 (defcustom org-export-html-expand t
1441 "Non-nil means, for HTML export, treat @<...> as HTML tag.
1442 When nil, these tags will be exported as plain text and therefore
1443 not be interpreted by a browser.
1444
1445 This option can also be set with the +OPTIONS line, e.g. \"@:nil\"."
1446 :group 'org-export
1447 :type 'boolean)
1448
1449 (defcustom org-export-with-fixed-width t
1450 "Non-nil means, lines starting with \":\" will be in fixed width font.
1451 This can be used to have pre-formatted text, fragments of code etc. For
1452 example
1453 : ;; Some Lisp examples
1454 : (while (defc cnt)
1455 : (ding))
1456 will be looking just like this in also HTML. In ASCII export, this option
1457 has no effect.
1458
1459 This option can also be set with the +OPTIONS line, e.g. \"::nil\"."
1460 :group 'org-export
1461 :type 'boolean)
1462
1463 (defcustom org-export-with-tables t
1464 "If non-nil, lines starting with \"|\" define a table.
1465 For example:
1466
1467 | Name | Address | Birthday |
1468 |-------------+----------+-----------|
1469 | Arthur Dent | England | 29.2.2100 |
1470
1471 In ASCII export, this option has no effect.
1472
1473 This option can also be set with the +OPTIONS line, e.g. \"|:nil\"."
1474 :group 'org-export
1475 :type 'boolean)
1476
1477 (defcustom org-export-prefer-native-exporter-for-tables nil
1478 "Non-nil means, always export tables created with table.el natively.
1479 Natively means, use the HTML code generator in table.el.
1480 When nil, Org-mode's own HTML generator is used when possible (i.e. if
1481 the table does not use row- or column-spanning). This has the
1482 advantage, that the automatic HTML conversions for math symbols and
1483 sub/superscripts can be applied. Org-mode's HTML generator is also
1484 much faster."
1485 :group 'org-export
1486 :type 'boolean)
1487
1488 (defcustom org-export-html-table-tag
1489 "<table border=1 cellspacing=0 cellpadding=6>"
1490 "The HTML tag used to start a table.
1491 This must be a <table> tag, but you may change the options like
1492 borders and spacing."
1493 :group 'org-export
1494 :type 'string)
1495
1496 (defcustom org-export-with-emphasize t
1497 "Non-nil means, interpret *word*, /word/, and _word_ as emphasized text.
1498 If the export target supports emphasizing text, the word will be
1499 typeset in bold, italic, or underlined, respectively. Works only for
1500 single words, but you can say: I *really* *mean* *this*.
1501 In ASCII export, this option has no effect.
1502
1503 This option can also be set with the +OPTIONS line, e.g. \"*:nil\"."
1504 :group 'org-export
1505 :type 'boolean)
1506
1507 (defcustom org-match-sexp-depth 3
1508 "Number of stacked braces for sub/superscript matching.
1509 This has to be set before loading org.el to be effective."
1510 :group 'org-export
1511 :type 'integer)
1512
1513 ;; FIXME: Should () parens be removed as well in sub/superscripts?
1514 (defcustom org-export-with-sub-superscripts t
1515 "Non-nil means, interpret \"_\" and \"^\" for export.
1516 When this option is turned on, you can use TeX-like syntax for sub- and
1517 superscripts. Several characters after \"_\" or \"^\" will be
1518 considered as a single item - so grouping with {} is normally not
1519 needed. For example, the following things will be parsed as single
1520 sub- or superscripts.
1521
1522 10^24 or 10^tau several digits will be considered 1 item
1523 10^-12 or 10^-tau a leading sign with digits or a word
1524 x^2-y^3 will be read as x^2 - y^3, because items are
1525 terminated by almost any nonword/nondigit char.
1526 x_{i^2} or x^(2-i) braces or parenthesis do grouping.
1527
1528 Still, ambiguity is possible - so when in doubt use {} to enclose the
1529 sub/superscript.
1530 In ASCII export, this option has no effect.
1531
1532 This option can also be set with the +OPTIONS line, e.g. \"^:nil\"."
1533 :group 'org-export
1534 :type 'boolean)
1535
1536 (defcustom org-export-with-TeX-macros t
1537 "Non-nil means, interpret simple TeX-like macros when exporting.
1538 For example, HTML export converts \\alpha to &alpha; and \\AA to &Aring;.
1539 No only real TeX macros will work here, but the standard HTML entities
1540 for math can be used as macro names as well. For a list of supported
1541 names in HTML export, see the constant `org-html-entities'.
1542 In ASCII export, this option has no effect.
1543
1544 This option can also be set with the +OPTIONS line, e.g. \"TeX:nil\"."
1545 :group 'org-export
1546 :type 'boolean)
1547
1548 (defcustom org-export-html-with-timestamp nil
1549 "If non-nil, write `org-export-html-html-helper-timestamp'
1550 into the exported html text. Otherwise, the buffer will just be saved
1551 to a file."
1552 :group 'org-export
1553 :type 'boolean)
1554
1555 (defcustom org-export-html-html-helper-timestamp
1556 "<br><br><hr><p><!-- hhmts start --> <!-- hhmts end -->\n"
1557 "The HTML tag used as timestamp delimiter for HTML-helper-mode."
1558 :group 'org-export
1559 :type 'string)
1560
1561 (defcustom org-export-ascii-show-new-buffer t
1562 "Non-nil means, popup buffer containing the exported ASCII text.
1563 Otherwise the buffer will just be saved to a file and stay hidden."
1564 :group 'org-export
1565 :type 'boolean)
1566
1567 (defcustom org-export-html-show-new-buffer nil
1568 "Non-nil means, popup buffer containing the exported html text.
1569 Otherwise, the buffer will just be saved to a file and stay hidden."
1570 :group 'org-export
1571 :type 'boolean)
1572
1573 (defgroup org-faces nil
1574 "Faces for highlighting in Org-mode."
1575 :tag "Org Faces"
1576 :group 'org)
1577
1578 (defface org-level-1 ;; font-lock-function-name-face
1579 '((((type tty) (class color)) (:foreground "blue" :weight bold))
1580 (((class color) (background light)) (:foreground "Blue"))
1581 (((class color) (background dark)) (:foreground "LightSkyBlue"))
1582 (t (:inverse-video t :bold t)))
1583 "Face used for level 1 headlines."
1584 :group 'org-faces)
1585
1586 (defface org-level-2 ;; font-lock-variable-name-face
1587 '((((type tty) (class color)) (:foreground "yellow" :weight light))
1588 (((class color) (background light)) (:foreground "DarkGoldenrod"))
1589 (((class color) (background dark)) (:foreground "LightGoldenrod"))
1590 (t (:bold t :italic t)))
1591 "Face used for level 2 headlines."
1592 :group 'org-faces)
1593
1594 (defface org-level-3 ;; font-lock-keyword-face
1595 '((((type tty) (class color)) (:foreground "cyan" :weight bold))
1596 (((class color) (background light)) (:foreground "Purple"))
1597 (((class color) (background dark)) (:foreground "Cyan"))
1598 (t (:bold t)))
1599 "Face used for level 3 headlines."
1600 :group 'org-faces)
1601
1602 (defface org-level-4 ;; font-lock-comment-face
1603 '((((type tty pc) (class color) (background light)) (:foreground "red"))
1604 (((type tty pc) (class color) (background dark)) (:foreground "red1"))
1605 (((class color) (background light)) (:foreground "Firebrick"))
1606 (((class color) (background dark)) (:foreground "chocolate1"))
1607 (t (:bold t :italic t)))
1608 "Face used for level 4 headlines."
1609 :group 'org-faces)
1610
1611 (defface org-level-5 ;; font-lock-type-face
1612 '((((type tty) (class color)) (:foreground "green"))
1613 (((class color) (background light)) (:foreground "ForestGreen"))
1614 (((class color) (background dark)) (:foreground "PaleGreen"))
1615 (t (:bold t :underline t)))
1616 "Face used for level 5 headlines."
1617 :group 'org-faces)
1618
1619 (defface org-level-6 ;; font-lock-constant-face
1620 '((((type tty) (class color)) (:foreground "magenta"))
1621 (((class color) (background light)) (:foreground "CadetBlue"))
1622 (((class color) (background dark)) (:foreground "Aquamarine"))
1623 (t (:bold t :underline t)))
1624 "Face used for level 6 headlines."
1625 :group 'org-faces)
1626
1627 (defface org-level-7 ;; font-lock-builtin-face
1628 '((((type tty) (class color)) (:foreground "blue" :weight light))
1629 (((class color) (background light)) (:foreground "Orchid"))
1630 (((class color) (background dark)) (:foreground "LightSteelBlue"))
1631 (t (:bold t)))
1632 "Face used for level 7 headlines."
1633 :group 'org-faces)
1634
1635 (defface org-level-8 ;; font-lock-string-face
1636 '((((type tty) (class color)) (:foreground "green"))
1637 (((class color) (background light)) (:foreground "RosyBrown"))
1638 (((class color) (background dark)) (:foreground "LightSalmon"))
1639 (t (:italic t)))
1640 "Face used for level 8 headlines."
1641 :group 'org-faces)
1642
1643 (defface org-special-keyword ;; font-lock-string-face
1644 '((((type tty) (class color)) (:foreground "green"))
1645 (((class color) (background light)) (:foreground "RosyBrown"))
1646 (((class color) (background dark)) (:foreground "LightSalmon"))
1647 (t (:italic t)))
1648 "Face used for level 8 headlines."
1649 :group 'org-faces)
1650
1651 (defface org-warning ;; font-lock-warning-face
1652 '((((type tty) (class color)) (:foreground "red"))
1653 (((class color) (background light)) (:foreground "Red" :bold t))
1654 (((class color) (background dark)) (:foreground "Red1" :bold t))
1655 ; (((class color) (background dark)) (:foreground "Pink" :bold t))
1656 (t (:inverse-video t :bold t)))
1657 "Face for deadlines and TODO keywords."
1658 :group 'org-faces)
1659
1660 (defcustom org-fontify-done-headline nil
1661 "Non-nil means, change the face of a headline if it is marked DONE.
1662 Normally, only the TODO/DONE keyword indicates the state of a headline.
1663 When this is non-nil, the headline after the keyword is set to the
1664 `org-headline-done' as an additional indication."
1665 :group 'org-faces
1666 :type 'boolean)
1667
1668 (defface org-headline-done ;; font-lock-string-face
1669 '((((type tty) (class color)) (:foreground "green"))
1670 (((class color) (background light)) (:foreground "RosyBrown"))
1671 (((class color) (background dark)) (:foreground "LightSalmon"))
1672 (t (:italic t)))
1673 "Face used to indicate that a headline is DONE. See also the variable
1674 `org-fontify-done-headline'."
1675 :group 'org-faces)
1676
1677 ;; Inheritance does not yet work for xemacs. So we just copy...
1678
1679 (defface org-deadline-announce
1680 '((((type tty) (class color)) (:foreground "blue" :weight bold))
1681 (((class color) (background light)) (:foreground "Blue"))
1682 (((class color) (background dark)) (:foreground "LightSkyBlue"))
1683 (t (:inverse-video t :bold t)))
1684 "Face for upcoming deadlines."
1685 :group 'org-faces)
1686
1687 (defface org-scheduled-today
1688 '((((type tty) (class color)) (:foreground "green"))
1689 (((class color) (background light)) (:foreground "DarkGreen"))
1690 (((class color) (background dark)) (:foreground "PaleGreen"))
1691 (t (:bold t :underline t)))
1692 "Face for items scheduled for a certain day."
1693 :group 'org-faces)
1694
1695 (defface org-scheduled-previously
1696 '((((type tty pc) (class color) (background light)) (:foreground "red"))
1697 (((type tty pc) (class color) (background dark)) (:foreground "red1"))
1698 (((class color) (background light)) (:foreground "Firebrick"))
1699 (((class color) (background dark)) (:foreground "chocolate1"))
1700 (t (:bold t :italic t)))
1701 "Face for items scheduled previously, and not yet done."
1702 :group 'org-faces)
1703
1704 (defface org-formula
1705 '((((type tty pc) (class color) (background light)) (:foreground "red"))
1706 (((type tty pc) (class color) (background dark)) (:foreground "red1"))
1707 (((class color) (background light)) (:foreground "Firebrick"))
1708 (((class color) (background dark)) (:foreground "chocolate1"))
1709 (t (:bold t :italic t)))
1710 "Face for items scheduled previously, and not yet done."
1711 :group 'org-faces)
1712
1713 (defface org-link
1714 '((((type tty) (class color)) (:foreground "cyan" :weight bold))
1715 (((class color) (background light)) (:foreground "Purple"))
1716 (((class color) (background dark)) (:foreground "Cyan"))
1717 (t (:bold t)))
1718 "Face for links."
1719 :group 'org-faces)
1720
1721 (defface org-done ;; font-lock-type-face
1722 '((((type tty) (class color)) (:foreground "green"))
1723 (((class color) (background light)) (:foreground "ForestGreen" :bold t))
1724 (((class color) (background dark)) (:foreground "PaleGreen" :bold t))
1725 (t (:bold t :underline t)))
1726 "Face used for DONE."
1727 :group 'org-faces)
1728
1729 (defface org-table ;; font-lock-function-name-face
1730 '((((type tty) (class color)) (:foreground "blue" :weight bold))
1731 (((class color) (background light)) (:foreground "Blue"))
1732 (((class color) (background dark)) (:foreground "LightSkyBlue"))
1733 (t (:inverse-video t :bold t)))
1734 "Face used for tables."
1735 :group 'org-faces)
1736
1737 (defface org-time-grid ;; font-lock-variable-name-face
1738 '((((type tty) (class color)) (:foreground "yellow" :weight light))
1739 (((class color) (background light)) (:foreground "DarkGoldenrod"))
1740 (((class color) (background dark)) (:foreground "LightGoldenrod"))
1741 (t (:bold t :italic t)))
1742 "Face used for level 2 headlines."
1743 :group 'org-faces)
1744
1745 (defvar org-level-faces
1746 '(
1747 org-level-1
1748 org-level-2
1749 org-level-3
1750 org-level-4
1751 org-level-5
1752 org-level-6
1753 org-level-7
1754 org-level-8
1755 ))
1756 (defvar org-n-levels (length org-level-faces))
1757 1760
1758 ;; Tell the compiler about dynamically scoped variables, 1761 ;; Tell the compiler about dynamically scoped variables,
1759 ;; and variables from other packages 1762 ;; and variables from other packages
1760 (eval-when-compile 1763 (eval-when-compile
1761 (defvar zmacs-regions) 1764 (defvar zmacs-regions)
7867 (defvar orgtbl-mode nil 7870 (defvar orgtbl-mode nil
7868 "Variable controlling `orgtbl-mode', a minor mode enabling the `org-mode' 7871 "Variable controlling `orgtbl-mode', a minor mode enabling the `org-mode'
7869 table editor in arbitrary modes.") 7872 table editor in arbitrary modes.")
7870 (make-variable-buffer-local 'orgtbl-mode) 7873 (make-variable-buffer-local 'orgtbl-mode)
7871 7874
7872 (defvar orgtbl-mode-map (make-sparse-keymap) 7875 (defvar orgtbl-mode-map (make-keymap)
7873 "Keymap for `orgtbl-mode'.") 7876 "Keymap for `orgtbl-mode'.")
7874 7877
7875 ;;;###autoload 7878 ;;;###autoload
7876 (defun turn-on-orgtbl () 7879 (defun turn-on-orgtbl ()
7877 "Unconditionally turn on `orgtbl-mode'." 7880 "Unconditionally turn on `orgtbl-mode'."
8825 (language org-export-default-language) 8828 (language org-export-default-language)
8826 (text nil) 8829 (text nil)
8827 (lang-words nil) 8830 (lang-words nil)
8828 (head-count 0) cnt 8831 (head-count 0) cnt
8829 (start 0) 8832 (start 0)
8833 ;; FIXME: The following returns always nil under XEmacs
8834 (coding-system (and (fboundp 'coding-system-get)
8835 (boundp 'buffer-file-coding-system)
8836 buffer-file-coding-system))
8837 (charset (and coding-system
8838 (coding-system-get coding-system 'mime-charset)))
8830 table-open type 8839 table-open type
8831 table-buffer table-orig-buffer 8840 table-buffer table-orig-buffer
8832 ) 8841 )
8833 (message "Exporting...") 8842 (message "Exporting...")
8834 8843
8853 8862
8854 ;; File header 8863 ;; File header
8855 (insert (format 8864 (insert (format
8856 "<html lang=\"%s\"><head> 8865 "<html lang=\"%s\"><head>
8857 <title>%s</title> 8866 <title>%s</title>
8858 <meta http-equiv=\"Content-Type\" content=\"text/html\"> 8867 <meta http-equiv=\"Content-Type\" content=\"text/html;charset=%s\">
8859 <meta name=generator content=\"Org-mode\"> 8868 <meta name=generator content=\"Org-mode\">
8860 <meta name=generated content=\"%s %s\"> 8869 <meta name=generated content=\"%s %s\">
8861 <meta name=author content=\"%s\"> 8870 <meta name=author content=\"%s\">
8862 </head><body> 8871 </head><body>
8863 " 8872 "
8864 language (org-html-expand title) date time author)) 8873 language (org-html-expand title) (or charset "iso-8859-1")
8874 date time author))
8865 (if title (insert (concat "<H1 align=\"center\">" 8875 (if title (insert (concat "<H1 align=\"center\">"
8866 (org-html-expand title) "</H1>\n"))) 8876 (org-html-expand title) "</H1>\n")))
8867 (if author (insert (concat (nth 1 lang-words) ": " author "\n"))) 8877 (if author (insert (concat (nth 1 lang-words) ": " author "\n")))
8868 (if email (insert (concat "<a href=\"mailto:" email "\">&lt;" 8878 (if email (insert (concat "<a href=\"mailto:" email "\">&lt;"
8869 email "&gt;</a>\n"))) 8879 email "&gt;</a>\n")))
9406 ;; abcd fgh j lmnopqrstuvwxyz ? #$ -+*/= [] ; |,.<>~ \t necessary bindings 9416 ;; abcd fgh j lmnopqrstuvwxyz ? #$ -+*/= [] ; |,.<>~ \t necessary bindings
9407 ;; e (?) useful from outline-mode 9417 ;; e (?) useful from outline-mode
9408 ;; i k @ expendable from outline-mode 9418 ;; i k @ expendable from outline-mode
9409 ;; 0123456789 ! %^& ()_{} " `' free 9419 ;; 0123456789 ! %^& ()_{} " `' free
9410 9420
9421 ;; Make `C-c C-x' a prefix key
9422 (define-key org-mode-map "\C-c\C-x" (make-sparse-keymap))
9423
9411 ;; TAB key with modifiers 9424 ;; TAB key with modifiers
9412 (define-key org-mode-map "\C-i" 'org-cycle) 9425 (define-key org-mode-map "\C-i" 'org-cycle)
9413 (define-key org-mode-map [(meta tab)] 'org-complete) 9426 (define-key org-mode-map [(meta tab)] 'org-complete)
9414 (define-key org-mode-map "\M-\C-i" 'org-complete) ; for tty emacs 9427 (define-key org-mode-map "\M-\C-i" 'org-complete) ; for tty emacs
9415 ;; The following line is necessary under Suse GNU/Linux 9428 ;; The following line is necessary under Suse GNU/Linux
9585 (while commands 9598 (while commands
9586 (setq old (pop commands) new (pop commands)) 9599 (setq old (pop commands) new (pop commands))
9587 (if (fboundp 'command-remapping) 9600 (if (fboundp 'command-remapping)
9588 (define-key map (vector 'remap old) new) 9601 (define-key map (vector 'remap old) new)
9589 (substitute-key-definition old new map global-map))))) 9602 (substitute-key-definition old new map global-map)))))
9590 9603
9591 (when (eq org-enable-table-editor 'optimized) 9604 (when (eq org-enable-table-editor 'optimized)
9592 ;; If the user wants maximum table support, we need to hijack 9605 ;; If the user wants maximum table support, we need to hijack
9593 ;; some standard editing functions 9606 ;; some standard editing functions
9594 (org-remap org-mode-map 9607 (org-remap org-mode-map
9595 'self-insert-command 'org-self-insert-command 9608 'self-insert-command 'org-self-insert-command