diff --git a/org b/org index 0a546e8f7..0556ecbb6 100644 --- a/org +++ b/org @@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY * Org Mode: (org). Outline-based notes management and organizer END-INFO-DIR-ENTRY - This manual is for Org-mode (version 4.70). + This manual is for Org-mode (version 4.71). Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation @@ -27,7 +27,7 @@ File: org, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) Org Mode Manual *************** -This manual is for Org-mode (version 4.70). +This manual is for Org-mode (version 4.71). Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation @@ -620,10 +620,14 @@ The following commands jump to other headlines in the buffer. `C-c C-j' Jump to a different place without changing the current outline visibility. Shows the document structure in a temporary buffer, - where you can use visibility cycling () to find your - destination. After pressing , the cursor moves to the - selected location in the original buffer, and the headings - hierarchy above it is made visible. + where you can use the following keys to find your destination: + Cycle visibility. + / Next/previous visible headline. + n / p Next/previous visible headline. + f / b Next/previous headline same level. + u One level up. + 0-9 Digit argument. + Select this location.  File: org, Node: Structure editing, Next: Archiving, Prev: Motion, Up: Document structure @@ -2199,8 +2203,7 @@ For specific link types, the following keywords will be defined: info | %:file %:node calendar | %:date" -If you would like to have the cursor in a specific position after the -template has been expanded: +To place the cursor after template expansion use: %? After completing the template, position cursor here. @@ -2225,20 +2228,24 @@ target file - if you press , the value specified for the template is used. Then the command offers the headings tree of the selected file, with the cursor position at the default headline (if you had specified one in the template). You can either immediately press -to get the note placed there. Or you can use vertical cursor motion -( and ) and visibility cycling () to find a better -place. Pressing or or then leads to the following +to get the note placed there. Or you can use the following keys to +find a better location: + Cycle visibility. + / Next/previous visible headline. + n / p Next/previous visible headline. + f / b Next/previous headline same level. + u One level up. + Pressing or or then leads to the following result. -Cursor Key Note gets inserted -position -buffer-start as level 2 heading at end of file -on headline as sublevel of the heading at cursor - as same level, before current heading - as same level, after current heading -not on at cursor position, level taken from context. -headline Or use prefix arg to specify level - manually. +Cursor Key Note gets inserted +position +buffer-start as level 2 heading at end of file +on headline as sublevel of the heading at cursor + /as same level, before/after current heading +not on at cursor position, level taken from context. +headline Or use prefix arg to specify level + manually. So a fast way to store the note to its default location is to press `C-c C-c '. Even shorter would be `C-u C-c C-c', which does @@ -4254,7 +4261,9 @@ the typeset result of these fragments, and upon export to HTML, all fragments will be converted to images and inlined into the HTML document. For this to work you need to be on a system with a working LaTeX installation. You also need the `dvipng' program, available at -`http://sourceforge.net/projects/dvipng/'. +`http://sourceforge.net/projects/dvipng/'. The LaTeX header that will +be used when processing a fragment can be configured with the variable +`org-format-latex-header'. LaTeX fragments don't need any special marking at all. The following snippets will be identified as LaTeX source code: @@ -5109,17 +5118,17 @@ File: org, Node: Triggering publication, Prev: Sample configuration, Up: Publ Once org-publish is properly configured, you can publish with the following functions: -`C-c C-e c' +`C-c C-e C' Prompt for a specific project and publish all files that belong to it. -`C-c C-e p' +`C-c C-e P' Publish the project containing the current file. -`C-c C-e f' +`C-c C-e F' Publish only the current file. -`C-c C-e a' +`C-c C-e A' Publish all projects. Org uses timestamps to track when a file has changed. The above @@ -6948,173 +6957,173 @@ Ref: Visibility cycling-Footnote-123934 Ref: Visibility cycling-Footnote-223992 Ref: Visibility cycling-Footnote-324042 Node: Motion24312 -Node: Structure editing25096 -Node: Archiving27922 -Node: ARCHIVE tag28480 -Node: Moving subtrees30273 -Node: Sparse trees31584 -Ref: Sparse trees-Footnote-133716 -Ref: Sparse trees-Footnote-233898 -Node: Plain lists34013 -Ref: Plain lists-Footnote-137782 -Ref: Plain lists-Footnote-238140 -Node: Tables38324 -Node: Built-in table editor38838 -Node: Narrow columns45857 -Ref: Narrow columns-Footnote-147790 -Node: orgtbl-mode47836 -Node: The spreadsheet48640 -Node: References49727 -Ref: References-Footnote-153856 -Node: Formula syntax for Calc54145 -Node: Formula syntax for Lisp56611 -Node: Field formulas57880 -Node: Column formulas59188 -Node: Editing and debugging formulas60787 -Node: Updating the table64940 -Node: Advanced features65975 -Node: Hyperlinks70500 -Node: Link format71273 -Node: Internal links72566 -Ref: Internal links-Footnote-174491 -Node: Radio targets74623 -Node: External links75314 -Node: Handling links77718 -Ref: Handling links-Footnote-182828 -Ref: Handling links-Footnote-283065 -Node: Link abbreviations83139 -Node: Search options84818 -Ref: Search options-Footnote-186598 -Node: Custom searches86679 -Node: Remember87727 -Node: Setting up remember88714 -Node: Remember templates89296 -Ref: Remember templates-Footnote-192610 -Node: Storing notes92708 -Node: TODO items94516 -Node: TODO basics95499 -Node: TODO extensions97198 -Node: Workflow states98017 -Ref: Workflow states-Footnote-199192 -Node: TODO types99285 -Ref: TODO types-Footnote-1100868 -Node: Multiple sets in one file100950 -Node: Per file keywords102561 -Ref: Per file keywords-Footnote-1103850 -Node: Priorities104051 -Node: Breaking down tasks105297 -Ref: Breaking down tasks-Footnote-1105817 -Node: Checkboxes105913 -Node: Timestamps108668 -Node: Time stamps109202 -Ref: Time stamps-Footnote-1112696 -Ref: Time stamps-Footnote-2112812 -Node: Creating timestamps112967 -Node: The date/time prompt115625 -Ref: The date/time prompt-Footnote-1117586 -Node: Custom time format117692 -Node: Repeating items119250 -Node: Progress logging121060 -Node: Closing items121706 -Ref: Closing items-Footnote-1122640 -Ref: Closing items-Footnote-2122709 -Node: Tracking TODO state changes122782 -Node: Clocking work time123638 -Ref: Clocking work time-Footnote-1127284 -Ref: Clocking work time-Footnote-2127362 -Node: Tags127488 -Node: Tag inheritance128250 -Node: Setting tags129187 -Ref: Setting tags-Footnote-1133710 -Ref: Setting tags-Footnote-2133822 -Node: Tag searches133905 -Node: Agenda views136616 -Node: Agenda files138561 -Ref: Agenda files-Footnote-1139527 -Ref: Agenda files-Footnote-2139676 -Node: Agenda dispatcher139869 -Node: Built-in agenda views141560 -Node: Weekly/Daily agenda142138 -Node: Global TODO list144267 -Node: Matching headline tags146539 -Node: Timeline147610 -Node: Stuck projects148276 -Node: Presentation and sorting149975 -Node: Categories150766 -Node: Time-of-day specifications151430 -Node: Sorting of agenda items153401 -Node: Agenda commands154683 -Node: Custom agenda views161412 -Node: Storing searches162087 -Node: Block agenda163999 -Node: Setting Options165229 -Node: Batch processing167941 -Node: Embedded LaTeX169071 -Ref: Embedded LaTeX-Footnote-1170163 -Node: Math symbols170353 -Node: Subscripts and Superscripts171118 -Node: LaTeX fragments171962 -Ref: LaTeX fragments-Footnote-1174070 -Node: Processing LaTeX fragments174332 -Node: CDLaTeX mode175278 -Ref: CDLaTeX mode-Footnote-1177762 -Node: Exporting177910 -Node: ASCII export179224 -Node: HTML export180514 -Node: Export commands181133 -Node: Quoting HTML tags181944 -Node: Links182574 -Node: Images183271 -Ref: Images-Footnote-1184142 -Node: CSS support184203 -Ref: CSS support-Footnote-1185522 -Node: XOXO export185635 -Node: iCalendar export186074 -Node: Text interpretation187293 -Node: Comment lines187835 -Node: Initial text188230 -Node: Enhancing text189904 -Ref: Enhancing text-Footnote-1191766 -Node: Export options191856 -Node: Publishing193749 -Ref: Publishing-Footnote-1194545 -Node: Configuration194741 -Node: Project alist195459 -Node: Sources and destinations196525 -Node: Selecting files197255 -Node: Publishing action198003 -Node: Publishing options199236 -Node: Publishing links201388 -Node: Project page index202901 -Node: Sample configuration203679 -Node: Simple example204171 -Node: Complex example204844 -Node: Triggering publication206920 -Node: Miscellaneous207605 -Node: Completion208239 -Node: Customization209710 -Node: In-buffer settings210293 -Node: The very busy C-c C-c key214770 -Node: Clean view216414 -Node: TTY keys218991 -Node: Interaction220601 -Node: Cooperation220998 -Node: Conflicts223740 -Node: Bugs225332 -Node: Extensions and Hacking226828 -Node: Extensions227424 -Node: Tables in arbitrary syntax229371 -Node: Radio tables230448 -Node: A LaTeX example232951 -Ref: A LaTeX example-Footnote-1236597 -Ref: A LaTeX example-Footnote-2236745 -Node: Translator functions237180 -Ref: Translator functions-Footnote-1240289 -Node: Dynamic blocks240377 -Node: Special agenda views242349 -Ref: Special agenda views-Footnote-1244628 -Node: History and Acknowledgments244888 -Node: Index250748 -Node: Key Index281729 +Node: Structure editing25266 +Node: Archiving28092 +Node: ARCHIVE tag28650 +Node: Moving subtrees30443 +Node: Sparse trees31754 +Ref: Sparse trees-Footnote-133886 +Ref: Sparse trees-Footnote-234068 +Node: Plain lists34183 +Ref: Plain lists-Footnote-137952 +Ref: Plain lists-Footnote-238310 +Node: Tables38494 +Node: Built-in table editor39008 +Node: Narrow columns46027 +Ref: Narrow columns-Footnote-147960 +Node: orgtbl-mode48006 +Node: The spreadsheet48810 +Node: References49897 +Ref: References-Footnote-154026 +Node: Formula syntax for Calc54315 +Node: Formula syntax for Lisp56781 +Node: Field formulas58050 +Node: Column formulas59358 +Node: Editing and debugging formulas60957 +Node: Updating the table65110 +Node: Advanced features66145 +Node: Hyperlinks70670 +Node: Link format71443 +Node: Internal links72736 +Ref: Internal links-Footnote-174661 +Node: Radio targets74793 +Node: External links75484 +Node: Handling links77888 +Ref: Handling links-Footnote-182998 +Ref: Handling links-Footnote-283235 +Node: Link abbreviations83309 +Node: Search options84988 +Ref: Search options-Footnote-186768 +Node: Custom searches86849 +Node: Remember87897 +Node: Setting up remember88884 +Node: Remember templates89466 +Ref: Remember templates-Footnote-192732 +Node: Storing notes92830 +Node: TODO items94798 +Node: TODO basics95781 +Node: TODO extensions97480 +Node: Workflow states98299 +Ref: Workflow states-Footnote-199474 +Node: TODO types99567 +Ref: TODO types-Footnote-1101150 +Node: Multiple sets in one file101232 +Node: Per file keywords102843 +Ref: Per file keywords-Footnote-1104132 +Node: Priorities104333 +Node: Breaking down tasks105579 +Ref: Breaking down tasks-Footnote-1106099 +Node: Checkboxes106195 +Node: Timestamps108950 +Node: Time stamps109484 +Ref: Time stamps-Footnote-1112978 +Ref: Time stamps-Footnote-2113094 +Node: Creating timestamps113249 +Node: The date/time prompt115907 +Ref: The date/time prompt-Footnote-1117868 +Node: Custom time format117974 +Node: Repeating items119532 +Node: Progress logging121342 +Node: Closing items121988 +Ref: Closing items-Footnote-1122922 +Ref: Closing items-Footnote-2122991 +Node: Tracking TODO state changes123064 +Node: Clocking work time123920 +Ref: Clocking work time-Footnote-1127566 +Ref: Clocking work time-Footnote-2127644 +Node: Tags127770 +Node: Tag inheritance128532 +Node: Setting tags129469 +Ref: Setting tags-Footnote-1133992 +Ref: Setting tags-Footnote-2134104 +Node: Tag searches134187 +Node: Agenda views136898 +Node: Agenda files138843 +Ref: Agenda files-Footnote-1139809 +Ref: Agenda files-Footnote-2139958 +Node: Agenda dispatcher140151 +Node: Built-in agenda views141842 +Node: Weekly/Daily agenda142420 +Node: Global TODO list144549 +Node: Matching headline tags146821 +Node: Timeline147892 +Node: Stuck projects148558 +Node: Presentation and sorting150257 +Node: Categories151048 +Node: Time-of-day specifications151712 +Node: Sorting of agenda items153683 +Node: Agenda commands154965 +Node: Custom agenda views161694 +Node: Storing searches162369 +Node: Block agenda164281 +Node: Setting Options165511 +Node: Batch processing168223 +Node: Embedded LaTeX169353 +Ref: Embedded LaTeX-Footnote-1170445 +Node: Math symbols170635 +Node: Subscripts and Superscripts171400 +Node: LaTeX fragments172244 +Ref: LaTeX fragments-Footnote-1174478 +Node: Processing LaTeX fragments174740 +Node: CDLaTeX mode175686 +Ref: CDLaTeX mode-Footnote-1178170 +Node: Exporting178318 +Node: ASCII export179632 +Node: HTML export180922 +Node: Export commands181541 +Node: Quoting HTML tags182352 +Node: Links182982 +Node: Images183679 +Ref: Images-Footnote-1184550 +Node: CSS support184611 +Ref: CSS support-Footnote-1185930 +Node: XOXO export186043 +Node: iCalendar export186482 +Node: Text interpretation187701 +Node: Comment lines188243 +Node: Initial text188638 +Node: Enhancing text190312 +Ref: Enhancing text-Footnote-1192174 +Node: Export options192264 +Node: Publishing194157 +Ref: Publishing-Footnote-1194953 +Node: Configuration195149 +Node: Project alist195867 +Node: Sources and destinations196933 +Node: Selecting files197663 +Node: Publishing action198411 +Node: Publishing options199644 +Node: Publishing links201796 +Node: Project page index203309 +Node: Sample configuration204087 +Node: Simple example204579 +Node: Complex example205252 +Node: Triggering publication207328 +Node: Miscellaneous208013 +Node: Completion208647 +Node: Customization210118 +Node: In-buffer settings210701 +Node: The very busy C-c C-c key215178 +Node: Clean view216822 +Node: TTY keys219399 +Node: Interaction221009 +Node: Cooperation221406 +Node: Conflicts224148 +Node: Bugs225740 +Node: Extensions and Hacking227236 +Node: Extensions227832 +Node: Tables in arbitrary syntax229779 +Node: Radio tables230856 +Node: A LaTeX example233359 +Ref: A LaTeX example-Footnote-1237005 +Ref: A LaTeX example-Footnote-2237153 +Node: Translator functions237588 +Ref: Translator functions-Footnote-1240697 +Node: Dynamic blocks240785 +Node: Special agenda views242757 +Ref: Special agenda views-Footnote-1245036 +Node: History and Acknowledgments245296 +Node: Index251156 +Node: Key Index282137  End Tag Table diff --git a/org-mouse.el b/org-mouse.el index ae544e67c..53cba3a23 100644 --- a/org-mouse.el +++ b/org-mouse.el @@ -3,7 +3,7 @@ ;; Copyright (c) 2006 Piotr Zielinski ;; ;; Author: Piotr Zielinski -;; Version: 0.24 +;; Version: 0.24a ;; $Id: org-mouse.el 817 2007-02-01 00:28:02Z pz215 $ ;; ;; The latest version of this file is available from @@ -548,6 +548,9 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:" (set-match-data ',match) (apply ',function rest))))) +(defun org-mouse-todo-keywords () + (if (boundp 'org-todo-keywords-1) org-todo-keywords-1 org-todo-keywords)) + (defun org-mouse-match-todo-keyword () (save-excursion (org-back-to-heading) @@ -616,10 +619,10 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:" (org-mouse-remove-match-and-spaces))))] ))) ((and (org-mouse-looking-at "\\b\\w+" "a-zA-Z0-9_") - (member (match-string 0) org-todo-keywords)) + (member (match-string 0) (org-mouse-todo-keywords))) (popup-menu `(nil - ,@(org-mouse-keyword-replace-menu org-todo-keywords) + ,@(org-mouse-keyword-replace-menu (org-mouse-todo-keywords)) "--" ["Check TODOs" org-show-todo-tree t] ["List all TODO keywords" org-todo-list t] @@ -758,7 +761,8 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:" ,@(org-mouse-tag-menu)) ("TODO Status" ,@(progn (org-mouse-match-todo-keyword) - (org-mouse-keyword-replace-menu org-todo-keywords 1))) + (org-mouse-keyword-replace-menu (org-mouse-todo-keywords) + 1))) ["Show Tags" (with-current-buffer org-mouse-main-buffer (org-agenda-show-tags)) :visible (not org-mouse-direct)] @@ -1028,7 +1032,6 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:" ["Exit and Release Buffers" org-agenda-exit t] )))) - (defun org-mouse-get-gesture (event) (let ((startxy (posn-x-y (event-start event))) (endxy (posn-x-y (event-end event)))) diff --git a/org-publish.el b/org-publish.el index 4f0939c85..0ceeb2cc4 100644 --- a/org-publish.el +++ b/org-publish.el @@ -6,7 +6,7 @@ ;; Keywords: hypermedia, outlines ;; Version: -;; $Id: org-publish.el,v 1.78 2006/09/10 06:41:23 dto Exp dto $ +;; $Id: org-publish.el,v 1.80 2007/03/22 02:31:03 dto Exp dto $ ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -319,6 +319,7 @@ whether file should be published." (if (not (file-exists-p timestamp)) ;; create file (with-temp-buffer + (make-directory (file-name-directory timestamp) :parents) (write-file timestamp) (kill-buffer (current-buffer))))) rtn)) @@ -549,9 +550,10 @@ default is 'index.org'." (interactive (list (completing-read "Project name: " org-publish-project-alist nil t) current-prefix-arg)) - (let ((org-publish-use-timestamps-flag (if force nil t)) - (plists (org-publish-get-plists project-name))) - (mapcar 'org-publish-plist plists))) + (save-window-excursion + (let ((org-publish-use-timestamps-flag (if force nil t)) + (plists (org-publish-get-plists project-name))) + (mapcar 'org-publish-plist plists)))) ;;;###autoload @@ -559,11 +561,12 @@ default is 'index.org'." "Publish the project associated with the current file. With prefix argument, force publishing all files in project." (interactive "P") - (let* ((project-name (org-publish-get-project-from-filename (buffer-file-name))) - (org-publish-use-timestamps-flag (if force nil t))) - (if (not project-name) - (error (format "File %s is not part of any known project." (buffer-file-name)))) - (org-publish project-name))) + (save-window-excursion + (let* ((project-name (org-publish-get-project-from-filename (buffer-file-name))) + (org-publish-use-timestamps-flag (if force nil t))) + (if (not project-name) + (error (format "File %s is not part of any known project." (buffer-file-name)))) + (org-publish project-name)))) ;;;###autoload @@ -571,9 +574,10 @@ With prefix argument, force publishing all files in project." "Publish the current file. With prefix argument, force publish the file." (interactive "P") - (let ((org-publish-use-timestamps-flag - (if force nil t))) - (org-publish-file (buffer-file-name)))) + (save-window-excursion + (let ((org-publish-use-timestamps-flag + (if force nil t))) + (org-publish-file (buffer-file-name))))) ;;;###autoload @@ -581,10 +585,11 @@ With prefix argument, force publish the file." "Publish all projects. With prefix argument, force publish all files." (interactive "P") - (let ((org-publish-use-timestamps-flag - (if force nil t)) - (plists (org-publish-get-plists))) - (mapcar 'org-publish-plist plists))) + (save-window-excursion + (let ((org-publish-use-timestamps-flag + (if force nil t)) + (plists (org-publish-get-plists))) + (mapcar 'org-publish-plist plists)))) diff --git a/org.el b/org.el index 904c92175..ac3eaa921 100644 --- a/org.el +++ b/org.el @@ -5,7 +5,7 @@ ;; Author: Carsten Dominik ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ -;; Version: 4.70 +;; Version: 4.71 ;; ;; This file is part of GNU Emacs. ;; @@ -83,7 +83,7 @@ ;;; Version -(defconst org-version "4.70" +(defconst org-version "4.71" "The version number of the file org.el.") (defun org-version () (interactive) @@ -1368,6 +1368,7 @@ taken from the (otherwise obsolete) variable `org-todo-interpretation'." (defvar org-todo-keywords-1 nil) (make-variable-buffer-local 'org-todo-keywords-1) +(defvar org-todo-keywords-for-agenda nil) (defvar org-not-done-keywords nil) (make-variable-buffer-local 'org-not-done-keywords) (defvar org-done-keywords nil) @@ -2232,6 +2233,18 @@ This is a property list with the following properties: :group 'org-latex :type 'plist) +(defcustom org-format-latex-header "\\documentclass{article} +\\usepackage{fullpage} % do not remove +\\usepackage{amssymb} +\\usepackage[usenames]{color} +\\usepackage{amsmath} +\\usepackage{latexsym} +\\usepackage[mathscr]{eucal} +\\pagestyle{empty} % do not remove" + "The document header used for processing LaTeX fragments." + :group 'org-latex + :type 'string) + (defgroup org-export nil "Options for exporting org-listings." :tag "Org Export" @@ -2642,12 +2655,24 @@ This option can also be set with the +OPTIONS line, e.g. \"@:nil\"." (defcustom org-export-html-table-tag "" - "The HTML tag used to start a table. + "The HTML tag that is used to start a table. This must be a
tag, but you may change the options like borders and spacing." :group 'org-export-html :type 'string) +(defcustom org-export-table-header-tags '("") + "The opening tag for table header fields. +This is customizable so that alignment options can be specified." + :group 'org-export-tables + :type '(cons (string :tag "Opening tag") (string :tag "Closing tag"))) + +(defcustom org-export-table-data-tags '("") + "The opening tag for table data fields. +This is customizable so that alignment options can be specified." + :group 'org-export-tables + :type '(cons (string :tag "Opening tag") (string :tag "Closing tag"))) + (defcustom org-export-html-with-timestamp nil "If non-nil, write `org-export-html-html-helper-timestamp' into the exported HTML text. Otherwise, the buffer will just be saved @@ -4036,7 +4061,7 @@ between words." (if org-fontify-done-headline (list (concat "^[*]+ +\\<\\(" (mapconcat 'regexp-quote org-done-keywords "\\|") - "\\)\\(.*\\)\\>") + "\\)\\(.*\\)") '(1 'org-done t) '(2 'org-headline-done t)) (list (concat "^[*]+ +\\<\\(" (mapconcat 'regexp-quote org-done-keywords "\\|") @@ -4804,6 +4829,7 @@ is signaled in this case." (setq folded (org-invisible-p))) (outline-end-of-subtree)) (outline-next-heading) + (if (not (bolp)) (insert "\n")) (setq end (point)) ;; Find insertion point, with error handling (goto-char beg) @@ -5340,7 +5366,7 @@ If the cursor is not in an item, throw an error." (if (catch 'exit (while t (beginning-of-line 0) - (if (< (point) limit) (throw 'exit nil)) + (if (or (bobp) (< (point) limit)) (throw 'exit nil)) (if (looking-at "[ \t]*$") (setq ind1 ind-empty) @@ -12478,7 +12504,7 @@ used to insert the time stamp into the buffer to include the time." (calendar-forward-day (- (time-to-days default-time) (calendar-absolute-from-gregorian (calendar-current-date)))) - (org-eval-in-calendar nil) + (org-eval-in-calendar nil t) (let* ((old-map (current-local-map)) (map (copy-keymap calendar-mode-map)) (minibuffer-local-map (copy-keymap minibuffer-local-map))) @@ -12576,13 +12602,13 @@ used to insert the time stamp into the buffer to include the time." (format "%04d-%02d-%02d %02d:%02d" year month day hour minute) (format "%04d-%02d-%02d" year month day))))) -(defun org-eval-in-calendar (form) +(defun org-eval-in-calendar (form &optional keepdate) "Eval FORM in the calendar window and return to current window. Also, store the cursor date in variable org-ans2." (let ((sw (selected-window))) (select-window (get-buffer-window "*Calendar*")) (eval form) - (when (calendar-cursor-to-date) + (when (and (not keepdate) (calendar-cursor-to-date)) (let* ((date (calendar-cursor-to-date)) (time (encode-time 0 0 0 (nth 1 date) (nth 0 date) (nth 2 date)))) (setq org-ans2 (format-time-string "%Y-%m-%d" time)))) @@ -12591,7 +12617,8 @@ Also, store the cursor date in variable org-ans2." ;; Update the prompt to show new default date (save-excursion (goto-char (point-min)) - (when (and (re-search-forward "\\[[-0-9]+\\]" nil t) + (when (and org-ans2 + (re-search-forward "\\[[-0-9]+\\]" nil t) (get-text-property (match-end 0) 'field)) (let ((inhibit-read-only t)) (replace-match (concat "[" org-ans2 "]") t t) @@ -13620,6 +13647,11 @@ The following commands are available: `(unless (get-text-property (point) 'org-protected) ,@body)) +(defmacro org-unmodified (&rest body) + "Execute body without changing buffer-modified-p." + `(set-buffer-modified-p + (prog1 (buffer-modified-p) ,@body))) + (defmacro org-with-remote-undo (_buffer &rest _body) "Execute BODY while recording undo information in two buffers." (declare (indent 1) (debug t)) @@ -14046,6 +14078,7 @@ Optional argument FILE means, use this file instead of the current." (defvar org-agenda-buffer-name "*Org Agenda*") (defvar org-pre-agenda-window-conf nil) (defun org-prepare-agenda () + (setq org-todo-keywords-for-agenda nil) (if org-agenda-multi (progn (setq buffer-read-only nil) @@ -14055,6 +14088,8 @@ Optional argument FILE means, use this file instead of the current." (narrow-to-region (point) (point-max))) (org-agenda-maybe-reset-markers 'force) (org-prepare-agenda-buffers (org-agenda-files)) + (setq org-todo-keywords-for-agenda + (org-uniquify org-todo-keywords-for-agenda)) (let* ((abuf (get-buffer-create org-agenda-buffer-name)) (awin (get-buffer-window abuf))) (cond @@ -14102,6 +14137,8 @@ Optional argument FILE means, use this file instead of the current." (set-buffer (org-get-agenda-file-buffer file)) (widen) (setq bmp (buffer-modified-p)) + (setq org-todo-keywords-for-agenda + (append org-todo-keywords-for-agenda org-todo-keywords-1)) (save-excursion (remove-text-properties (point-min) (point-max) pall) (when org-agenda-skip-archived-trees @@ -14506,24 +14543,23 @@ for a keyword. A numeric prefix directly selects the Nth keyword in (require 'calendar) (org-compile-prefix-format 'todo) (org-set-sorting-strategy 'todo) + (org-prepare-agenda) (let* ((today (time-to-days (current-time))) (date (calendar-gregorian-from-absolute today)) - (kwds org-todo-keywords-1) + (kwds org-todo-keywords-for-agenda) (completion-ignore-case t) (org-select-this-todo-keyword (if (stringp arg) arg (and arg (integerp arg) (> arg 0) - (nth (1- arg) org-todo-keywords-1)))) + (nth (1- arg) kwds)))) rtn rtnall files file pos) (when (equal arg '(4)) (setq org-select-this-todo-keyword (completing-read "Keyword (or KWD1|K2D2|...): " - (mapcar 'list org-todo-keywords-1) - nil nil))) + (mapcar 'list kwds) nil nil))) (and (equal 0 arg) (setq org-select-this-todo-keyword nil)) - (org-prepare-agenda) (org-set-local 'org-last-arg arg) - (org-set-local 'org-todo-keywords-1 kwds) +;FIXME (org-set-local 'org-todo-keywords-for-agenda kwds) (setq org-agenda-redo-command '(org-todo-list (or current-prefix-arg org-last-arg))) (setq files (org-agenda-files) @@ -14544,13 +14580,15 @@ for a keyword. A numeric prefix directly selects the Nth keyword in (add-text-properties pos (1- (point)) (list 'face 'org-warning)) (setq pos (point)) (unless org-agenda-multi - (insert - "Available with `N r': (0)ALL " - (let ((n 0)) - (mapconcat (lambda (x) - (format "(%d)%s" (setq n (1+ n)) x)) - org-todo-keywords-1 " ")) - "\n")) + (insert "Available with `N r': (0)ALL") + (let ((n 0) s) + (mapc (lambda (x) + (setq s (format "(%d)%s" (setq n (1+ n)) x)) + (if (> (+ (current-column) (string-width s) 1) (frame-width)) + (insert "\n ")) + (insert " " s)) + kwds)) + (insert "\n")) (add-text-properties pos (1- (point)) (list 'face 'org-level-3))) (when rtnall (insert (org-finalize-agenda-entries rtnall) "\n")) @@ -16726,15 +16764,8 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." (fg (or (plist-get options :foreground) "Black")) (bg (or (plist-get options :background) "Transparent"))) (with-temp-file texfile - (insert "\\documentclass{article} -\\usepackage{fullpage} -\\usepackage{amssymb} -\\usepackage[usenames]{color} -\\usepackage{amsmath} -\\usepackage{latexsym} -\\usepackage[mathscr]{eucal} -\\pagestyle{empty} -\\begin{document}\n" string "\n\\end{document}\n")) + (insert org-format-latex-header + "\n\\begin{document}\n" string "\n\\end{document}\n")) (let ((dir default-directory)) (condition-case nil (progn @@ -16864,6 +16895,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." "Skip lines starting with \"#\" and subtrees starting with COMMENT." (let ((re1 (concat "^\\(\\*+\\)[ \t]+" org-comment-string)) (re2 "^\\(\\*+\\)[ \t\n\r]") + (case-fold-search nil) rtn line level) (while (setq line (pop lines)) (cond @@ -17387,8 +17419,9 @@ translations. There is currently no way for users to extend this.") (let ((end (save-excursion (outline-next-heading) (point)))) (when (re-search-forward "^[ \t]*[^# \t\r\n].*\n" end t) ;; Mark the line so that it will not be exported as normal text. - (add-text-properties (match-beginning 0) (match-end 0) - (list :org-license-to-kill t)) + (org-unmodified + (add-text-properties (match-beginning 0) (match-end 0) + (list :org-license-to-kill t))) ;; Return the title string (org-trim (match-string 0)))))) @@ -17463,10 +17496,6 @@ underlined headlines. The default is 3." (setq-default org-todo-line-regexp org-todo-line-regexp) (let* ((opt-plist (org-combine-plists (org-default-export-plist) (org-infile-export-plist))) - (region - (buffer-substring - (if (org-region-active-p) (region-beginning) (point-min)) - (if (org-region-active-p) (region-end) (point-max)))) (custom-times org-display-custom-times) (org-ascii-current-indentation '(0 . 0)) (level 0) line txt @@ -17496,6 +17525,10 @@ underlined headlines. The default is 3." ; (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)")) (todo nil) (lang-words nil) + (region + (buffer-substring + (if (org-region-active-p) (region-beginning) (point-min)) + (if (org-region-active-p) (region-end) (point-max)))) (lines (org-skip-comments (org-split-string (org-cleaned-string-for-export @@ -17506,7 +17539,8 @@ underlined headlines. The default is 3." "[\r\n]"))) thetoc have-headings first-heading-pos) - (remove-text-properties (point-min) (point-max) '(:org-license-to-kill t)) + (org-unmodified + (remove-text-properties (point-min) (point-max) '(:org-license-to-kill t))) (setq org-last-level 1) (org-init-section-numbers) @@ -18001,7 +18035,8 @@ associated with a file." rpl path desc descp desc1 desc2 link ) - (remove-text-properties (point-min) (point-max) '(:org-license-to-kill t)) + (org-unmodified + (remove-text-properties (point-min) (point-max) '(:org-license-to-kill t))) (message "Exporting...") @@ -18536,8 +18571,10 @@ lang=\"%s\" xml:lang=\"%s\"> (string-match org-table-number-regexp x)) (incf (aref fnum i))) (if head - (concat "") - (concat ""))) + (concat (car org-export-table-header-tags) x + (cdr org-export-table-header-tags)) + (concat (car org-export-table-data-tags) x + (cdr org-export-table-data-tags)))) fields "") "") html))) @@ -18593,17 +18630,21 @@ But it has the disadvantage, that no cell- or row-spanning is allowed." (progn (if field-buffer (progn - (setq html (concat - html - "" - (mapconcat - (lambda (x) - (if (equal x "") (setq x empty)) - (if head - (concat "\n") - (concat "\n"))) - field-buffer "\n") - "\n")) + (setq + html + (concat + html + "" + (mapconcat + (lambda (x) + (if (equal x "") (setq x empty)) + (if head + (concat (car org-export-table-header-tags) x + (cdr org-export-table-header-tags)) + (concat (car org-export-table-data-tags) x + (cdr org-export-table-data-tags)))) + field-buffer "\n") + "\n")) (setq head nil) (setq field-buffer nil))) ;; Ignore this line @@ -18748,6 +18789,10 @@ stacked delimiters is N. Escaping delimiters is not possible." "\\(\\(?:\\*\\|[-+]?[^-+*!@#$%^_ \t\r\n,:\"?<>~;./{}=()]+\\)\\)\\)") "The regular expression matching a sub- or superscript.") +;(let ((s "a\\_b")) +; (and (string-match org-match-substring-regexp s) +; (conca t (match-string 1 s) ":::" (match-string 2 s)))) + (defun org-export-html-convert-sub-super (string) "Convert sub- and superscripts in STRING to HTML." (let (key c (s 0) (requireb (eq org-export-with-sub-superscripts '{}))) @@ -18762,9 +18807,9 @@ stacked delimiters is N. Escaping delimiters is not possible." string (replace-match (concat (match-string 1 string) "<" key ">" c "") - t t string))) - (while (string-match "\\\\\\([_^]\\)" string) - (setq string (replace-match (match-string 1 string) t t string)))) + t t string)))) + (while (string-match "\\\\\\([_^]\\)" string) + (setq string (replace-match (match-string 1 string) t t string))) string)) (defun org-export-html-convert-emphasize (string) @@ -20075,6 +20120,12 @@ really on, so that the block visually is on the match." (throw 'exit t))) nil)))) +(defun org-uniquify (list) + "Remove duplicate elements from LIST." + (let (res) + (mapc (lambda (x) (add-to-list 'res x 'append)) list) + res)) + (defun org-delete-all (elts list) "Remove all elements in ELTS from LIST." (while elts @@ -20211,6 +20262,7 @@ not an indirect buffer" ;; fill the headline as well. (org-set-local 'comment-start-skip "^#+[ \t]*") (org-set-local 'paragraph-separate "\f\\|\\*\\|[ ]*$\\|[ \t]*[:|]") +;; FIXME!!!!!!! (org-set-local 'paragraph-separate "\f\\|[ ]*$") ;; The paragraph starter includes hand-formatted lists. (org-set-local 'paragraph-start "\f\\|[ ]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*][ \t]+\\|[0-9]+[.)][ \t]+\\)\\|[ \t]*[:|]") diff --git a/org.pdf b/org.pdf index 0c91f6ef6..4ad3c245c 100644 Binary files a/org.pdf and b/org.pdf differ diff --git a/org.texi b/org.texi index 95708023f..a99ab26c3 100644 --- a/org.texi +++ b/org.texi @@ -3,8 +3,8 @@ @setfilename ../info/org @settitle Org Mode Manual -@set VERSION 4.70 -@set DATE March 2007 +@set VERSION 4.71 +@set DATE April 2007 @dircategory Emacs @direntry @@ -717,10 +717,16 @@ Backward to higher level heading. @item C-c C-j Jump to a different place without changing the current outline visibility. Shows the document structure in a temporary buffer, where -you can use visibility cycling (@key{TAB}) to find your destination. -After pressing @key{RET}, the cursor moves to the selected location in -the original buffer, and the headings hierarchy above it is made -visible. +you can use the following keys to find your destination: +@example +@key{TAB} @r{Cycle visibility.} +@key{down} / @key{up} @r{Next/previous visible headline.} +n / p @r{Next/previous visible headline.} +f / b @r{Next/previous headline same level.} +u @r{One level up.} +0-9 @r{Digit argument.} +@key{RET} @r{Select this location.} +@end example @end table @node Structure editing, Archiving, Motion, Document structure @@ -2460,8 +2466,7 @@ calendar | %:date" @end example @noindent -If you would like to have the cursor in a specific position after the -template has been expanded: +To place the cursor after template expansion use: @example %? @r{After completing the template, position cursor here.} @@ -2481,17 +2486,25 @@ target file - if you press @key{RET}, the value specified for the template is used. Then the command offers the headings tree of the selected file, with the cursor position at the default headline (if you had specified one in the template). You can either immediately press -@key{RET} to get the note placed there. Or you can use vertical cursor -motion (@key{up} and @key{down}) and visibility cycling (@key{TAB}) to -find a better place. Pressing @key{RET} or @key{left} or @key{right} +@key{RET} to get the note placed there. Or you can use the following +keys to find a better location: +@example +@key{TAB} @r{Cycle visibility.} +@key{down} / @key{up} @r{Next/previous visible headline.} +n / p @r{Next/previous visible headline.} +f / b @r{Next/previous headline same level.} +u @r{One level up.} +@c 0-9 @r{Digit argument.} +@end example +@noindent +Pressing @key{RET} or @key{left} or @key{right} then leads to the following result. -@multitable @columnfractions 0.2 0.1 0.7 +@multitable @columnfractions 0.2 0.15 0.65 @item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted} @item buffer-start @tab @key{RET} @tab as level 2 heading at end of file @item on headline @tab @key{RET} @tab as sublevel of the heading at cursor -@item @tab @key{left} @tab as same level, before current heading -@item @tab @key{right} @tab as same level, after current heading +@item @tab @key{left}/@key{right} @tab as same level, before/after current heading @item not on headline @tab @key{RET} @tab at cursor position, level taken from context. Or use prefix arg to specify level manually. @@ -4679,7 +4692,9 @@ preview the typeset result of these fragments, and upon export to HTML, all fragments will be converted to images and inlined into the HTML document. For this to work you need to be on a system with a working La@TeX{} installation. You also need the @file{dvipng} program, -available at @url{http://sourceforge.net/projects/dvipng/}. +available at @url{http://sourceforge.net/projects/dvipng/}. The LaTeX +header that will be used when processing a fragment can be configured +with the variable @code{org-format-latex-header}. La@TeX{} fragments don't need any special marking at all. The following snippets will be identified as LaTeX source code: @@ -5605,13 +5620,13 @@ Once org-publish is properly configured, you can publish with the following functions: @table @kbd -@item C-c C-e c +@item C-c C-e C Prompt for a specific project and publish all files that belong to it. -@item C-c C-e p +@item C-c C-e P Publish the project containing the current file. -@item C-c C-e f +@item C-c C-e F Publish only the current file. -@item C-c C-e a +@item C-c C-e A Publish all projects. @end table diff --git a/orgcard.pdf b/orgcard.pdf index 571001757..ff9abf438 100644 Binary files a/orgcard.pdf and b/orgcard.pdf differ diff --git a/orgcard.tex b/orgcard.tex index e4c18b8c8..b5fb56c70 100644 --- a/orgcard.tex +++ b/orgcard.tex @@ -1,5 +1,5 @@ % Reference Card for Org Mode -\def\orgversionnumber{4.70} +\def\orgversionnumber{4.71} \def\versionyear{2007} % latest update \def\year{2007} % latest copyright year %
" . "" . "" x "" x "
" x "" x "