aboutsummaryrefslogtreecommitdiffstats
path: root/doc/misc
diff options
context:
space:
mode:
authorStefan Monnier2012-03-25 16:37:21 -0400
committerStefan Monnier2012-03-25 16:37:21 -0400
commit699c782b7668c44d0fa4446331b0590a6d5dac82 (patch)
tree5dcce364741d0761920a3d274b0fc8aba4103d45 /doc/misc
parent98fb480ee31bf74cf554044f60f21df16566dd7f (diff)
parente99a9b8bdccadded1f6fae88ee7a2a93dfd4eacf (diff)
downloademacs-pending.tar.gz
emacs-pending.zip
Merge from trunkpending
Diffstat (limited to 'doc/misc')
-rw-r--r--doc/misc/ChangeLog698
-rw-r--r--doc/misc/Makefile.in15
-rw-r--r--doc/misc/ada-mode.texi8
-rw-r--r--doc/misc/auth.texi22
-rw-r--r--doc/misc/autotype.texi8
-rw-r--r--doc/misc/calc.texi1174
-rw-r--r--doc/misc/cc-mode.texi195
-rw-r--r--doc/misc/cl.texi121
-rw-r--r--doc/misc/dbus.texi17
-rw-r--r--doc/misc/dired-x.texi4
-rw-r--r--doc/misc/ebrowse.texi6
-rw-r--r--doc/misc/ede.texi26
-rw-r--r--doc/misc/ediff.texi8
-rw-r--r--doc/misc/edt.texi2
-rw-r--r--doc/misc/eieio.texi10
-rw-r--r--doc/misc/emacs-mime.texi6
-rw-r--r--doc/misc/epa.texi2
-rw-r--r--doc/misc/erc.texi2
-rw-r--r--doc/misc/ert.texi138
-rw-r--r--doc/misc/eshell.texi10
-rw-r--r--doc/misc/eudc.texi2
-rw-r--r--doc/misc/faq.texi8
-rw-r--r--doc/misc/flymake.texi38
-rw-r--r--doc/misc/forms.texi2
-rw-r--r--doc/misc/gnus-coding.texi12
-rw-r--r--doc/misc/gnus-faq.texi120
-rw-r--r--doc/misc/gnus-news.el4
-rw-r--r--doc/misc/gnus-news.texi8
-rw-r--r--doc/misc/gnus.texi235
-rw-r--r--doc/misc/idlwave.texi194
-rw-r--r--doc/misc/info.texi12
-rw-r--r--doc/misc/mairix-el.texi2
-rw-r--r--doc/misc/makefile.w32-in167
-rw-r--r--doc/misc/message.texi8
-rw-r--r--doc/misc/mh-e.texi21
-rw-r--r--doc/misc/newsticker.texi23
-rw-r--r--doc/misc/nxml-mode.texi8
-rw-r--r--doc/misc/org.texi3955
-rw-r--r--doc/misc/pcl-cvs.texi14
-rw-r--r--doc/misc/pgg.texi28
-rw-r--r--doc/misc/rcirc.texi12
-rw-r--r--doc/misc/reftex.texi34
-rw-r--r--doc/misc/remember.texi11
-rw-r--r--doc/misc/sasl.texi2
-rw-r--r--doc/misc/sc.texi16
-rw-r--r--doc/misc/sem-user.texi14
-rw-r--r--doc/misc/semantic.texi16
-rw-r--r--doc/misc/ses.texi4
-rw-r--r--doc/misc/sieve.texi2
-rw-r--r--doc/misc/smtpmail.texi213
-rw-r--r--doc/misc/speedbar.texi2
-rw-r--r--doc/misc/texinfo.tex323
-rw-r--r--doc/misc/tramp.texi29
-rw-r--r--doc/misc/trampver.texi4
-rw-r--r--doc/misc/url.texi28
-rw-r--r--doc/misc/vip.texi4
-rw-r--r--doc/misc/viper.texi10
-rw-r--r--doc/misc/widget.texi3
-rw-r--r--doc/misc/woman.texi6
59 files changed, 5455 insertions, 2611 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index a977b9d2f7f..8d40ab5ab15 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,693 @@
12012-03-22 Peder O. Klingenberg <peder@klingenberg.no> (tiny change)
2
3 * gnus.texi (Archived Messages): Update `gnus-message-archive-group' to
4 reflect the new default.
5
62012-03-10 Eli Zaretskii <eliz@gnu.org>
7
8 * info.texi (Expert Info): Move the index entry for "Texinfo" from
9 "Getting Started" to this node. (Bug#10450)
10
112012-03-10 Chong Yidong <cyd@gnu.org>
12
13 * flymake.texi (Example -- Configuring a tool called via make):
14 Mention the Automake COMPILE variable (Bug#8715).
15
16 * info.texi (Getting Started): Add an index entry (Bug#10450).
17
182012-03-02 Michael Albinus <michael.albinus@gmx.de>
19
20 * dbus.texi (Signals): Known names will be mapped onto unique
21 names, when registering for signals.
22
232012-02-29 Glenn Morris <rgm@gnu.org>
24
25 * url.texi: Fix quote usage in body text.
26
27 * sem-user.texi, url.texi, woman.texi: Use "" quotes in menus.
28
29 * cl.texi: Use @code{} in menus when appropriate.
30
312012-02-28 Glenn Morris <rgm@gnu.org>
32
33 * calc.texi, cc-mode.texi, cl.texi, ebrowse.texi, ediff.texi:
34 * eshell.texi, gnus-faq.texi, gnus-news.texi, gnus.texi:
35 * idlwave.texi, info.texi, newsticker.texi, nxml-mode.texi:
36 * org.texi, sc.texi, vip.texi, viper.texi:
37 Standardize possessive apostrophe usage.
38
392012-02-26 Chong Yidong <cyd@gnu.org>
40
41 * ediff.texi (Quick Help Commands): Add a couple of index entries
42 (Bug#10834).
43
442012-02-17 Glenn Morris <rgm@gnu.org>
45
46 * gnus.texi (Posting Styles):
47 * remember.texi (Org): Fix cross-refs to other manuals.
48
492012-02-15 Glenn Morris <rgm@gnu.org>
50
51 * smtpmail.texi (Emacs Speaks SMTP): General update for 24.1.
52 (Encryption): New chapter, split out from previous.
53
542012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
55
56 * gnus.texi (Customizing the IMAP Connection): Mention
57 nnimap-record-commands.
58
592012-02-10 Glenn Morris <rgm@gnu.org>
60
61 * url.texi (Retrieving URLs): Update url-retrieve arguments.
62 Mention url-queue-retrieve.
63
642012-02-09 Glenn Morris <rgm@gnu.org>
65
66 * sem-user.texi (Semantic mode user commands): Typo fix.
67
68 * info.texi (Create Info buffer): Mention info-display-manual.
69
702012-02-07 Lars Ingebrigtsen <larsi@gnus.org>
71
72 * gnus.texi (Mail Source Specifiers): Add a pop3 via an SSH tunnel
73 example (modified from an example by Michael Albinus).
74
752012-01-30 Philipp Haselwarter <philipp.haselwarter@gmx.de> (tiny change)
76
77 * gnus.texi (Agent Basics): Fix outdated description of
78 `gnus-agent-auto-agentize-methods'.
79
802012-01-28 Andreas Schwab <schwab@linux-m68k.org>
81
82 * cc-mode.texi: Always @defindex ss.
83 (Config Basics): Fix argument of @itemize.
84 (Macro Backslashes): Add @code around index entry.
85
862012-01-23 Glenn Morris <rgm@gnu.org>
87
88 * pcl-cvs.texi (About PCL-CVS): Refer to vc-dir rather than vc-dired.
89
902012-01-19 Eric Hanchrow <eric.hanchrow@gmail.com>
91
92 * tramp.texi (File): Tweak wording for the `scpc' option.
93
942012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
95
96 * gnus.texi (Group Parameters): Really note precedence.
97
982012-01-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
99
100 * gnus.texi (Group Parameters): Note precedence.
101
1022012-01-03 Eric Schulte <eric.schulte@gmx.com>
103
104 * org.texi (Noweb reference syntax): Adding documentation of
105 the `*org-babel-use-quick-and-dirty-noweb-expansion*'
106 variable.
107
1082012-01-03 Bastien Guerry <bzg@gnu.org>
109
110 * org.texi (Plain lists): Split the table to fix the display
111 of items.
112
1132012-01-03 Bastien Guerry <bzg@gnu.org>
114
115 * org.texi (Plain lists): Fix misplaced explanation.
116
1172012-01-03 Bastien Guerry <bzg@gnu.org>
118
119 * org.texi (Plain lists, Agenda files): Add index entries.
120
1212012-01-03 Julian Gehring <julian.gehring@googlemail.com>
122
123 * org.texi: Use "Org mode" instead of alternatives like
124 "Org-mode" or "org-mode".
125
1262012-01-03 Bernt Hansen <bernt@norang.ca>
127
128 * org.texi (Agenda commands): Document
129 `org-clock-report-include-clocking-task'.
130
1312012-01-03 Bastien Guerry <bzg@gnu.org>
132
133 * org.texi (Checkboxes): Document the new behavior of `C-u C-c
134 C-c' on checkboxes.
135
1362012-01-03 Julian Gehring <julian.gehring@googlemail.com>
137
138 * org.texi: End sentences with two spaces.
139
1402012-01-03 Michael Brand <michael.ch.brand@gmail.com>
141
142 * org.texi (External links): Document the link types file+sys
143 and file+emacs, slightly narrow used page width.
144
1452012-01-03 Eric Schulte <eric.schulte@gmx.com>
146
147 * org.texi (colnames): Note that colnames behavior may differ
148 across languages.
149
1502012-01-03 Bastien Guerry <bzg@gnu.org>
151
152 * org.texi (Weekly/daily agenda, Agenda commands): Fix typos.
153
1542012-01-03 Thomas Dye <dk@poto.westell.com>
155
156 * org.texi: Augmented discussion of babel property
157 inheritance. Put footnote outside sentence ending period.
158
1592012-01-03 Eric Schulte <schulte.eric@gmail.com>
160
161 * org.texi (eval): Documenting the full range of :eval header
162 argument values.
163
1642012-01-03 Eric Schulte <schulte.eric@gmail.com>
165
166 * org.texi (eval): Documentation of the new :eval option.
167
1682012-01-03 Thomas Dye <dk@poto.local>
169
170 * org.texi: Add accumulated properties.
171
1722012-01-03 Thomas Dye <dk@poto.local>
173
174 * org.texi: Documented no spaces in name=assign, another
175 correction to :var table.
176
1772012-01-03 Thomas Dye <dk@poto.local>
178
179 * org.texi: Changed DATA to NAME in Working With Source Code
180 section.
181
1822012-01-03 Tom Dye <tsd@tsdye.com>
183
184 * org.texi: Minor change to :var table.
185
1862012-01-03 Tom Dye <tsd@tsdye.com>
187
188 * org.texi: More changes to :var table (some examples were wrong).
189
1902012-01-03 Tom Dye <tsd@tsdye.com>
191
192 * org.texi: Cleaned up :var table.
193
1942012-01-03 Bastien Guerry <bzg@gnu.org>
195
196 * org.texi (Timestamps, Weekly/daily agenda)
197 (Weekly/daily agenda): Add @cindex for "appointment".
198
1992012-01-03 Eric Schulte <schulte.eric@gmail.com>
200
201 * org.texi (Literal examples): A new link to the template for
202 inserting empty code blocks.
203 (Structure of code blocks): A new link to the template for
204 inserting empty code blocks.
205
2062012-01-03 Rafael Laboissiere <rafael@laboissiere.net> (tiny change)
207
208 * org.texi (External links): Add footnote on how the behavior
209 of the text search in Org files are controled by the variable
210 `org-link-search-must-match-exact-headline'.
211
2122012-01-03 Eric Schulte <schulte.eric@gmail.com>
213
214 * org.texi (Buffer-wide header arguments): Update
215 documentation to reflect removal of #+PROPERTIES.
216
2172012-01-03 Carsten Dominik <carsten.dominik@gmail.com>
218
219 * org.texi (The clock table): Mention that ACHIVED trees
220 contribute to the clock table.
221
2222012-01-03 Carsten Dominik <carsten.dominik@gmail.com> (tiny change)
223
224 * org.texi (Conflicts): Better yasnippet config info.
225
2262012-01-03 Bastien Guerry <bzg@gnu.org> (tiny change)
227
228 * org.texi (Selective export): Explicitely mention the default
229 values for `org-export-select-tags',
230 `org-export-exclude-tags'.
231
2322012-01-03 Tom Dye <tsd@tsdye.com>
233
234 * org.texi: Added a line to specify that header arguments are
235 lowercase.
236
2372012-01-03 Tom Dye <tsd@tsdye.com>
238
239 * org.texi: :var requires default value when declared.
240
2412012-01-03 Bastien Guerry <bzg@gnu.org>
242
243 * org.texi (Handling links): Add a note about the
244 `org-link-frame-setup' option.
245
2462012-01-03 David Maus <dmaus@ictsoc.de>
247
248 * org.texi (Exporting Agenda Views, Extracting agenda
249 information): Fix command line syntax, quote symbol parameter
250 values.
251
2522012-01-03 David Maus <dmaus@ictsoc.de>
253
254 * org.texi (Exporting Agenda Views): Fix command line syntax.
255
2562011-12-28 Paul Eggert <eggert@cs.ucla.edu>
257
258 * gnus.texi (Mail Source Customization, Mail Back End Variables):
259 Use octal notation for file permissions, which are normally
260 thought of in octal.
261 (Mail Back End Variables): Use more-plausible modes in example.
262
2632011-12-20 Alan Mackenzie <acm@muc.de>
264
265 * cc-mode.texi: Update version string 5.31 -> 5.32.
266
2672011-12-06 Juanma Barranquero <lekktu@gmail.com>
268
269 * gnus-faq.texi (FAQ 2-1, FAQ 3-8, FAQ 4-14, FAQ 9-1): Fix typos.
270
2712011-11-24 Glenn Morris <rgm@gnu.org>
272
273 * gnus.texi, smtpmail.texi: Fix case of "GnuTLS".
274
2752011-11-24 Juanma Barranquero <lekktu@gmail.com>
276
277 * makefile.w32-in: Update dependencies.
278
2792011-11-20 Glenn Morris <rgm@gnu.org>
280
281 * gnus.texi (Group Information):
282 Remove gnus-group-fetch-faq, command deleted 2010-09-24.
283
2842011-11-20 Juanma Barranquero <lekktu@gmail.com>
285
286 * gnus-coding.texi (Gnus Maintenance Guide):
287 Rename from "Gnus Maintainance Guide".
288
289 * ede.texi (ede-compilation-program, ede-compiler, ede-linker):
290 * eieio.texi (Customizing):
291 * gnus.texi (Article Washing):
292 * gnus-news.texi:
293 * sem-user.texi (Smart Jump): Fix typos.
294
2952011-11-16 Juanma Barranquero <lekktu@gmail.com>
296
297 * org.texi (Agenda commands, Exporting Agenda Views): Fix typos.
298
2992011-11-15 Juanma Barranquero <lekktu@gmail.com>
300
301 * ede.texi (project-am-texinfo):
302 * gnus.texi (Sending or Not Sending):
303 * org.texi (Template elements): Fix typos.
304
3052011-11-14 Juanma Barranquero <lekktu@gmail.com>
306
307 * ediff.texi (Hooks):
308 * sem-user.texi (Semanticdb Roots): Fix typos.
309
3102011-11-11 Juanma Barranquero <lekktu@gmail.com>
311
312 * semantic.texi (Tag handling): Fix typo.
313
3142011-10-31 Katsumi Yamaoka <yamaoka@jpl.org>
315
316 * gnus.texi (Other Gnus Versions): Remove.
317
3182011-10-28 Alan Mackenzie <acm@muc.de>
319
320 * cc-mode.texi (Indentation Commands): Mention "macros with semicolons".
321 (Other Special Indentations): Add an xref to "Macros with ;".
322 (Customizing Macros): Add stuff about syntax in macros. Add an xref to
323 "Macros with ;".
324 (Macros with ;): New page.
325
326 * cc-mode.texi (Movement Commands): Document `c-defun-tactic'.
327 Document the new handling of nested scopes for movement by defuns.
328
3292011-10-23 Michael Albinus <michael.albinus@gmx.de>
330
331 Sync with Tramp 2.2.3.
332
333 * trampver.texi: Update release number.
334
3352011-10-14 Glenn Morris <rgm@gnu.org>
336
337 * ert.texi (Introduction, How to Run Tests)
338 (Running Tests Interactively, Expected Failures)
339 (Tests and Their Environment, Useful Techniques)
340 (Interactive Debugging, Fixtures and Test Suites):
341 Minor rephrasings.
342 (Running Tests Interactively, The @code{should} Macro): Add xrefs.
343 (Running Tests in Batch Mode): Simplify loading instructions.
344 (Test Selectors): Clarify some selectors.
345 (Expected Failures, Useful Techniques):
346 Make examples fit in 80 columns.
347
3482011-10-13 Jay Belanger <jay.p.belanger@gmail.com>
349
350 * calc.texi (Basic Operations on Units): Discuss temperature
351 conversion (`u t') alongside with other unit conversions ('u c').
352
3532011-10-12 Glenn Morris <rgm@gnu.org>
354
355 * ert.texi: Whitespace trivia to make main menu items line up better.
356
3572011-10-08 Glenn Morris <rgm@gnu.org>
358
359 * Makefile.in: Fix ert rules.
360
3612011-10-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
362
363 * gnus.texi (Gnus Utility Functions): Add more references and
364 explanations (bug#9683).
365
3662011-09-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
367
368 * gnus.texi (Archived Messages): Note the default (bug#9552).
369
3702011-09-21 Bill Wohler <wohler@newt.com>
371
372 Release MH-E manual version 8.3.
373
374 * mh-e.texi (VERSION, EDITION, UPDATED, UPDATE-MONTH): Update for
375 release 8.3.
376 (Preface): Updated support information.
377 (From Bill Wohler): Reset text to original version. As a
378 historical quote, the tense should be correct in the time that it
379 was written.
380
3812011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
382
383 * gnus.texi (Listing Groups): Explain `gnus-group-list-limit'.
384 (Finding the News): Doc clarification.
385 (Terminology): Mention naming.
386
3872011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
388
389 * gnus.texi: Remove mentions of `recent', which are now obsolete.
390 (Interactive): Document `quiet'.
391
3922011-08-15 Suvayu Ali <fatkasuvayu+linux@gmail.com> (tiny change)
393
394 * org.texi (Images in LaTeX export): rewrite.
395
3962011-08-15 Bastien Guerry <bzg@gnu.org>
397
398 * org.texi (Using the mapping API): mention 'region as a possible
399 scope for `org-map-entries'.
400
4012011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
402
403 * org.texi (Visibility cycling): Document `org-copy-visible'.
404
4052011-08-15 Bastien Guerry <bzg@gnu.org>
406
407 * org.texi (Template expansion): order template sequences in the
408 proper order.
409
4102011-08-15 Eric Schulte <schulte.eric@gmail.com>
411
412 * org.texi (eval): Expand discussion of the :eval header argument.
413
4142011-08-15 Bastien Guerry <bzg@gnu.org>
415
416 * org.texi (Languages): Add Lilypond and Awk as supported
417 languages.
418
4192011-08-15 Achim Gratz <stromeko@nexgo.de>
420
421 * org.texi: document that both CLOCK_INTO_DRAWER and
422 LOG_INTO_DRAWER can be used to override the contents of variable
423 org-clock-into-drawer (or if unset, org-log-into-drawer).
424
425 * org.texi: replace @xref->@pxref.
426
4272011-08-15 Eric Schulte <schulte.eric@gmail.com>
428
429 * org.texi (Evaluating code blocks): Documenting the new option
430 for inline call lines.
431
4322011-08-15 Eric Schulte <schulte.eric@gmail.com>
433
434 * org.texi (Results of evaluation): More explicit about the
435 mechanism through which interactive evaluation of code is
436 performed.
437
4382011-08-15 Eric Schulte <schulte.eric@gmail.com>
439
440 * org.texi (noweb-ref): New header argument documentation.
441
4422011-08-15 Eric Schulte <schulte.eric@gmail.com>
443
444 * org.texi (Extracting source code): Documentation of the new
445 org-babel-tangle-named-block-combination variable.
446
4472011-08-15 Eric Schulte <schulte.eric@gmail.com>
448
449 * org.texi (Structure of code blocks): explicitly state that the
450 behavior of multiple blocks of the same name is undefined
451
4522011-08-15 Christian Egli <christian.egli@sbszh.ch>
453
454 * org.texi (TaskJuggler export): Modify the example to reflect the
455 new effort durations.
456
4572011-08-15 David Maus <dmaus@ictsoc.de>
458
459 * org.texi (Images in LaTeX export): Escape curly brackets in
460 LaTeX example.
461
4622011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
463
464 * org.texi (The clock table): Document the :properties and
465 :inherit-props arguments for the clocktable.
466
4672011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
468
469 * org.texi (Tables in LaTeX export): Document specifying placement
470 options for tables.
471
4722011-08-15 Eric Schulte <schulte.eric@gmail.com>
473
474 * org.texi (Evaluating code blocks): More specific documentation
475 about the different types of header arguments.
476
4772011-08-15 Manuel Giraud <manuel.giraud@univ-nantes.fr>
478
479 * org.texi (Sitemap): Document `:sitemap-sans-extension' property.
480
4812011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
482
483 * org.texi (Built-in table editor): Document the table field
484 follow mode.
485
4862011-08-15 Robert P. Goldman <rpgoldman@real-time.com>
487
488 * org.texi (Easy Templates): Document new template.
489
4902011-08-15 Robert P. Goldman <rpgoldman@real-time.com>
491
492 * org.texi (Literal examples): Add a cross-reference from "Literal
493 Examples" to "Easy Templates."
494
4952011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
496
497 * org.texi (The clock table): Add link to match syntax.
498
4992011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
500
501 * org.texi (Agenda commands): Document clock consistency checks.
502
5032011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
504
505 * org.texi (Built-in table editor): Document that \vert represents
506 a vertical bar in a table field.
507
5082011-08-15 Eric Schulte <schulte.eric@gmail.com>
509
510 * org.texi (Literal examples): Link from "Markup" > "Literate
511 Examples" to "Working with Source Code".
512
5132011-08-15 Puneeth Chaganti <punchagan@gmail.com>
514
515 * org.texi (Agenda commands): Doc for function option to bulk
516 action.
517
5182011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
519
520 * org.texi (Template expansion): Document new %<...> template
521 escape.
522
5232011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
524
525 * org.texi (Selective export): Document exclusion of any tasks
526 from export.
527
5282011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
529
530 * org.texi (Selective export): Document how to exclude DONE tasks
531 from export.
532 (Publishing options): Document the properties to be used to turn off
533 export of DONE tasks.
534
5352011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
536
537 * org.texi (The date/time prompt): Document date range protection.
538
5392011-08-15 Eric Schulte <schulte.eric@gmail.com>
540
541 * org.texi (padline): Documentation of the new padline header
542 argument.
543
5442011-08-15 Eric Schulte <schulte.eric@gmail.com>
545
546 * org.texi (var): Adding "[" to list of characters triggering
547 elisp evaluation.
548
5492011-08-15 Eric Schulte <schulte.eric@gmail.com>
550
551 * org.texi (var): Documentation of Emacs Lisp evaluation during
552 variable assignment.
553
5542011-08-15 Eric Schulte <schulte.eric@gmail.com>
555
556 * org.texi (colnames): Reference indexing into variables, and note
557 that colnames are *not* removed before indexing occurs.
558 (rownames): Reference indexing into variables, and note that
559 rownames are *not* removed before indexing occurs.
560
5612011-08-15 Eric Schulte <schulte.eric@gmail.com>
562
563 * org.texi (var): Clarification of indexing into tabular
564 variables.
565
5662011-08-15 Eric Schulte <schulte.eric@gmail.com>
567
568 * org.texi (results): Documentation of the `:results wrap' header
569 argument.
570
5712011-08-15 Bastien Guerry <bzg@gnu.org>
572
573 * org.texi (LaTeX and PDF export): add a note about a limitation
574 of the LaTeX export: the org file has to be properly structured.
575
5762011-08-15 Bastien Guerry <bzg@gnu.org>
577
578 * org.texi (Dynamic blocks, Structure editing): Mention
579 the function `org-narrow-to-block'.
580
5812011-08-15 Eric Schulte <schulte.eric@gmail.com>
582
583 * org.texi (Languages): Updating list of code block supported
584 languages.
585
5862011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
587
588 * org.texi (Special properties): CATEGORY is a special property,
589 but it may also used in the drawer.
590
5912011-08-15 Eric Schulte <schulte.eric@gmail.com>
592
593 * org.texi (mkdirp): Documentation of the :mkdirp header argument.
594
5952011-08-15 Puneeth Chaganti <punchagan@gmail.com>
596
597 * org.texi (Include files): Document :lines.
598
5992011-08-15 Eric Schulte <schulte.eric@gmail.com>
600
601 * org.texi (comments): Documentation of the ":comments noweb" code
602 block header argument.
603
6042011-08-15 Eric Schulte <schulte.eric@gmail.com>
605
606 * org.texi (Conflicts): Changed "yasnippets" to "yasnippet" and
607 added extra whitespace around functions to be consistent with the
608 rest of the section.
609
6102011-08-15 Eric Schulte <schulte.eric@gmail.com>
611
612 * org.texi (Evaluating code blocks): Expanded discussion of
613 #+call: line syntax.
614 (Header arguments in function calls): Expanded discussion of
615 #+call: line syntax.
616
6172011-08-15 Eric Schulte <schulte.eric@gmail.com>
618
619 * org.texi (Evaluating code blocks): More explicit about how to
620 pass variables to #+call lines.
621
6222011-08-15 Eric Schulte <schulte.eric@gmail.com>
623
624 * org.texi (Results of evaluation): Link to the :results header
625 argument list from the "Results of evaluation" section.
626
6272011-08-15 Eric Schulte <schulte.eric@gmail.com>
628
629 * org.texi (Conflicts): Adding additional information about
630 resolving org/yasnippet conflicts.
631
6322011-08-15 David Maus <dmaus@ictsoc.de>
633
634 * org.texi (Publishing options): Document style-include-scripts
635 publishing project property.
636
6372011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
638
639 * org.texi (Sparse trees): Document the next-error /
640 previous-error functionality.
641
6422011-08-15 Tom Dye <tsd@tsdye.com>
643
644 * org.texi (cache): Improved documentation of code block caches.
645
6462011-08-15 Tom Dye <tsd@tsdye.com>
647
648 * org.texi (Code block specific header arguments): Documentation
649 of multi-line header arguments.
650
6512011-08-15 Eric Schulte <schulte.eric@gmail.com>
652
653 * org.texi (Code evaluation security): Add example for using a
654 function.
655
6562011-08-15 Eric Schulte <schulte.eric@gmail.com>
657
658 * org.texi (Tables in LaTeX export): Documentation of new
659 attr_latex options for tables.
660
6612011-08-03 Michael Albinus <michael.albinus@gmx.de>
662
663 * trampver.texi: Update release number.
664
6652011-07-30 Michael Albinus <michael.albinus@gmx.de>
666
667 Sync with Tramp 2.2.2.
668
669 * trampver.texi: Update release number.
670
6712011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
672
673 * flymake.texi (Example -- Configuring a tool called via make):
674 Use /dev/null instead of the Windows "nul" (bug#8715).
675
6762011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
677
678 * widget.texi (Setting Up the Buffer): Remove mention of the
679 global keymap parent, which doesn't seem to be accurate
680 (bug#7045).
681
6822011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
683
684 * org.texi (Special agenda views): Fix double quoting (bug#3509).
685
6862010-07-10 Kevin Ryde <user42@zip.com.au>
687
688 * cl.texi (For Clauses): Add destructuring example processing an
689 alist (bug#6596).
690
12011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org> 6912011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 692
3 * ediff.texi (Major Entry Points): Remove mention of `require', 693 * ediff.texi (Major Entry Points): Remove mention of `require',
@@ -1913,7 +2603,7 @@
19132009-08-25 Michael Albinus <michael.albinus@gmx.de> 26032009-08-25 Michael Albinus <michael.albinus@gmx.de>
1914 2604
1915 * dbus.texi (Bus names): Add optional parameter TIMEOUT to dbus-ping. 2605 * dbus.texi (Bus names): Add optional parameter TIMEOUT to dbus-ping.
1916 Describe autostart behaviour of dbus-ping. 2606 Describe autostart behavior of dbus-ping.
1917 (Synchronous Methods, Asynchronous Methods): Use English numeric format 2607 (Synchronous Methods, Asynchronous Methods): Use English numeric format
1918 for timeout values. 2608 for timeout values.
1919 (Top): Remove footnote saying D-Bus is not enabled by 2609 (Top): Remove footnote saying D-Bus is not enabled by
@@ -2575,7 +3265,7 @@
2575 * org.texi (Activation, Exporting, ASCII export, HTML export) 3265 * org.texi (Activation, Exporting, ASCII export, HTML export)
2576 (HTML Export commands, LaTeX/PDF export commands): 3266 (HTML Export commands, LaTeX/PDF export commands):
2577 Improve documentation about transient-mark-mode. 3267 Improve documentation about transient-mark-mode.
2578 (References): DOcuemtn the use of special names like $LR1 to reference 3268 (References): Document the use of special names like $LR1 to reference
2579 to fields in the last table row. 3269 to fields in the last table row.
2580 3270
25812008-12-19 Juri Linkov <juri@jurta.org> 32712008-12-19 Juri Linkov <juri@jurta.org>
@@ -7562,7 +8252,7 @@
75622003-02-01 Michael Albinus <Michael.Albinus@alcatel.de> 82522003-02-01 Michael Albinus <Michael.Albinus@alcatel.de>
7563 8253
7564 * tramp.texi (Frequently Asked Questions): Explain a workaround if 8254 * tramp.texi (Frequently Asked Questions): Explain a workaround if
7565 another package loads accidently Ange-FTP. 8255 another package loads accidentally Ange-FTP.
7566 8256
75672003-01-24 Michael Albinus <Michael.Albinus@alcatel.de> 82572003-01-24 Michael Albinus <Michael.Albinus@alcatel.de>
7568 8258
@@ -8069,7 +8759,7 @@
8069;; coding: utf-8 8759;; coding: utf-8
8070;; End: 8760;; End:
8071 8761
8072 Copyright (C) 1993-1999, 2001-2011 Free Software Foundation, Inc. 8762 Copyright (C) 1993-1999, 2001-2012 Free Software Foundation, Inc.
8073 8763
8074 This file is part of GNU Emacs. 8764 This file is part of GNU Emacs.
8075 8765
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index 28a949f81e2..6fd0b983b87 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -1,6 +1,6 @@
1#### Makefile for documentation other than the Emacs manual. 1#### Makefile for documentation other than the Emacs manual.
2 2
3# Copyright (C) 1994, 1996-2011 Free Software Foundation, Inc. 3# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc.
4 4
5# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
6 6
@@ -370,12 +370,13 @@ erc.pdf: ${srcdir}/erc.texi
370 $(ENVADD) $(TEXI2PDF) $< 370 $(ENVADD) $(TEXI2PDF) $<
371 371
372ert : $(infodir)/ert 372ert : $(infodir)/ert
373$(infodir)/ert: ert.texi $(infodir) 373$(infodir)/ert: ert.texi
374 cd $(srcdir); $(MAKEINFO) ert.texi 374 $(mkinfodir)
375ert.dvi: ert.texi 375 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
376 $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi 376ert.dvi: ${srcdir}/ert.texi
377ert.pdf: ert.texi 377 $(ENVADD) $(TEXI2DVI) $<
378 $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi 378ert.pdf: ${srcdir}/ert.texi
379 $(ENVADD) $(TEXI2PDF) $<
379 380
380eshell : $(infodir)/eshell 381eshell : $(infodir)/eshell
381$(infodir)/eshell: eshell.texi 382$(infodir)/eshell: eshell.texi
diff --git a/doc/misc/ada-mode.texi b/doc/misc/ada-mode.texi
index 66cdb200111..8d06ae0de22 100644
--- a/doc/misc/ada-mode.texi
+++ b/doc/misc/ada-mode.texi
@@ -3,7 +3,7 @@
3@settitle Ada Mode 3@settitle Ada Mode
4 4
5@copying 5@copying
6Copyright @copyright{} 1999-2011 Free Software Foundation, Inc. 6Copyright @copyright{} 1999-2012 Free Software Foundation, Inc.
7 7
8@quotation 8@quotation
9Permission is granted to copy, distribute and/or modify this document 9Permission is granted to copy, distribute and/or modify this document
@@ -184,7 +184,7 @@ convention, where file names are a simple modification of the Ada
184names, and the extension for specs and bodies are 184names, and the extension for specs and bodies are
185@samp{.ads} and @samp{.adb}, respectively. 185@samp{.ads} and @samp{.adb}, respectively.
186 186
187Ada mode uses the file extentions to allow moving from a package body 187Ada mode uses the file extensions to allow moving from a package body
188to the corresponding spec and back. 188to the corresponding spec and back.
189 189
190Ada mode supports a list of alternative file extensions for specs and bodies. 190Ada mode supports a list of alternative file extensions for specs and bodies.
@@ -209,7 +209,7 @@ whose extension is @file{.ads}, it will take the first available file
209that ends with either @file{.adb}, @file{_b.ada} or 209that ends with either @file{.adb}, @file{_b.ada} or
210@file{.body}. 210@file{.body}.
211 211
212Simililarly, if Ada mode is looking for a spec, it will look for 212Similarly, if Ada mode is looking for a spec, it will look for
213@file{.ads} or @file{_s.ada}. 213@file{.ads} or @file{_s.ada}.
214 214
215If the filename is not derived from the Ada name following the GNAT 215If the filename is not derived from the Ada name following the GNAT
@@ -1357,7 +1357,7 @@ specifies the casing of one word or word fragment. Comments may be
1357included, separated from the word by a space. 1357included, separated from the word by a space.
1358 1358
1359If the word starts with an asterisk (@key{*}), it defines the casing 1359If the word starts with an asterisk (@key{*}), it defines the casing
1360af a word fragemnt (or ``substring''); part of a word between two 1360as a word fragment (or ``substring''); part of a word between two
1361underscores or word boundary. 1361underscores or word boundary.
1362 1362
1363For example: 1363For example:
diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi
index a16da92343e..b6368cf0517 100644
--- a/doc/misc/auth.texi
+++ b/doc/misc/auth.texi
@@ -10,7 +10,7 @@
10@copying 10@copying
11This file describes the Emacs auth-source library. 11This file describes the Emacs auth-source library.
12 12
13Copyright @copyright{} 2008-2011 Free Software Foundation, Inc. 13Copyright @copyright{} 2008-2012 Free Software Foundation, Inc.
14 14
15@quotation 15@quotation
16Permission is granted to copy, distribute and/or modify this document 16Permission is granted to copy, distribute and/or modify this document
@@ -64,13 +64,13 @@ It is a way for multiple applications to share a single configuration
64 64
65@menu 65@menu
66* Overview:: Overview of the auth-source library. 66* Overview:: Overview of the auth-source library.
67* Help for users:: 67* Help for users::
68* Secret Service API:: 68* Secret Service API::
69* Help for developers:: 69* Help for developers::
70* GnuPG and EasyPG Assistant Configuration:: 70* GnuPG and EasyPG Assistant Configuration::
71* Index:: 71* Index::
72* Function Index:: 72* Function Index::
73* Variable Index:: 73* Variable Index::
74@end menu 74@end menu
75@end ifnottex 75@end ifnottex
76 76
@@ -182,7 +182,7 @@ Here's a mixed example using two sources:
182If you don't customize @code{auth-sources}, you'll have to live with 182If you don't customize @code{auth-sources}, you'll have to live with
183the defaults: any host and any port are looked up in the netrc 183the defaults: any host and any port are looked up in the netrc
184file @code{~/.authinfo.gpg}, which is a GnuPG encrypted file 184file @code{~/.authinfo.gpg}, which is a GnuPG encrypted file
185(@pxref{GnuPG and EasyPG Assistant Configuration}). 185(@pxref{GnuPG and EasyPG Assistant Configuration}).
186 186
187If that fails, the unencrypted netrc files @code{~/.authinfo} and 187If that fails, the unencrypted netrc files @code{~/.authinfo} and
188@code{~/.netrc} will be used. 188@code{~/.netrc} will be used.
@@ -281,7 +281,7 @@ for any of the prompts.
281Note that the password needs to be evaluated if it's a function. It's 281Note that the password needs to be evaluated if it's a function. It's
282wrapped in a function to provide some security. 282wrapped in a function to provide some security.
283 283
284Later, after a successful login, @code{nnimal.el} calls the 284Later, after a successful login, @code{nnimap.el} calls the
285@code{:save-function} like so: 285@code{:save-function} like so:
286 286
287@example 287@example
@@ -340,7 +340,7 @@ If you are using earlier versions of Emacs, you will need:
340@end lisp 340@end lisp
341 341
342If you want your GnuPG passwords to be cached, set up @code{gpg-agent} 342If you want your GnuPG passwords to be cached, set up @code{gpg-agent}
343or EasyPG Assitant 343or EasyPG Assistant
344(@pxref{Caching Passphrases, , Caching Passphrases, epa}). 344(@pxref{Caching Passphrases, , Caching Passphrases, epa}).
345 345
346To quick start, here are some questions: 346To quick start, here are some questions:
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi
index 2e66c78a3cb..9d7a51233ff 100644
--- a/doc/misc/autotype.texi
+++ b/doc/misc/autotype.texi
@@ -10,7 +10,7 @@
10@c @cindex autotypist 10@c @cindex autotypist
11 11
12@copying 12@copying
13Copyright @copyright{} 1994-1995, 1999, 2001-2011 Free Software Foundation, Inc. 13Copyright @copyright{} 1994-1995, 1999, 2001-2012 Free Software Foundation, Inc.
14 14
15@quotation 15@quotation
16Permission is granted to copy, distribute and/or modify this document 16Permission is granted to copy, distribute and/or modify this document
@@ -156,7 +156,7 @@ the point is normally left after that skeleton is inserted (@pxref{Using
156Skeletons}). The point (@pxref{(emacs)Point}) is left at the next 156Skeletons}). The point (@pxref{(emacs)Point}) is left at the next
157interesting spot in the skeleton instead. 157interesting spot in the skeleton instead.
158 158
159 A negative prefix means to do something similar with that many precedingly 159 A negative prefix means to do something similar with that many previously
160marked interregions (@pxref{(emacs)Mark}). In the simplest case, if you type 160marked interregions (@pxref{(emacs)Mark}). In the simplest case, if you type
161@kbd{M--} just before issuing the skeleton command, that will wrap the 161@kbd{M--} just before issuing the skeleton command, that will wrap the
162skeleton around the current region, just like a positive argument would have 162skeleton around the current region, just like a positive argument would have
@@ -419,7 +419,7 @@ inserting something. When this is @code{nil}, inserting is only done with
419@kbd{M-x auto-insert}. When this is @code{function}, you are queried 419@kbd{M-x auto-insert}. When this is @code{function}, you are queried
420whenever @code{auto-insert} is called as a function, such as when Emacs 420whenever @code{auto-insert} is called as a function, such as when Emacs
421visits an empty file and you have set the above-mentioned hook. Otherwise 421visits an empty file and you have set the above-mentioned hook. Otherwise
422you are alway queried. 422you are always queried.
423 423
424@vindex auto-insert-prompt 424@vindex auto-insert-prompt
425 When querying, the variable @code{auto-insert-prompt}'s value is used as a 425 When querying, the variable @code{auto-insert-prompt}'s value is used as a
@@ -510,7 +510,7 @@ inserting or updating the magic number. When this is @code{nil} updating
510is only done with @kbd{M-x executable-set-magic}. When this is 510is only done with @kbd{M-x executable-set-magic}. When this is
511@code{function} you are queried whenever @code{executable-set-magic} is 511@code{function} you are queried whenever @code{executable-set-magic} is
512called as a function, such as when Emacs puts a buffer in Shell script 512called as a function, such as when Emacs puts a buffer in Shell script
513mode. Otherwise you are alway queried. 513mode. Otherwise you are always queried.
514 514
515@findex executable-self-display 515@findex executable-self-display
516 @kbd{M-x executable-self-display} adds a magic number to the buffer, which 516 @kbd{M-x executable-self-display} adds a magic number to the buffer, which
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index f732eff5690..48252ceb327 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -90,11 +90,11 @@
90This file documents Calc, the GNU Emacs calculator. 90This file documents Calc, the GNU Emacs calculator.
91@end ifinfo 91@end ifinfo
92@ifnotinfo 92@ifnotinfo
93This file documents Calc, the GNU Emacs calculator, included with 93This file documents Calc, the GNU Emacs calculator, included with
94GNU Emacs @value{EMACSVER}. 94GNU Emacs @value{EMACSVER}.
95@end ifnotinfo 95@end ifnotinfo
96 96
97Copyright @copyright{} 1990-1991, 2001-2011 Free Software Foundation, Inc. 97Copyright @copyright{} 1990-1991, 2001-2012 Free Software Foundation, Inc.
98 98
99@quotation 99@quotation
100Permission is granted to copy, distribute and/or modify this document 100Permission is granted to copy, distribute and/or modify this document
@@ -324,7 +324,7 @@ need to know.
324@c @cindex Marginal notes 324@c @cindex Marginal notes
325Every Calc keyboard command is listed in the Calc Summary, and also 325Every Calc keyboard command is listed in the Calc Summary, and also
326in the Key Index. Algebraic functions, @kbd{M-x} commands, and 326in the Key Index. Algebraic functions, @kbd{M-x} commands, and
327variables also have their own indices. 327variables also have their own indices.
328@c @texline Each 328@c @texline Each
329@c @infoline In the printed manual, each 329@c @infoline In the printed manual, each
330@c paragraph that is referenced in the Key or Function Index is marked 330@c paragraph that is referenced in the Key or Function Index is marked
@@ -338,7 +338,7 @@ the @kbd{h i} key sequence. Outside of the Calc window, you can press
338command @kbd{C-x * t} will jump to the Tutorial and start Calc if 338command @kbd{C-x * t} will jump to the Tutorial and start Calc if
339necessary. Pressing @kbd{h s} or @kbd{C-x * s} will take you directly 339necessary. Pressing @kbd{h s} or @kbd{C-x * s} will take you directly
340to the Calc Summary. Within Calc, you can also go to the part of the 340to the Calc Summary. Within Calc, you can also go to the part of the
341manual describing any Calc key, function, or variable using 341manual describing any Calc key, function, or variable using
342@w{@kbd{h k}}, @kbd{h f}, or @kbd{h v}, respectively. @xref{Help Commands}. 342@w{@kbd{h k}}, @kbd{h f}, or @kbd{h v}, respectively. @xref{Help Commands}.
343 343
344@ifnottex 344@ifnottex
@@ -437,12 +437,12 @@ Delete, and Space keys.
437then the command to operate on the numbers. 437then the command to operate on the numbers.
438 438
439@noindent 439@noindent
440Type @kbd{2 @key{RET} 3 + Q} to compute 440Type @kbd{2 @key{RET} 3 + Q} to compute
441@texline @math{\sqrt{2+3} = 2.2360679775}. 441@texline @math{\sqrt{2+3} = 2.2360679775}.
442@infoline the square root of 2+3, which is 2.2360679775. 442@infoline the square root of 2+3, which is 2.2360679775.
443 443
444@noindent 444@noindent
445Type @kbd{P 2 ^} to compute 445Type @kbd{P 2 ^} to compute
446@texline @math{\pi^2 = 9.86960440109}. 446@texline @math{\pi^2 = 9.86960440109}.
447@infoline the value of `pi' squared, 9.86960440109. 447@infoline the value of `pi' squared, 9.86960440109.
448 448
@@ -461,14 +461,14 @@ conventional ``algebraic'' notation. To enter an algebraic formula,
461use the apostrophe key. 461use the apostrophe key.
462 462
463@noindent 463@noindent
464Type @kbd{' sqrt(2+3) @key{RET}} to compute 464Type @kbd{' sqrt(2+3) @key{RET}} to compute
465@texline @math{\sqrt{2+3}}. 465@texline @math{\sqrt{2+3}}.
466@infoline the square root of 2+3. 466@infoline the square root of 2+3.
467 467
468@noindent 468@noindent
469Type @kbd{' pi^2 @key{RET}} to enter 469Type @kbd{' pi^2 @key{RET}} to enter
470@texline @math{\pi^2}. 470@texline @math{\pi^2}.
471@infoline `pi' squared. 471@infoline `pi' squared.
472To evaluate this symbolic formula as a number, type @kbd{=}. 472To evaluate this symbolic formula as a number, type @kbd{=}.
473 473
474@noindent 474@noindent
@@ -526,10 +526,10 @@ the upper-leftmost @samp{1} and set the mark, then move to just after
526the lower-right @samp{8} and press @kbd{C-x * r}. 526the lower-right @samp{8} and press @kbd{C-x * r}.
527 527
528@noindent 528@noindent
529Type @kbd{v t} to transpose this 529Type @kbd{v t} to transpose this
530@texline @math{3\times2} 530@texline @math{3\times2}
531@infoline 3x2 531@infoline 3x2
532matrix into a 532matrix into a
533@texline @math{2\times3} 533@texline @math{2\times3}
534@infoline 2x3 534@infoline 2x3
535matrix. Type @w{@kbd{v u}} to unpack the rows into two separate 535matrix. Type @w{@kbd{v u}} to unpack the rows into two separate
@@ -605,7 +605,7 @@ there are Quick mode, Keypad mode, and Embedded mode.
605 605
606@noindent 606@noindent
607On most systems, you can type @kbd{C-x *} to start the Calculator. 607On most systems, you can type @kbd{C-x *} to start the Calculator.
608The key sequence @kbd{C-x *} is bound to the command @code{calc-dispatch}, 608The key sequence @kbd{C-x *} is bound to the command @code{calc-dispatch},
609which can be rebound if convenient (@pxref{Customizing Calc}). 609which can be rebound if convenient (@pxref{Customizing Calc}).
610 610
611When you press @kbd{C-x *}, Emacs waits for you to press a second key to 611When you press @kbd{C-x *}, Emacs waits for you to press a second key to
@@ -1154,9 +1154,9 @@ its initial state: Empty stack, and initial mode settings.
1154@noindent 1154@noindent
1155Calc was originally started as a two-week project to occupy a lull 1155Calc was originally started as a two-week project to occupy a lull
1156in the author's schedule. Basically, a friend asked if I remembered 1156in the author's schedule. Basically, a friend asked if I remembered
1157the value of 1157the value of
1158@texline @math{2^{32}}. 1158@texline @math{2^{32}}.
1159@infoline @expr{2^32}. 1159@infoline @expr{2^32}.
1160I didn't offhand, but I said, ``that's easy, just call up an 1160I didn't offhand, but I said, ``that's easy, just call up an
1161@code{xcalc}.'' @code{Xcalc} duly reported that the answer to our 1161@code{xcalc}.'' @code{Xcalc} duly reported that the answer to our
1162question was @samp{4.294967e+09}---with no way to see the full ten 1162question was @samp{4.294967e+09}---with no way to see the full ten
@@ -1213,7 +1213,7 @@ algebra system for microcomputers.
1213Many people have contributed to Calc by reporting bugs and suggesting 1213Many people have contributed to Calc by reporting bugs and suggesting
1214features, large and small. A few deserve special mention: Tim Peters, 1214features, large and small. A few deserve special mention: Tim Peters,
1215who helped develop the ideas that led to the selection commands, rewrite 1215who helped develop the ideas that led to the selection commands, rewrite
1216rules, and many other algebra features; 1216rules, and many other algebra features;
1217@texline Fran\c{c}ois 1217@texline Fran\c{c}ois
1218@infoline Francois 1218@infoline Francois
1219Pinard, who contributed an early prototype of the Calc Summary appendix 1219Pinard, who contributed an early prototype of the Calc Summary appendix
@@ -1226,7 +1226,7 @@ Randal Schwartz, who suggested the @code{calc-eval} function; Juha
1226Sarlin, who first worked out how to split Calc into quickly-loading 1226Sarlin, who first worked out how to split Calc into quickly-loading
1227parts; Bob Weiner, who helped immensely with the Lucid Emacs port; and 1227parts; Bob Weiner, who helped immensely with the Lucid Emacs port; and
1228Robert J. Chassell, who suggested the Calc Tutorial and exercises as 1228Robert J. Chassell, who suggested the Calc Tutorial and exercises as
1229well as many other things. 1229well as many other things.
1230 1230
1231@cindex Bibliography 1231@cindex Bibliography
1232@cindex Knuth, Art of Computer Programming 1232@cindex Knuth, Art of Computer Programming
@@ -1472,9 +1472,9 @@ Here's the first exercise: What will the keystrokes @kbd{1 @key{RET} 2
1472multiplication.) Figure it out by hand, then try it with Calc to see 1472multiplication.) Figure it out by hand, then try it with Calc to see
1473if you're right. @xref{RPN Answer 1, 1}. (@bullet{}) 1473if you're right. @xref{RPN Answer 1, 1}. (@bullet{})
1474 1474
1475(@bullet{}) @strong{Exercise 2.} Compute 1475(@bullet{}) @strong{Exercise 2.} Compute
1476@texline @math{(2\times4) + (7\times9.4) + {5\over4}} 1476@texline @math{(2\times4) + (7\times9.4) + {5\over4}}
1477@infoline @expr{2*4 + 7*9.5 + 5/4} 1477@infoline @expr{2*4 + 7*9.5 + 5/4}
1478using the stack. @xref{RPN Answer 2, 2}. (@bullet{}) 1478using the stack. @xref{RPN Answer 2, 2}. (@bullet{})
1479 1479
1480The @key{DEL} key is called Backspace on some keyboards. It is 1480The @key{DEL} key is called Backspace on some keyboards. It is
@@ -1889,7 +1889,7 @@ intermediate results of a calculation as you go along. You can
1889accomplish this in Calc by performing your calculation as a series 1889accomplish this in Calc by performing your calculation as a series
1890of algebraic entries, using the @kbd{$} sign to tie them together. 1890of algebraic entries, using the @kbd{$} sign to tie them together.
1891In an algebraic formula, @kbd{$} represents the number on the top 1891In an algebraic formula, @kbd{$} represents the number on the top
1892of the stack. Here, we perform the calculation 1892of the stack. Here, we perform the calculation
1893@texline @math{\sqrt{2\times4+1}}, 1893@texline @math{\sqrt{2\times4+1}},
1894@infoline @expr{sqrt(2*4+1)}, 1894@infoline @expr{sqrt(2*4+1)},
1895which on a traditional calculator would be done by pressing 1895which on a traditional calculator would be done by pressing
@@ -2149,7 +2149,7 @@ key. If you type a prefix key by accident, you can press @kbd{C-g}
2149to cancel it. (In fact, you can press @kbd{C-g} to cancel almost 2149to cancel it. (In fact, you can press @kbd{C-g} to cancel almost
2150anything in Emacs.) To get help on a prefix key, press that key 2150anything in Emacs.) To get help on a prefix key, press that key
2151followed by @kbd{?}. Some prefixes have several lines of help, 2151followed by @kbd{?}. Some prefixes have several lines of help,
2152so you need to press @kbd{?} repeatedly to see them all. 2152so you need to press @kbd{?} repeatedly to see them all.
2153You can also type @kbd{h h} to see all the help at once. 2153You can also type @kbd{h h} to see all the help at once.
2154 2154
2155Try pressing @kbd{t ?} now. You will see a line of the form, 2155Try pressing @kbd{t ?} now. You will see a line of the form,
@@ -2550,13 +2550,13 @@ angle is measured in degrees. For example,
2550 2550
2551@noindent 2551@noindent
2552The shift-@kbd{S} command computes the sine of an angle. The sine 2552The shift-@kbd{S} command computes the sine of an angle. The sine
2553of 45 degrees is 2553of 45 degrees is
2554@texline @math{\sqrt{2}/2}; 2554@texline @math{\sqrt{2}/2};
2555@infoline @expr{sqrt(2)/2}; 2555@infoline @expr{sqrt(2)/2};
2556squaring this yields @expr{2/4 = 0.5}. However, there has been a slight 2556squaring this yields @expr{2/4 = 0.5}. However, there has been a slight
2557roundoff error because the representation of 2557roundoff error because the representation of
2558@texline @math{\sqrt{2}/2} 2558@texline @math{\sqrt{2}/2}
2559@infoline @expr{sqrt(2)/2} 2559@infoline @expr{sqrt(2)/2}
2560wasn't exact. The @kbd{c 1} command is a handy way to clean up numbers 2560wasn't exact. The @kbd{c 1} command is a handy way to clean up numbers
2561in this case; it temporarily reduces the precision by one digit while it 2561in this case; it temporarily reduces the precision by one digit while it
2562re-rounds the number on the top of the stack. 2562re-rounds the number on the top of the stack.
@@ -2595,9 +2595,9 @@ either radians or degrees, depending on the current angular mode.
2595@end smallexample 2595@end smallexample
2596 2596
2597@noindent 2597@noindent
2598Here we compute the Inverse Sine of 2598Here we compute the Inverse Sine of
2599@texline @math{\sqrt{0.5}}, 2599@texline @math{\sqrt{0.5}},
2600@infoline @expr{sqrt(0.5)}, 2600@infoline @expr{sqrt(0.5)},
2601first in radians, then in degrees. 2601first in radians, then in degrees.
2602 2602
2603Use @kbd{c d} and @kbd{c r} to convert a number from radians to degrees 2603Use @kbd{c d} and @kbd{c r} to convert a number from radians to degrees
@@ -2783,9 +2783,9 @@ logarithm). These can be modified by the @kbd{I} (inverse) and
2783@kbd{H} (hyperbolic) prefix keys. 2783@kbd{H} (hyperbolic) prefix keys.
2784 2784
2785Let's compute the sine and cosine of an angle, and verify the 2785Let's compute the sine and cosine of an angle, and verify the
2786identity 2786identity
2787@texline @math{\sin^2x + \cos^2x = 1}. 2787@texline @math{\sin^2x + \cos^2x = 1}.
2788@infoline @expr{sin(x)^2 + cos(x)^2 = 1}. 2788@infoline @expr{sin(x)^2 + cos(x)^2 = 1}.
2789We'll arbitrarily pick @mathit{-64} degrees as a good value for @expr{x}. 2789We'll arbitrarily pick @mathit{-64} degrees as a good value for @expr{x}.
2790With the angular mode set to degrees (type @w{@kbd{m d}}), do: 2790With the angular mode set to degrees (type @w{@kbd{m d}}), do:
2791 2791
@@ -2806,7 +2806,7 @@ You can of course do these calculations to any precision you like.)
2806Remember, @kbd{f h} is the @code{calc-hypot}, or square-root of sum 2806Remember, @kbd{f h} is the @code{calc-hypot}, or square-root of sum
2807of squares, command. 2807of squares, command.
2808 2808
2809Another identity is 2809Another identity is
2810@texline @math{\displaystyle\tan x = {\sin x \over \cos x}}. 2810@texline @math{\displaystyle\tan x = {\sin x \over \cos x}}.
2811@infoline @expr{tan(x) = sin(x) / cos(x)}. 2811@infoline @expr{tan(x) = sin(x) / cos(x)}.
2812@smallexample 2812@smallexample
@@ -2871,7 +2871,7 @@ the top two stack elements right after the @kbd{U U}, then a pair of
2871A similar identity is supposed to hold for hyperbolic sines and cosines, 2871A similar identity is supposed to hold for hyperbolic sines and cosines,
2872except that it is the @emph{difference} 2872except that it is the @emph{difference}
2873@texline @math{\cosh^2x - \sinh^2x} 2873@texline @math{\cosh^2x - \sinh^2x}
2874@infoline @expr{cosh(x)^2 - sinh(x)^2} 2874@infoline @expr{cosh(x)^2 - sinh(x)^2}
2875that always equals one. Let's try to verify this identity. 2875that always equals one. Let's try to verify this identity.
2876 2876
2877@smallexample 2877@smallexample
@@ -2993,7 +2993,7 @@ factorial function defined in terms of Euler's Gamma function
2993@end smallexample 2993@end smallexample
2994 2994
2995@noindent 2995@noindent
2996Here we verify the identity 2996Here we verify the identity
2997@texline @math{n! = \Gamma(n+1)}. 2997@texline @math{n! = \Gamma(n+1)}.
2998@infoline @expr{@var{n}!@: = gamma(@var{n}+1)}. 2998@infoline @expr{@var{n}!@: = gamma(@var{n}+1)}.
2999 2999
@@ -3283,11 +3283,11 @@ rows in the matrix is different from the number of elements in the
3283vector. 3283vector.
3284 3284
3285(@bullet{}) @strong{Exercise 1.} Use @samp{*} to sum along the rows 3285(@bullet{}) @strong{Exercise 1.} Use @samp{*} to sum along the rows
3286of the above 3286of the above
3287@texline @math{2\times3} 3287@texline @math{2\times3}
3288@infoline 2x3 3288@infoline 2x3
3289matrix to get @expr{[6, 15]}. Now use @samp{*} to sum along the columns 3289matrix to get @expr{[6, 15]}. Now use @samp{*} to sum along the columns
3290to get @expr{[5, 7, 9]}. 3290to get @expr{[5, 7, 9]}.
3291@xref{Matrix Answer 1, 1}. (@bullet{}) 3291@xref{Matrix Answer 1, 1}. (@bullet{})
3292 3292
3293@cindex Identity matrix 3293@cindex Identity matrix
@@ -3432,7 +3432,7 @@ the matrix and vector. If we multiplied in the other order, Calc would
3432assume the vector was a row vector in order to make the dimensions 3432assume the vector was a row vector in order to make the dimensions
3433come out right, and the answer would be incorrect. If you 3433come out right, and the answer would be incorrect. If you
3434don't feel safe letting Calc take either interpretation of your 3434don't feel safe letting Calc take either interpretation of your
3435vectors, use explicit 3435vectors, use explicit
3436@texline @math{N\times1} 3436@texline @math{N\times1}
3437@infoline Nx1 3437@infoline Nx1
3438or 3438or
@@ -3482,9 +3482,9 @@ on the left by the transpose of @expr{A}:
3482@tex 3482@tex
3483$A^T A \, X = A^T B$, where $A^T$ is the transpose \samp{trn(A)}. 3483$A^T A \, X = A^T B$, where $A^T$ is the transpose \samp{trn(A)}.
3484@end tex 3484@end tex
3485Now 3485Now
3486@texline @math{A^T A} 3486@texline @math{A^T A}
3487@infoline @expr{trn(A)*A} 3487@infoline @expr{trn(A)*A}
3488is a square matrix so a solution is possible. It turns out that the 3488is a square matrix so a solution is possible. It turns out that the
3489@expr{X} vector you compute in this way will be a ``least-squares'' 3489@expr{X} vector you compute in this way will be a ``least-squares''
3490solution, which can be regarded as the ``closest'' solution to the set 3490solution, which can be regarded as the ``closest'' solution to the set
@@ -3577,9 +3577,9 @@ other a plain number.) In the final step, we take the square root
3577of each element. 3577of each element.
3578 3578
3579(@bullet{}) @strong{Exercise 1.} Compute a vector of powers of two 3579(@bullet{}) @strong{Exercise 1.} Compute a vector of powers of two
3580from 3580from
3581@texline @math{2^{-4}} 3581@texline @math{2^{-4}}
3582@infoline @expr{2^-4} 3582@infoline @expr{2^-4}
3583to @expr{2^4}. @xref{List Answer 1, 1}. (@bullet{}) 3583to @expr{2^4}. @xref{List Answer 1, 1}. (@bullet{})
3584 3584
3585You can also @dfn{reduce} a binary operator across a vector. 3585You can also @dfn{reduce} a binary operator across a vector.
@@ -3780,9 +3780,9 @@ $$ m = {N \sum x y - \sum x \sum y \over
3780@end tex 3780@end tex
3781 3781
3782@noindent 3782@noindent
3783where 3783where
3784@texline @math{\sum x} 3784@texline @math{\sum x}
3785@infoline @expr{sum(x)} 3785@infoline @expr{sum(x)}
3786represents the sum of all the values of @expr{x}. While there is an 3786represents the sum of all the values of @expr{x}. While there is an
3787actual @code{sum} function in Calc, it's easier to sum a vector using a 3787actual @code{sum} function in Calc, it's easier to sum a vector using a
3788simple reduction. First, let's compute the four different sums that 3788simple reduction. First, let's compute the four different sums that
@@ -3883,9 +3883,9 @@ $$ b = {\sum y - m \sum x \over N} $$
3883@end group 3883@end group
3884@end smallexample 3884@end smallexample
3885 3885
3886Let's ``plot'' this straight line approximation, 3886Let's ``plot'' this straight line approximation,
3887@texline @math{y \approx m x + b}, 3887@texline @math{y \approx m x + b},
3888@infoline @expr{m x + b}, 3888@infoline @expr{m x + b},
3889and compare it with the original data. 3889and compare it with the original data.
3890 3890
3891@smallexample 3891@smallexample
@@ -3959,7 +3959,7 @@ Next, let's add the line we got from our least-squares fit.
3959(If you are reading this tutorial on-line while running Calc, typing 3959(If you are reading this tutorial on-line while running Calc, typing
3960@kbd{g a} may cause the tutorial to disappear from its window and be 3960@kbd{g a} may cause the tutorial to disappear from its window and be
3961replaced by a buffer named @samp{*Gnuplot Commands*}. The tutorial 3961replaced by a buffer named @samp{*Gnuplot Commands*}. The tutorial
3962will reappear when you terminate GNUPLOT by typing @kbd{g q}.) 3962will reappear when you terminate GNUPLOT by typing @kbd{g q}.)
3963@end ifinfo 3963@end ifinfo
3964 3964
3965@smallexample 3965@smallexample
@@ -4138,7 +4138,7 @@ command to enable multi-line display of vectors.)
4138@c [fix-ref Numerical Solutions] 4138@c [fix-ref Numerical Solutions]
4139(@bullet{}) @strong{Exercise 8.} Compute a list of values of Bessel's 4139(@bullet{}) @strong{Exercise 8.} Compute a list of values of Bessel's
4140@texline @math{J_1(x)} 4140@texline @math{J_1(x)}
4141@infoline @expr{J1} 4141@infoline @expr{J1}
4142function @samp{besJ(1,x)} for @expr{x} from 0 to 5 in steps of 0.25. 4142function @samp{besJ(1,x)} for @expr{x} from 0 to 5 in steps of 0.25.
4143Find the value of @expr{x} (from among the above set of values) for 4143Find the value of @expr{x} (from among the above set of values) for
4144which @samp{besJ(1,x)} is a maximum. Use an ``automatic'' method, 4144which @samp{besJ(1,x)} is a maximum. Use an ``automatic'' method,
@@ -4150,7 +4150,7 @@ of thing automatically; @pxref{Numerical Solutions}.)
4150@cindex Digits, vectors of 4150@cindex Digits, vectors of
4151(@bullet{}) @strong{Exercise 9.} You are given an integer in the range 4151(@bullet{}) @strong{Exercise 9.} You are given an integer in the range
4152@texline @math{0 \le N < 10^m} 4152@texline @math{0 \le N < 10^m}
4153@infoline @expr{0 <= N < 10^m} 4153@infoline @expr{0 <= N < 10^m}
4154for @expr{m=12} (i.e., an integer of less than 4154for @expr{m=12} (i.e., an integer of less than
4155twelve digits). Convert this integer into a vector of @expr{m} 4155twelve digits). Convert this integer into a vector of @expr{m}
4156digits, each in the range from 0 to 9. In vector-of-digits notation, 4156digits, each in the range from 0 to 9. In vector-of-digits notation,
@@ -4164,12 +4164,12 @@ to try is 25129925999. @xref{List Answer 9, 9}. (@bullet{})
4164happened? How would you do this test? @xref{List Answer 10, 10}. (@bullet{}) 4164happened? How would you do this test? @xref{List Answer 10, 10}. (@bullet{})
4165 4165
4166(@bullet{}) @strong{Exercise 11.} The area of a circle of radius one 4166(@bullet{}) @strong{Exercise 11.} The area of a circle of radius one
4167is @cpi{}. The area of the 4167is @cpi{}. The area of the
4168@texline @math{2\times2} 4168@texline @math{2\times2}
4169@infoline 2x2 4169@infoline 2x2
4170square that encloses that circle is 4. So if we throw @var{n} darts at 4170square that encloses that circle is 4. So if we throw @var{n} darts at
4171random points in the square, about @cpiover{4} of them will land inside 4171random points in the square, about @cpiover{4} of them will land inside
4172the circle. This gives us an entertaining way to estimate the value of 4172the circle. This gives us an entertaining way to estimate the value of
4173@cpi{}. The @w{@kbd{k r}} 4173@cpi{}. The @w{@kbd{k r}}
4174command picks a random number between zero and the value on the stack. 4174command picks a random number between zero and the value on the stack.
4175We could get a random floating-point number between @mathit{-1} and 1 by typing 4175We could get a random floating-point number between @mathit{-1} and 1 by typing
@@ -4183,12 +4183,12 @@ points lie inside the unit circle. Hint: Use the @kbd{v b} command.
4183another way to calculate @cpi{}. Say you have an infinite field 4183another way to calculate @cpi{}. Say you have an infinite field
4184of vertical lines with a spacing of one inch. Toss a one-inch matchstick 4184of vertical lines with a spacing of one inch. Toss a one-inch matchstick
4185onto the field. The probability that the matchstick will land crossing 4185onto the field. The probability that the matchstick will land crossing
4186a line turns out to be 4186a line turns out to be
4187@texline @math{2/\pi}. 4187@texline @math{2/\pi}.
4188@infoline @expr{2/pi}. 4188@infoline @expr{2/pi}.
4189Toss 100 matchsticks to estimate @cpi{}. (If you want still more fun, 4189Toss 100 matchsticks to estimate @cpi{}. (If you want still more fun,
4190the probability that the GCD (@w{@kbd{k g}}) of two large integers is 4190the probability that the GCD (@w{@kbd{k g}}) of two large integers is
4191one turns out to be 4191one turns out to be
4192@texline @math{6/\pi^2}. 4192@texline @math{6/\pi^2}.
4193@infoline @expr{6/pi^2}. 4193@infoline @expr{6/pi^2}.
4194That provides yet another way to estimate @cpi{}.) 4194That provides yet another way to estimate @cpi{}.)
@@ -4488,7 +4488,7 @@ a 60% chance that the result is correct within 0.59 degrees.
4488@cindex Torus, volume of 4488@cindex Torus, volume of
4489(@bullet{}) @strong{Exercise 7.} The volume of a torus (a donut shape) is 4489(@bullet{}) @strong{Exercise 7.} The volume of a torus (a donut shape) is
4490@texline @math{2 \pi^2 R r^2} 4490@texline @math{2 \pi^2 R r^2}
4491@infoline @w{@expr{2 pi^2 R r^2}} 4491@infoline @w{@expr{2 pi^2 R r^2}}
4492where @expr{R} is the radius of the circle that 4492where @expr{R} is the radius of the circle that
4493defines the center of the tube and @expr{r} is the radius of the tube 4493defines the center of the tube and @expr{r} is the radius of the tube
4494itself. Suppose @expr{R} is 20 cm and @expr{r} is 4 cm, each known to 4494itself. Suppose @expr{R} is 20 cm and @expr{r} is 4 cm, each known to
@@ -4569,7 +4569,7 @@ In this last step, Calc has divided by 5 modulo 24; i.e., it has found a
4569new number which, when multiplied by 5 modulo 24, produces the original 4569new number which, when multiplied by 5 modulo 24, produces the original
4570number, 21. If @var{m} is prime and the divisor is not a multiple of 4570number, 21. If @var{m} is prime and the divisor is not a multiple of
4571@var{m}, it is always possible to find such a number. For non-prime 4571@var{m}, it is always possible to find such a number. For non-prime
4572@var{m} like 24, it is only sometimes possible. 4572@var{m} like 24, it is only sometimes possible.
4573 4573
4574@smallexample 4574@smallexample
4575@group 4575@group
@@ -4587,7 +4587,7 @@ that arises in the second one.
4587 4587
4588@cindex Fermat, primality test of 4588@cindex Fermat, primality test of
4589(@bullet{}) @strong{Exercise 10.} A theorem of Pierre de Fermat 4589(@bullet{}) @strong{Exercise 10.} A theorem of Pierre de Fermat
4590says that 4590says that
4591@texline @w{@math{x^{n-1} \bmod n = 1}} 4591@texline @w{@math{x^{n-1} \bmod n = 1}}
4592@infoline @expr{x^(n-1) mod n = 1} 4592@infoline @expr{x^(n-1) mod n = 1}
4593if @expr{n} is a prime number and @expr{x} is an integer less than 4593if @expr{n} is a prime number and @expr{x} is an integer less than
@@ -4615,9 +4615,9 @@ of day on the stack as an HMS/modulo form.
4615This calculation tells me it is six hours and 22 minutes until midnight. 4615This calculation tells me it is six hours and 22 minutes until midnight.
4616 4616
4617(@bullet{}) @strong{Exercise 11.} A rule of thumb is that one year 4617(@bullet{}) @strong{Exercise 11.} A rule of thumb is that one year
4618is about 4618is about
4619@texline @math{\pi \times 10^7} 4619@texline @math{\pi \times 10^7}
4620@infoline @w{@expr{pi * 10^7}} 4620@infoline @w{@expr{pi * 10^7}}
4621seconds. What time will it be that many seconds from right now? 4621seconds. What time will it be that many seconds from right now?
4622@xref{Types Answer 11, 11}. (@bullet{}) 4622@xref{Types Answer 11, 11}. (@bullet{})
4623 4623
@@ -5093,18 +5093,18 @@ One way to do it is again with vector mapping and reduction:
5093@end smallexample 5093@end smallexample
5094 5094
5095(@bullet{}) @strong{Exercise 3.} Find the integral from 1 to @expr{y} 5095(@bullet{}) @strong{Exercise 3.} Find the integral from 1 to @expr{y}
5096of 5096of
5097@texline @math{x \sin \pi x} 5097@texline @math{x \sin \pi x}
5098@infoline @w{@expr{x sin(pi x)}} 5098@infoline @w{@expr{x sin(pi x)}}
5099(where the sine is calculated in radians). Find the values of the 5099(where the sine is calculated in radians). Find the values of the
5100integral for integers @expr{y} from 1 to 5. @xref{Algebra Answer 3, 5100integral for integers @expr{y} from 1 to 5. @xref{Algebra Answer 3,
51013}. (@bullet{}) 51013}. (@bullet{})
5102 5102
5103Calc's integrator can do many simple integrals symbolically, but many 5103Calc's integrator can do many simple integrals symbolically, but many
5104others are beyond its capabilities. Suppose we wish to find the area 5104others are beyond its capabilities. Suppose we wish to find the area
5105under the curve 5105under the curve
5106@texline @math{\sin x \ln x} 5106@texline @math{\sin x \ln x}
5107@infoline @expr{sin(x) ln(x)} 5107@infoline @expr{sin(x) ln(x)}
5108over the same range of @expr{x}. If you entered this formula and typed 5108over the same range of @expr{x}. If you entered this formula and typed
5109@kbd{a i x @key{RET}} (don't bother to try this), Calc would work for a 5109@kbd{a i x @key{RET}} (don't bother to try this), Calc would work for a
5110long time but would be unable to find a solution. In fact, there is no 5110long time but would be unable to find a solution. In fact, there is no
@@ -5242,10 +5242,10 @@ $$ h (f(a) + f(a+h) + f(a+2h) + f(a+3h) + \cdots
5242\afterdisplay 5242\afterdisplay
5243@end tex 5243@end tex
5244 5244
5245Compute the integral from 1 to 2 of 5245Compute the integral from 1 to 2 of
5246@texline @math{\sin x \ln x} 5246@texline @math{\sin x \ln x}
5247@infoline @expr{sin(x) ln(x)} 5247@infoline @expr{sin(x) ln(x)}
5248using Simpson's rule with 10 slices. 5248using Simpson's rule with 10 slices.
5249@xref{Algebra Answer 4, 4}. (@bullet{}) 5249@xref{Algebra Answer 4, 4}. (@bullet{})
5250 5250
5251Calc has a built-in @kbd{a I} command for doing numerical integration. 5251Calc has a built-in @kbd{a I} command for doing numerical integration.
@@ -5396,7 +5396,7 @@ having to retype it.
5396 5396
5397To edit a variable, type @kbd{s e} and the variable name, use regular 5397To edit a variable, type @kbd{s e} and the variable name, use regular
5398Emacs editing commands as necessary, then type @kbd{C-c C-c} to store 5398Emacs editing commands as necessary, then type @kbd{C-c C-c} to store
5399the edited value back into the variable. 5399the edited value back into the variable.
5400You can also use @w{@kbd{s e}} to create a new variable if you wish. 5400You can also use @w{@kbd{s e}} to create a new variable if you wish.
5401 5401
5402Notice that the first time you use each rule, Calc puts up a ``compiling'' 5402Notice that the first time you use each rule, Calc puts up a ``compiling''
@@ -5780,7 +5780,7 @@ in @samp{a + 1} for @samp{x} in the defining formula.
5780@tindex Si 5780@tindex Si
5781(@bullet{}) @strong{Exercise 1.} The ``sine integral'' function 5781(@bullet{}) @strong{Exercise 1.} The ``sine integral'' function
5782@texline @math{{\rm Si}(x)} 5782@texline @math{{\rm Si}(x)}
5783@infoline @expr{Si(x)} 5783@infoline @expr{Si(x)}
5784is defined as the integral of @samp{sin(t)/t} for 5784is defined as the integral of @samp{sin(t)/t} for
5785@expr{t = 0} to @expr{x} in radians. (It was invented because this 5785@expr{t = 0} to @expr{x} in radians. (It was invented because this
5786integral has no solution in terms of basic functions; if you give it 5786integral has no solution in terms of basic functions; if you give it
@@ -5857,9 +5857,9 @@ the following functions:
5857 5857
5858@enumerate 5858@enumerate
5859@item 5859@item
5860Compute 5860Compute
5861@texline @math{\displaystyle{\sin x \over x}}, 5861@texline @math{\displaystyle{\sin x \over x}},
5862@infoline @expr{sin(x) / x}, 5862@infoline @expr{sin(x) / x},
5863where @expr{x} is the number on the top of the stack. 5863where @expr{x} is the number on the top of the stack.
5864 5864
5865@item 5865@item
@@ -5923,15 +5923,15 @@ key if you have one, makes a copy of the number in level 2.)
5923@cindex Golden ratio 5923@cindex Golden ratio
5924@cindex Phi, golden ratio 5924@cindex Phi, golden ratio
5925A fascinating property of the Fibonacci numbers is that the @expr{n}th 5925A fascinating property of the Fibonacci numbers is that the @expr{n}th
5926Fibonacci number can be found directly by computing 5926Fibonacci number can be found directly by computing
5927@texline @math{\phi^n / \sqrt{5}} 5927@texline @math{\phi^n / \sqrt{5}}
5928@infoline @expr{phi^n / sqrt(5)} 5928@infoline @expr{phi^n / sqrt(5)}
5929and then rounding to the nearest integer, where 5929and then rounding to the nearest integer, where
5930@texline @math{\phi} (``phi''), 5930@texline @math{\phi} (``phi''),
5931@infoline @expr{phi}, 5931@infoline @expr{phi},
5932the ``golden ratio,'' is 5932the ``golden ratio,'' is
5933@texline @math{(1 + \sqrt{5}) / 2}. 5933@texline @math{(1 + \sqrt{5}) / 2}.
5934@infoline @expr{(1 + sqrt(5)) / 2}. 5934@infoline @expr{(1 + sqrt(5)) / 2}.
5935(For convenience, this constant is available from the @code{phi} 5935(For convenience, this constant is available from the @code{phi}
5936variable, or the @kbd{I H P} command.) 5936variable, or the @kbd{I H P} command.)
5937 5937
@@ -5946,19 +5946,19 @@ variable, or the @kbd{I H P} command.)
5946 5946
5947@cindex Continued fractions 5947@cindex Continued fractions
5948(@bullet{}) @strong{Exercise 5.} The @dfn{continued fraction} 5948(@bullet{}) @strong{Exercise 5.} The @dfn{continued fraction}
5949representation of 5949representation of
5950@texline @math{\phi} 5950@texline @math{\phi}
5951@infoline @expr{phi} 5951@infoline @expr{phi}
5952is 5952is
5953@texline @math{1 + 1/(1 + 1/(1 + 1/( \ldots )))}. 5953@texline @math{1 + 1/(1 + 1/(1 + 1/( \ldots )))}.
5954@infoline @expr{1 + 1/(1 + 1/(1 + 1/( ...@: )))}. 5954@infoline @expr{1 + 1/(1 + 1/(1 + 1/( ...@: )))}.
5955We can compute an approximate value by carrying this however far 5955We can compute an approximate value by carrying this however far
5956and then replacing the innermost 5956and then replacing the innermost
5957@texline @math{1/( \ldots )} 5957@texline @math{1/( \ldots )}
5958@infoline @expr{1/( ...@: )} 5958@infoline @expr{1/( ...@: )}
5959by 1. Approximate 5959by 1. Approximate
5960@texline @math{\phi} 5960@texline @math{\phi}
5961@infoline @expr{phi} 5961@infoline @expr{phi}
5962using a twenty-term continued fraction. 5962using a twenty-term continued fraction.
5963@xref{Programming Answer 5, 5}. (@bullet{}) 5963@xref{Programming Answer 5, 5}. (@bullet{})
5964 5964
@@ -6056,9 +6056,9 @@ survive past the @kbd{Z '} command.
6056The @dfn{Bernoulli numbers} are a sequence with the interesting 6056The @dfn{Bernoulli numbers} are a sequence with the interesting
6057property that all of the odd Bernoulli numbers are zero, and the 6057property that all of the odd Bernoulli numbers are zero, and the
6058even ones, while difficult to compute, can be roughly approximated 6058even ones, while difficult to compute, can be roughly approximated
6059by the formula 6059by the formula
6060@texline @math{\displaystyle{2 n! \over (2 \pi)^n}}. 6060@texline @math{\displaystyle{2 n! \over (2 \pi)^n}}.
6061@infoline @expr{2 n!@: / (2 pi)^n}. 6061@infoline @expr{2 n!@: / (2 pi)^n}.
6062Let's write a keyboard macro to compute (approximate) Bernoulli numbers. 6062Let's write a keyboard macro to compute (approximate) Bernoulli numbers.
6063(Calc has a command, @kbd{k b}, to compute exact Bernoulli numbers, but 6063(Calc has a command, @kbd{k b}, to compute exact Bernoulli numbers, but
6064this command is very slow for large @expr{n} since the higher Bernoulli 6064this command is very slow for large @expr{n} since the higher Bernoulli
@@ -6166,7 +6166,7 @@ Z` ;; calc-kbd-push (Save local values)
61660 ;; calc digits (Push a zero onto the stack) 61660 ;; calc digits (Push a zero onto the stack)
6167st ;; calc-store-into (Store it in the following variable) 6167st ;; calc-store-into (Store it in the following variable)
61681 ;; calc quick variable (Quick variable q1) 61681 ;; calc quick variable (Quick variable q1)
61691 ;; calc digits (Initial value for the loop) 61691 ;; calc digits (Initial value for the loop)
6170TAB ;; calc-roll-down (Swap initial and final) 6170TAB ;; calc-roll-down (Swap initial and final)
6171Z( ;; calc-kbd-for (Begin the "for" loop) 6171Z( ;; calc-kbd-for (Begin the "for" loop)
6172& ;; calc-inv (Take the reciprocal) 6172& ;; calc-inv (Take the reciprocal)
@@ -6193,10 +6193,10 @@ Press @kbd{C-c C-c} to finish editing and return to the Calculator.
6193 6193
6194The @file{edmacro} package defines a handy @code{read-kbd-macro} command 6194The @file{edmacro} package defines a handy @code{read-kbd-macro} command
6195which reads the current region of the current buffer as a sequence of 6195which reads the current region of the current buffer as a sequence of
6196keystroke names, and defines that sequence on the @kbd{X} 6196keystroke names, and defines that sequence on the @kbd{X}
6197(and @kbd{C-x e}) key. Because this is so useful, Calc puts this 6197(and @kbd{C-x e}) key. Because this is so useful, Calc puts this
6198command on the @kbd{C-x * m} key. Try reading in this macro in the 6198command on the @kbd{C-x * m} key. Try reading in this macro in the
6199following form: Press @kbd{C-@@} (or @kbd{C-@key{SPC}}) at 6199following form: Press @kbd{C-@@} (or @kbd{C-@key{SPC}}) at
6200one end of the text below, then type @kbd{C-x * m} at the other. 6200one end of the text below, then type @kbd{C-x * m} at the other.
6201 6201
6202@example 6202@example
@@ -6230,12 +6230,12 @@ $$ x_{\rm new} = x - {f(x) \over f^{\prime}(x)} $$
6230where @expr{f'(x)} is the derivative of @expr{f}. The @expr{x} 6230where @expr{f'(x)} is the derivative of @expr{f}. The @expr{x}
6231values will quickly converge to a solution, i.e., eventually 6231values will quickly converge to a solution, i.e., eventually
6232@texline @math{x_{\rm new}} 6232@texline @math{x_{\rm new}}
6233@infoline @expr{new_x} 6233@infoline @expr{new_x}
6234and @expr{x} will be equal to within the limits 6234and @expr{x} will be equal to within the limits
6235of the current precision. Write a program which takes a formula 6235of the current precision. Write a program which takes a formula
6236involving the variable @expr{x}, and an initial guess @expr{x_0}, 6236involving the variable @expr{x}, and an initial guess @expr{x_0},
6237on the stack, and produces a value of @expr{x} for which the formula 6237on the stack, and produces a value of @expr{x} for which the formula
6238is zero. Use it to find a solution of 6238is zero. Use it to find a solution of
6239@texline @math{\sin(\cos x) = 0.5} 6239@texline @math{\sin(\cos x) = 0.5}
6240@infoline @expr{sin(cos(x)) = 0.5} 6240@infoline @expr{sin(cos(x)) = 0.5}
6241near @expr{x = 4.5}. (Use angles measured in radians.) Note that 6241near @expr{x = 4.5}. (Use angles measured in radians.) Note that
@@ -6245,12 +6245,12 @@ method when it is able. @xref{Programming Answer 8, 8}. (@bullet{})
6245@cindex Digamma function 6245@cindex Digamma function
6246@cindex Gamma constant, Euler's 6246@cindex Gamma constant, Euler's
6247@cindex Euler's gamma constant 6247@cindex Euler's gamma constant
6248(@bullet{}) @strong{Exercise 9.} The @dfn{digamma} function 6248(@bullet{}) @strong{Exercise 9.} The @dfn{digamma} function
6249@texline @math{\psi(z) (``psi'')} 6249@texline @math{\psi(z) (``psi'')}
6250@infoline @expr{psi(z)} 6250@infoline @expr{psi(z)}
6251is defined as the derivative of 6251is defined as the derivative of
6252@texline @math{\ln \Gamma(z)}. 6252@texline @math{\ln \Gamma(z)}.
6253@infoline @expr{ln(gamma(z))}. 6253@infoline @expr{ln(gamma(z))}.
6254For large values of @expr{z}, it can be approximated by the infinite sum 6254For large values of @expr{z}, it can be approximated by the infinite sum
6255 6255
6256@ifnottex 6256@ifnottex
@@ -6267,9 +6267,9 @@ $$
6267@end tex 6267@end tex
6268 6268
6269@noindent 6269@noindent
6270where 6270where
6271@texline @math{\sum} 6271@texline @math{\sum}
6272@infoline @expr{sum} 6272@infoline @expr{sum}
6273represents the sum over @expr{n} from 1 to infinity 6273represents the sum over @expr{n} from 1 to infinity
6274(or to some limit high enough to give the desired accuracy), and 6274(or to some limit high enough to give the desired accuracy), and
6275the @code{bern} function produces (exact) Bernoulli numbers. 6275the @code{bern} function produces (exact) Bernoulli numbers.
@@ -6277,27 +6277,27 @@ While this sum is not guaranteed to converge, in practice it is safe.
6277An interesting mathematical constant is Euler's gamma, which is equal 6277An interesting mathematical constant is Euler's gamma, which is equal
6278to about 0.5772. One way to compute it is by the formula, 6278to about 0.5772. One way to compute it is by the formula,
6279@texline @math{\gamma = -\psi(1)}. 6279@texline @math{\gamma = -\psi(1)}.
6280@infoline @expr{gamma = -psi(1)}. 6280@infoline @expr{gamma = -psi(1)}.
6281Unfortunately, 1 isn't a large enough argument 6281Unfortunately, 1 isn't a large enough argument
6282for the above formula to work (5 is a much safer value for @expr{z}). 6282for the above formula to work (5 is a much safer value for @expr{z}).
6283Fortunately, we can compute 6283Fortunately, we can compute
6284@texline @math{\psi(1)} 6284@texline @math{\psi(1)}
6285@infoline @expr{psi(1)} 6285@infoline @expr{psi(1)}
6286from 6286from
6287@texline @math{\psi(5)} 6287@texline @math{\psi(5)}
6288@infoline @expr{psi(5)} 6288@infoline @expr{psi(5)}
6289using the recurrence 6289using the recurrence
6290@texline @math{\psi(z+1) = \psi(z) + {1 \over z}}. 6290@texline @math{\psi(z+1) = \psi(z) + {1 \over z}}.
6291@infoline @expr{psi(z+1) = psi(z) + 1/z}. 6291@infoline @expr{psi(z+1) = psi(z) + 1/z}.
6292Your task: Develop a program to compute 6292Your task: Develop a program to compute
6293@texline @math{\psi(z)}; 6293@texline @math{\psi(z)};
6294@infoline @expr{psi(z)}; 6294@infoline @expr{psi(z)};
6295it should ``pump up'' @expr{z} 6295it should ``pump up'' @expr{z}
6296if necessary to be greater than 5, then use the above summation 6296if necessary to be greater than 5, then use the above summation
6297formula. Use looping commands to compute the sum. Use your function 6297formula. Use looping commands to compute the sum. Use your function
6298to compute 6298to compute
6299@texline @math{\gamma} 6299@texline @math{\gamma}
6300@infoline @expr{gamma} 6300@infoline @expr{gamma}
6301to twelve decimal places. (Calc has a built-in command 6301to twelve decimal places. (Calc has a built-in command
6302for Euler's constant, @kbd{I P}, which you can use to check your answer.) 6302for Euler's constant, @kbd{I P}, which you can use to check your answer.)
6303@xref{Programming Answer 9, 9}. (@bullet{}) 6303@xref{Programming Answer 9, 9}. (@bullet{})
@@ -6470,7 +6470,7 @@ This section includes answers to all the exercises in the Calc tutorial.
6470@noindent 6470@noindent
6471@kbd{1 @key{RET} 2 @key{RET} 3 @key{RET} 4 + * -} 6471@kbd{1 @key{RET} 2 @key{RET} 3 @key{RET} 4 + * -}
6472 6472
6473The result is 6473The result is
6474@texline @math{1 - (2 \times (3 + 4)) = -13}. 6474@texline @math{1 - (2 \times (3 + 4)) = -13}.
6475@infoline @expr{1 - (2 * (3 + 4)) = -13}. 6475@infoline @expr{1 - (2 * (3 + 4)) = -13}.
6476 6476
@@ -6481,9 +6481,9 @@ The result is
6481@texline @math{2\times4 + 7\times9.5 + {5\over4} = 75.75} 6481@texline @math{2\times4 + 7\times9.5 + {5\over4} = 75.75}
6482@infoline @expr{2*4 + 7*9.5 + 5/4 = 75.75} 6482@infoline @expr{2*4 + 7*9.5 + 5/4 = 75.75}
6483 6483
6484After computing the intermediate term 6484After computing the intermediate term
6485@texline @math{2\times4 = 8}, 6485@texline @math{2\times4 = 8},
6486@infoline @expr{2*4 = 8}, 6486@infoline @expr{2*4 = 8},
6487you can leave that result on the stack while you compute the second 6487you can leave that result on the stack while you compute the second
6488term. With both of these results waiting on the stack you can then 6488term. With both of these results waiting on the stack you can then
6489compute the final term, then press @kbd{+ +} to add everything up. 6489compute the final term, then press @kbd{+ +} to add everything up.
@@ -6790,7 +6790,7 @@ Dividing two integers that are larger than the current precision may
6790give a floating-point result that is inaccurate even when rounded 6790give a floating-point result that is inaccurate even when rounded
6791down to an integer. Consider @expr{123456789 / 2} when the current 6791down to an integer. Consider @expr{123456789 / 2} when the current
6792precision is 6 digits. The true answer is @expr{61728394.5}, but 6792precision is 6 digits. The true answer is @expr{61728394.5}, but
6793with a precision of 6 this will be rounded to 6793with a precision of 6 this will be rounded to
6794@texline @math{12345700.0/2.0 = 61728500.0}. 6794@texline @math{12345700.0/2.0 = 61728500.0}.
6795@infoline @expr{12345700.@: / 2.@: = 61728500.}. 6795@infoline @expr{12345700.@: / 2.@: = 61728500.}.
6796The result, when converted to an integer, will be off by 106. 6796The result, when converted to an integer, will be off by 106.
@@ -6900,18 +6900,18 @@ Type @kbd{d N} to return to Normal display mode afterwards.
6900@subsection Matrix Tutorial Exercise 3 6900@subsection Matrix Tutorial Exercise 3
6901 6901
6902@noindent 6902@noindent
6903To solve 6903To solve
6904@texline @math{A^T A \, X = A^T B}, 6904@texline @math{A^T A \, X = A^T B},
6905@infoline @expr{trn(A) * A * X = trn(A) * B}, 6905@infoline @expr{trn(A) * A * X = trn(A) * B},
6906first we compute 6906first we compute
6907@texline @math{A' = A^T A} 6907@texline @math{A' = A^T A}
6908@infoline @expr{A2 = trn(A) * A} 6908@infoline @expr{A2 = trn(A) * A}
6909and 6909and
6910@texline @math{B' = A^T B}; 6910@texline @math{B' = A^T B};
6911@infoline @expr{B2 = trn(A) * B}; 6911@infoline @expr{B2 = trn(A) * B};
6912now, we have a system 6912now, we have a system
6913@texline @math{A' X = B'} 6913@texline @math{A' X = B'}
6914@infoline @expr{A2 * X = B2} 6914@infoline @expr{A2 * X = B2}
6915which we can solve using Calc's @samp{/} command. 6915which we can solve using Calc's @samp{/} command.
6916 6916
6917@ifnottex 6917@ifnottex
@@ -6942,7 +6942,7 @@ $$
6942The first step is to enter the coefficient matrix. We'll store it in 6942The first step is to enter the coefficient matrix. We'll store it in
6943quick variable number 7 for later reference. Next, we compute the 6943quick variable number 7 for later reference. Next, we compute the
6944@texline @math{B'} 6944@texline @math{B'}
6945@infoline @expr{B2} 6945@infoline @expr{B2}
6946vector. 6946vector.
6947 6947
6948@smallexample 6948@smallexample
@@ -6958,9 +6958,9 @@ vector.
6958@end smallexample 6958@end smallexample
6959 6959
6960@noindent 6960@noindent
6961Now we compute the matrix 6961Now we compute the matrix
6962@texline @math{A'} 6962@texline @math{A'}
6963@infoline @expr{A2} 6963@infoline @expr{A2}
6964and divide. 6964and divide.
6965 6965
6966@smallexample 6966@smallexample
@@ -6979,16 +6979,16 @@ and divide.
6979(The actual computed answer will be slightly inexact due to 6979(The actual computed answer will be slightly inexact due to
6980round-off error.) 6980round-off error.)
6981 6981
6982Notice that the answers are similar to those for the 6982Notice that the answers are similar to those for the
6983@texline @math{3\times3} 6983@texline @math{3\times3}
6984@infoline 3x3 6984@infoline 3x3
6985system solved in the text. That's because the fourth equation that was 6985system solved in the text. That's because the fourth equation that was
6986added to the system is almost identical to the first one multiplied 6986added to the system is almost identical to the first one multiplied
6987by two. (If it were identical, we would have gotten the exact same 6987by two. (If it were identical, we would have gotten the exact same
6988answer since the 6988answer since the
6989@texline @math{4\times3} 6989@texline @math{4\times3}
6990@infoline 4x3 6990@infoline 4x3
6991system would be equivalent to the original 6991system would be equivalent to the original
6992@texline @math{3\times3} 6992@texline @math{3\times3}
6993@infoline 3x3 6993@infoline 3x3
6994system.) 6994system.)
@@ -7064,7 +7064,7 @@ $$ m \times x + b \times 1 = y $$
7064\afterdisplay 7064\afterdisplay
7065@end tex 7065@end tex
7066 7066
7067Thus we want a 7067Thus we want a
7068@texline @math{19\times2} 7068@texline @math{19\times2}
7069@infoline 19x2 7069@infoline 19x2
7070matrix with our @expr{x} vector as one column and 7070matrix with our @expr{x} vector as one column and
@@ -7083,12 +7083,12 @@ we combine the two columns to form our @expr{A} matrix.
7083@end smallexample 7083@end smallexample
7084 7084
7085@noindent 7085@noindent
7086Now we compute 7086Now we compute
7087@texline @math{A^T y} 7087@texline @math{A^T y}
7088@infoline @expr{trn(A) * y} 7088@infoline @expr{trn(A) * y}
7089and 7089and
7090@texline @math{A^T A} 7090@texline @math{A^T A}
7091@infoline @expr{trn(A) * A} 7091@infoline @expr{trn(A) * A}
7092and divide. 7092and divide.
7093 7093
7094@smallexample 7094@smallexample
@@ -7114,9 +7114,9 @@ and divide.
7114@end group 7114@end group
7115@end smallexample 7115@end smallexample
7116 7116
7117Since we were solving equations of the form 7117Since we were solving equations of the form
7118@texline @math{m \times x + b \times 1 = y}, 7118@texline @math{m \times x + b \times 1 = y},
7119@infoline @expr{m*x + b*1 = y}, 7119@infoline @expr{m*x + b*1 = y},
7120these numbers should be @expr{m} and @expr{b}, respectively. Sure 7120these numbers should be @expr{m} and @expr{b}, respectively. Sure
7121enough, they agree exactly with the result computed using @kbd{V M} and 7121enough, they agree exactly with the result computed using @kbd{V M} and
7122@kbd{V R}! 7122@kbd{V R}!
@@ -7177,9 +7177,9 @@ then raise the number to that power.)
7177@subsection List Tutorial Exercise 4 7177@subsection List Tutorial Exercise 4
7178 7178
7179@noindent 7179@noindent
7180A number @expr{j} is a divisor of @expr{n} if 7180A number @expr{j} is a divisor of @expr{n} if
7181@texline @math{n \mathbin{\hbox{\code{\%}}} j = 0}. 7181@texline @math{n \mathbin{\hbox{\code{\%}}} j = 0}.
7182@infoline @samp{n % j = 0}. 7182@infoline @samp{n % j = 0}.
7183The first step is to get a vector that identifies the divisors. 7183The first step is to get a vector that identifies the divisors.
7184 7184
7185@smallexample 7185@smallexample
@@ -7248,9 +7248,9 @@ so that the mapping operation works; no prime factor will ever be
7248zero, so adding zeros on the left and right is safe. From then on 7248zero, so adding zeros on the left and right is safe. From then on
7249the job is pretty straightforward. 7249the job is pretty straightforward.
7250 7250
7251Incidentally, Calc provides the 7251Incidentally, Calc provides the
7252@texline @dfn{M@"obius} @math{\mu} 7252@texline @dfn{M@"obius} @math{\mu}
7253@infoline @dfn{Moebius mu} 7253@infoline @dfn{Moebius mu}
7254function which is zero if and only if its argument is square-free. It 7254function which is zero if and only if its argument is square-free. It
7255would be a much more convenient way to do the above test in practice. 7255would be a much more convenient way to do the above test in practice.
7256 7256
@@ -7282,7 +7282,7 @@ exercise and type @kbd{1 -} to subtract one from all the elements.
7282The numbers down the lefthand edge of the list we desire are called 7282The numbers down the lefthand edge of the list we desire are called
7283the ``triangular numbers'' (now you know why!). The @expr{n}th 7283the ``triangular numbers'' (now you know why!). The @expr{n}th
7284triangular number is the sum of the integers from 1 to @expr{n}, and 7284triangular number is the sum of the integers from 1 to @expr{n}, and
7285can be computed directly by the formula 7285can be computed directly by the formula
7286@texline @math{n (n+1) \over 2}. 7286@texline @math{n (n+1) \over 2}.
7287@infoline @expr{n * (n+1) / 2}. 7287@infoline @expr{n * (n+1) / 2}.
7288 7288
@@ -7378,7 +7378,7 @@ A way to isolate the maximum value is to compute the maximum using
7378 7378
7379@noindent 7379@noindent
7380It's a good idea to verify, as in the last step above, that only 7380It's a good idea to verify, as in the last step above, that only
7381one value is equal to the maximum. (After all, a plot of 7381one value is equal to the maximum. (After all, a plot of
7382@texline @math{\sin x} 7382@texline @math{\sin x}
7383@infoline @expr{sin(x)} 7383@infoline @expr{sin(x)}
7384might have many points all equal to the maximum value, 1.) 7384might have many points all equal to the maximum value, 1.)
@@ -7650,12 +7650,12 @@ return to full-sized display of vectors.
7650This problem can be made a lot easier by taking advantage of some 7650This problem can be made a lot easier by taking advantage of some
7651symmetries. First of all, after some thought it's clear that the 7651symmetries. First of all, after some thought it's clear that the
7652@expr{y} axis can be ignored altogether. Just pick a random @expr{x} 7652@expr{y} axis can be ignored altogether. Just pick a random @expr{x}
7653component for one end of the match, pick a random direction 7653component for one end of the match, pick a random direction
7654@texline @math{\theta}, 7654@texline @math{\theta},
7655@infoline @expr{theta}, 7655@infoline @expr{theta},
7656and see if @expr{x} and 7656and see if @expr{x} and
7657@texline @math{x + \cos \theta} 7657@texline @math{x + \cos \theta}
7658@infoline @expr{x + cos(theta)} 7658@infoline @expr{x + cos(theta)}
7659(which is the @expr{x} coordinate of the other endpoint) cross a line. 7659(which is the @expr{x} coordinate of the other endpoint) cross a line.
7660The lines are at integer coordinates, so this happens when the two 7660The lines are at integer coordinates, so this happens when the two
7661numbers surround an integer. 7661numbers surround an integer.
@@ -7670,9 +7670,9 @@ In fact, since the field of lines is infinite we can choose the
7670coordinates 0 and 1 for the lines on either side of the leftmost 7670coordinates 0 and 1 for the lines on either side of the leftmost
7671endpoint. The rightmost endpoint will be between 0 and 1 if the 7671endpoint. The rightmost endpoint will be between 0 and 1 if the
7672match does not cross a line, or between 1 and 2 if it does. So: 7672match does not cross a line, or between 1 and 2 if it does. So:
7673Pick random @expr{x} and 7673Pick random @expr{x} and
7674@texline @math{\theta}, 7674@texline @math{\theta},
7675@infoline @expr{theta}, 7675@infoline @expr{theta},
7676compute 7676compute
7677@texline @math{x + \cos \theta}, 7677@texline @math{x + \cos \theta},
7678@infoline @expr{x + cos(theta)}, 7678@infoline @expr{x + cos(theta)},
@@ -8997,7 +8997,7 @@ Each of these functions can be computed using the stack, or using
8997algebraic entry, whichever way you prefer: 8997algebraic entry, whichever way you prefer:
8998 8998
8999@noindent 8999@noindent
9000Computing 9000Computing
9001@texline @math{\displaystyle{\sin x \over x}}: 9001@texline @math{\displaystyle{\sin x \over x}}:
9002@infoline @expr{sin(x) / x}: 9002@infoline @expr{sin(x) / x}:
9003 9003
@@ -9068,7 +9068,7 @@ C-x ( ' [0, 1; 1, 1] ^ ($-1) * [1, 1] @key{RET} v u @key{DEL} C-x )
9068 9068
9069@noindent 9069@noindent
9070This program is quite efficient because Calc knows how to raise a 9070This program is quite efficient because Calc knows how to raise a
9071matrix (or other value) to the power @expr{n} in only 9071matrix (or other value) to the power @expr{n} in only
9072@texline @math{\log_2 n} 9072@texline @math{\log_2 n}
9073@infoline @expr{log(n,2)} 9073@infoline @expr{log(n,2)}
9074steps. For example, this program can compute the 1000th Fibonacci 9074steps. For example, this program can compute the 1000th Fibonacci
@@ -9122,7 +9122,7 @@ harmonic number is 4.02.
9122 9122
9123@noindent 9123@noindent
9124The first step is to compute the derivative @expr{f'(x)} and thus 9124The first step is to compute the derivative @expr{f'(x)} and thus
9125the formula 9125the formula
9126@texline @math{\displaystyle{x - {f(x) \over f'(x)}}}. 9126@texline @math{\displaystyle{x - {f(x) \over f'(x)}}}.
9127@infoline @expr{x - f(x)/f'(x)}. 9127@infoline @expr{x - f(x)/f'(x)}.
9128 9128
@@ -9239,12 +9239,12 @@ method (among others) to look for numerical solutions to any equation.
9239@noindent 9239@noindent
9240The first step is to adjust @expr{z} to be greater than 5. A simple 9240The first step is to adjust @expr{z} to be greater than 5. A simple
9241``for'' loop will do the job here. If @expr{z} is less than 5, we 9241``for'' loop will do the job here. If @expr{z} is less than 5, we
9242reduce the problem using 9242reduce the problem using
9243@texline @math{\psi(z) = \psi(z+1) - 1/z}. 9243@texline @math{\psi(z) = \psi(z+1) - 1/z}.
9244@infoline @expr{psi(z) = psi(z+1) - 1/z}. We go 9244@infoline @expr{psi(z) = psi(z+1) - 1/z}. We go
9245on to compute 9245on to compute
9246@texline @math{\psi(z+1)}, 9246@texline @math{\psi(z+1)},
9247@infoline @expr{psi(z+1)}, 9247@infoline @expr{psi(z+1)},
9248and remember to add back a factor of @expr{-1/z} when we're done. This 9248and remember to add back a factor of @expr{-1/z} when we're done. This
9249step is repeated until @expr{z > 5}. 9249step is repeated until @expr{z > 5}.
9250 9250
@@ -9283,7 +9283,7 @@ are exactly equal, not just equal to within the current precision.)
9283@end group 9283@end group
9284@end smallexample 9284@end smallexample
9285 9285
9286Now we compute the initial part of the sum: 9286Now we compute the initial part of the sum:
9287@texline @math{\ln z - {1 \over 2z}} 9287@texline @math{\ln z - {1 \over 2z}}
9288@infoline @expr{ln(z) - 1/2z} 9288@infoline @expr{ln(z) - 1/2z}
9289minus the adjustment factor. 9289minus the adjustment factor.
@@ -9326,9 +9326,9 @@ up the value of @expr{2 n}. (Calc does have a summation command,
9326@end group 9326@end group
9327@end smallexample 9327@end smallexample
9328 9328
9329This is the value of 9329This is the value of
9330@texline @math{-\gamma}, 9330@texline @math{-\gamma},
9331@infoline @expr{- gamma}, 9331@infoline @expr{- gamma},
9332with a slight bit of roundoff error. To get a full 12 digits, let's use 9332with a slight bit of roundoff error. To get a full 12 digits, let's use
9333a higher precision: 9333a higher precision:
9334 9334
@@ -9361,9 +9361,9 @@ C-x )
9361 9361
9362@noindent 9362@noindent
9363Taking the derivative of a term of the form @expr{x^n} will produce 9363Taking the derivative of a term of the form @expr{x^n} will produce
9364a term like 9364a term like
9365@texline @math{n x^{n-1}}. 9365@texline @math{n x^{n-1}}.
9366@infoline @expr{n x^(n-1)}. 9366@infoline @expr{n x^(n-1)}.
9367Taking the derivative of a constant 9367Taking the derivative of a constant
9368produces zero. From this it is easy to see that the @expr{n}th 9368produces zero. From this it is easy to see that the @expr{n}th
9369derivative of a polynomial, evaluated at @expr{x = 0}, will equal the 9369derivative of a polynomial, evaluated at @expr{x = 0}, will equal the
@@ -9652,7 +9652,7 @@ still exists and is updated silently. @xref{Trail Commands}.
9652@mindex @null 9652@mindex @null
9653@end ignore 9653@end ignore
9654In most installations, the @kbd{C-x * c} key sequence is a more 9654In most installations, the @kbd{C-x * c} key sequence is a more
9655convenient way to start the Calculator. Also, @kbd{C-x * *} 9655convenient way to start the Calculator. Also, @kbd{C-x * *}
9656is a synonym for @kbd{C-x * c} unless you last used Calc 9656is a synonym for @kbd{C-x * c} unless you last used Calc
9657in its Keypad mode. 9657in its Keypad mode.
9658 9658
@@ -9819,7 +9819,7 @@ stack but resets everything else to its default state.
9819@kindex Z ? 9819@kindex Z ?
9820@pindex calc-help 9820@pindex calc-help
9821The @kbd{?} key (@code{calc-help}) displays a series of brief help messages. 9821The @kbd{?} key (@code{calc-help}) displays a series of brief help messages.
9822Some keys (such as @kbd{b} and @kbd{d}) are prefix keys, like Emacs' 9822Some keys (such as @kbd{b} and @kbd{d}) are prefix keys, like Emacs's
9823@key{ESC} and @kbd{C-x} prefixes. You can type 9823@key{ESC} and @kbd{C-x} prefixes. You can type
9824@kbd{?} after a prefix to see a list of commands beginning with that 9824@kbd{?} after a prefix to see a list of commands beginning with that
9825prefix. (If the message includes @samp{[MORE]}, press @kbd{?} again 9825prefix. (If the message includes @samp{[MORE]}, press @kbd{?} again
@@ -9908,9 +9908,9 @@ additional notes from the summary that apply to this command.
9908The @kbd{h f} (@code{calc-describe-function}) command looks up an 9908The @kbd{h f} (@code{calc-describe-function}) command looks up an
9909algebraic function or a command name in the Calc manual. Enter an 9909algebraic function or a command name in the Calc manual. Enter an
9910algebraic function name to look up that function in the Function 9910algebraic function name to look up that function in the Function
9911Index or enter a command name beginning with @samp{calc-} to look it 9911Index or enter a command name beginning with @samp{calc-} to look it
9912up in the Command Index. This command will also look up operator 9912up in the Command Index. This command will also look up operator
9913symbols that can appear in algebraic formulas, like @samp{%} and 9913symbols that can appear in algebraic formulas, like @samp{%} and
9914@samp{=>}. 9914@samp{=>}.
9915 9915
9916@kindex h v 9916@kindex h v
@@ -10038,7 +10038,7 @@ During numeric entry, the only editing key available is @key{DEL}.
10038@cindex Formulas, entering 10038@cindex Formulas, entering
10039The @kbd{'} (@code{calc-algebraic-entry}) command can be used to enter 10039The @kbd{'} (@code{calc-algebraic-entry}) command can be used to enter
10040calculations in algebraic form. This is accomplished by typing the 10040calculations in algebraic form. This is accomplished by typing the
10041apostrophe key, ', followed by the expression in standard format: 10041apostrophe key, ', followed by the expression in standard format:
10042 10042
10043@example 10043@example
10044' 2+3*4 @key{RET}. 10044' 2+3*4 @key{RET}.
@@ -10047,7 +10047,7 @@ apostrophe key, ', followed by the expression in standard format:
10047@noindent 10047@noindent
10048This will compute 10048This will compute
10049@texline @math{2+(3\times4) = 14} 10049@texline @math{2+(3\times4) = 14}
10050@infoline @expr{2+(3*4) = 14} 10050@infoline @expr{2+(3*4) = 14}
10051and push it on the stack. If you wish you can 10051and push it on the stack. If you wish you can
10052ignore the RPN aspect of Calc altogether and simply enter algebraic 10052ignore the RPN aspect of Calc altogether and simply enter algebraic
10053expressions in this way. You may want to use @key{DEL} every so often to 10053expressions in this way. You may want to use @key{DEL} every so often to
@@ -10453,9 +10453,9 @@ is greater than this, it will recompute @cpi{} using a series
10453approximation. This value will not need to be recomputed ever again 10453approximation. This value will not need to be recomputed ever again
10454unless you raise the precision still further. Many operations such as 10454unless you raise the precision still further. Many operations such as
10455logarithms and sines make use of similarly cached values such as 10455logarithms and sines make use of similarly cached values such as
10456@cpiover{4} and 10456@cpiover{4} and
10457@texline @math{\ln 2}. 10457@texline @math{\ln 2}.
10458@infoline @expr{ln(2)}. 10458@infoline @expr{ln(2)}.
10459The visible effect of caching is that 10459The visible effect of caching is that
10460high-precision computations may seem to do extra work the first time. 10460high-precision computations may seem to do extra work the first time.
10461Other things cached include powers of two (for the binary arithmetic 10461Other things cached include powers of two (for the binary arithmetic
@@ -10612,10 +10612,10 @@ form). The numerator and denominator always use the same radix.
10612A floating-point number or @dfn{float} is a number stored in scientific 10612A floating-point number or @dfn{float} is a number stored in scientific
10613notation. The number of significant digits in the fractional part is 10613notation. The number of significant digits in the fractional part is
10614governed by the current floating precision (@pxref{Precision}). The 10614governed by the current floating precision (@pxref{Precision}). The
10615range of acceptable values is from 10615range of acceptable values is from
10616@texline @math{10^{-3999999}} 10616@texline @math{10^{-3999999}}
10617@infoline @expr{10^-3999999} 10617@infoline @expr{10^-3999999}
10618(inclusive) to 10618(inclusive) to
10619@texline @math{10^{4000000}} 10619@texline @math{10^{4000000}}
10620@infoline @expr{10^4000000} 10620@infoline @expr{10^4000000}
10621(exclusive), plus the corresponding negative values and zero. 10621(exclusive), plus the corresponding negative values and zero.
@@ -10666,7 +10666,7 @@ and displayed in any radix just like integers and fractions. Since a
10666float that is entered in a radix other that 10 will be converted to 10666float that is entered in a radix other that 10 will be converted to
10667decimal, the number that Calc stores may not be exactly the number that 10667decimal, the number that Calc stores may not be exactly the number that
10668was entered, it will be the closest decimal approximation given the 10668was entered, it will be the closest decimal approximation given the
10669current precison. The notation @samp{@var{radix}#@var{ddd}.@var{ddd}} 10669current precision. The notation @samp{@var{radix}#@var{ddd}.@var{ddd}}
10670is a floating-point number whose digits are in the specified radix. 10670is a floating-point number whose digits are in the specified radix.
10671Note that the @samp{.} is more aptly referred to as a ``radix point'' 10671Note that the @samp{.} is more aptly referred to as a ``radix point''
10672than as a decimal point in this case. The number @samp{8#123.4567} is 10672than as a decimal point in this case. The number @samp{8#123.4567} is
@@ -10690,18 +10690,18 @@ polar. The default format is rectangular, displayed in the form
10690Rectangular complex numbers can also be displayed in @samp{@var{a}+@var{b}i} 10690Rectangular complex numbers can also be displayed in @samp{@var{a}+@var{b}i}
10691notation; @pxref{Complex Formats}. 10691notation; @pxref{Complex Formats}.
10692 10692
10693Polar complex numbers are displayed in the form 10693Polar complex numbers are displayed in the form
10694@texline `@tfn{(}@var{r}@tfn{;}@math{\theta}@tfn{)}' 10694@texline `@tfn{(}@var{r}@tfn{;}@math{\theta}@tfn{)}'
10695@infoline `@tfn{(}@var{r}@tfn{;}@var{theta}@tfn{)}' 10695@infoline `@tfn{(}@var{r}@tfn{;}@var{theta}@tfn{)}'
10696where @var{r} is the nonnegative magnitude and 10696where @var{r} is the nonnegative magnitude and
10697@texline @math{\theta} 10697@texline @math{\theta}
10698@infoline @var{theta} 10698@infoline @var{theta}
10699is the argument or phase angle. The range of 10699is the argument or phase angle. The range of
10700@texline @math{\theta} 10700@texline @math{\theta}
10701@infoline @var{theta} 10701@infoline @var{theta}
10702depends on the current angular mode (@pxref{Angular Modes}); it is 10702depends on the current angular mode (@pxref{Angular Modes}); it is
10703generally between @mathit{-180} and @mathit{+180} degrees or the equivalent range 10703generally between @mathit{-180} and @mathit{+180} degrees or the equivalent range
10704in radians. 10704in radians.
10705 10705
10706Complex numbers are entered in stages using incomplete objects. 10706Complex numbers are entered in stages using incomplete objects.
10707@xref{Incomplete Objects}. 10707@xref{Incomplete Objects}.
@@ -10742,9 +10742,9 @@ really mean is that @expr{1 / x}, as @expr{x} becomes larger and
10742larger, becomes arbitrarily close to zero. So you can imagine 10742larger, becomes arbitrarily close to zero. So you can imagine
10743that if @expr{x} got ``all the way to infinity,'' then @expr{1 / x} 10743that if @expr{x} got ``all the way to infinity,'' then @expr{1 / x}
10744would go all the way to zero. Similarly, when they say that 10744would go all the way to zero. Similarly, when they say that
10745@samp{exp(inf) = inf}, they mean that 10745@samp{exp(inf) = inf}, they mean that
10746@texline @math{e^x} 10746@texline @math{e^x}
10747@infoline @expr{exp(x)} 10747@infoline @expr{exp(x)}
10748grows without bound as @expr{x} grows. The symbol @samp{-inf} likewise 10748grows without bound as @expr{x} grows. The symbol @samp{-inf} likewise
10749stands for an infinitely negative real value; for example, we say that 10749stands for an infinitely negative real value; for example, we say that
10750@samp{exp(-inf) = 0}. You can have an infinity pointing in any 10750@samp{exp(-inf) = 0}. You can have an infinity pointing in any
@@ -10839,7 +10839,7 @@ of its elements.
10839@end ignore 10839@end ignore
10840@tindex vec 10840@tindex vec
10841Algebraic functions for building vectors include @samp{vec(a, b, c)} 10841Algebraic functions for building vectors include @samp{vec(a, b, c)}
10842to build @samp{[a, b, c]}, @samp{cvec(a, n, m)} to build an 10842to build @samp{[a, b, c]}, @samp{cvec(a, n, m)} to build an
10843@texline @math{n\times m} 10843@texline @math{n\times m}
10844@infoline @var{n}x@var{m} 10844@infoline @var{n}x@var{m}
10845matrix of @samp{a}s, and @samp{index(n)} to build a vector of integers 10845matrix of @samp{a}s, and @samp{index(n)} to build a vector of integers
@@ -11100,7 +11100,7 @@ pairwise relatively prime) is
11100@texline @math{15\times 19\times 28 = 7980} years. 11100@texline @math{15\times 19\times 28 = 7980} years.
11101@infoline 15*19*28 = 7980 years. 11101@infoline 15*19*28 = 7980 years.
11102This is the length of a Julian cycle. Working backwards, the previous 11102This is the length of a Julian cycle. Working backwards, the previous
11103year in which all three cycles began was 4713 BC, and so Scalinger 11103year in which all three cycles began was 4713 BC, and so Scaliger
11104chose that year as the beginning of a Julian cycle. Since at the time 11104chose that year as the beginning of a Julian cycle. Since at the time
11105there were no historical records from before 4713 BC, using this year 11105there were no historical records from before 4713 BC, using this year
11106as a starting point had the advantage of avoiding negative year 11106as a starting point had the advantage of avoiding negative year
@@ -11184,9 +11184,9 @@ there is no solution to this equation (which can happen only when
11184division is left in symbolic form. Other operations, such as square 11184division is left in symbolic form. Other operations, such as square
11185roots, are not yet supported for modulo forms. (Note that, although 11185roots, are not yet supported for modulo forms. (Note that, although
11186@w{`@tfn{(}@var{a} @tfn{mod} @var{M}@tfn{)^.5}'} will compute a ``modulo square root'' 11186@w{`@tfn{(}@var{a} @tfn{mod} @var{M}@tfn{)^.5}'} will compute a ``modulo square root''
11187in the sense of reducing 11187in the sense of reducing
11188@texline @math{\sqrt a} 11188@texline @math{\sqrt a}
11189@infoline @expr{sqrt(a)} 11189@infoline @expr{sqrt(a)}
11190modulo @expr{M}, this is not a useful definition from the 11190modulo @expr{M}, this is not a useful definition from the
11191number-theoretical point of view.) 11191number-theoretical point of view.)
11192 11192
@@ -11220,11 +11220,11 @@ The algebraic function @samp{makemod(a, m)} builds the modulo form
11220@cindex Standard deviations 11220@cindex Standard deviations
11221An @dfn{error form} is a number with an associated standard 11221An @dfn{error form} is a number with an associated standard
11222deviation, as in @samp{2.3 +/- 0.12}. The notation 11222deviation, as in @samp{2.3 +/- 0.12}. The notation
11223@texline `@var{x} @tfn{+/-} @math{\sigma}' 11223@texline `@var{x} @tfn{+/-} @math{\sigma}'
11224@infoline `@var{x} @tfn{+/-} sigma' 11224@infoline `@var{x} @tfn{+/-} sigma'
11225stands for an uncertain value which follows 11225stands for an uncertain value which follows
11226a normal or Gaussian distribution of mean @expr{x} and standard 11226a normal or Gaussian distribution of mean @expr{x} and standard
11227deviation or ``error'' 11227deviation or ``error''
11228@texline @math{\sigma}. 11228@texline @math{\sigma}.
11229@infoline @expr{sigma}. 11229@infoline @expr{sigma}.
11230Both the mean and the error can be either numbers or 11230Both the mean and the error can be either numbers or
@@ -11235,7 +11235,7 @@ regular number by the Calculator.
11235 11235
11236All arithmetic and transcendental functions accept error forms as input. 11236All arithmetic and transcendental functions accept error forms as input.
11237Operations on the mean-value part work just like operations on regular 11237Operations on the mean-value part work just like operations on regular
11238numbers. The error part for any function @expr{f(x)} (such as 11238numbers. The error part for any function @expr{f(x)} (such as
11239@texline @math{\sin x} 11239@texline @math{\sin x}
11240@infoline @expr{sin(x)}) 11240@infoline @expr{sin(x)})
11241is defined by the error of @expr{x} times the derivative of @expr{f} 11241is defined by the error of @expr{x} times the derivative of @expr{f}
@@ -11267,35 +11267,35 @@ Consult a good text on error analysis for a discussion of the proper use
11267of standard deviations. Actual errors often are neither Gaussian-distributed 11267of standard deviations. Actual errors often are neither Gaussian-distributed
11268nor uncorrelated, and the above formulas are valid only when errors 11268nor uncorrelated, and the above formulas are valid only when errors
11269are small. As an example, the error arising from 11269are small. As an example, the error arising from
11270@texline `@tfn{sin(}@var{x} @tfn{+/-} @math{\sigma}@tfn{)}' 11270@texline `@tfn{sin(}@var{x} @tfn{+/-} @math{\sigma}@tfn{)}'
11271@infoline `@tfn{sin(}@var{x} @tfn{+/-} @var{sigma}@tfn{)}' 11271@infoline `@tfn{sin(}@var{x} @tfn{+/-} @var{sigma}@tfn{)}'
11272is 11272is
11273@texline `@math{\sigma} @tfn{abs(cos(}@var{x}@tfn{))}'. 11273@texline `@math{\sigma} @tfn{abs(cos(}@var{x}@tfn{))}'.
11274@infoline `@var{sigma} @tfn{abs(cos(}@var{x}@tfn{))}'. 11274@infoline `@var{sigma} @tfn{abs(cos(}@var{x}@tfn{))}'.
11275When @expr{x} is close to zero, 11275When @expr{x} is close to zero,
11276@texline @math{\cos x} 11276@texline @math{\cos x}
11277@infoline @expr{cos(x)} 11277@infoline @expr{cos(x)}
11278is close to one so the error in the sine is close to 11278is close to one so the error in the sine is close to
11279@texline @math{\sigma}; 11279@texline @math{\sigma};
11280@infoline @expr{sigma}; 11280@infoline @expr{sigma};
11281this makes sense, since 11281this makes sense, since
11282@texline @math{\sin x} 11282@texline @math{\sin x}
11283@infoline @expr{sin(x)} 11283@infoline @expr{sin(x)}
11284is approximately @expr{x} near zero, so a given error in @expr{x} will 11284is approximately @expr{x} near zero, so a given error in @expr{x} will
11285produce about the same error in the sine. Likewise, near 90 degrees 11285produce about the same error in the sine. Likewise, near 90 degrees
11286@texline @math{\cos x} 11286@texline @math{\cos x}
11287@infoline @expr{cos(x)} 11287@infoline @expr{cos(x)}
11288is nearly zero and so the computed error is 11288is nearly zero and so the computed error is
11289small: The sine curve is nearly flat in that region, so an error in @expr{x} 11289small: The sine curve is nearly flat in that region, so an error in @expr{x}
11290has relatively little effect on the value of 11290has relatively little effect on the value of
11291@texline @math{\sin x}. 11291@texline @math{\sin x}.
11292@infoline @expr{sin(x)}. 11292@infoline @expr{sin(x)}.
11293However, consider @samp{sin(90 +/- 1000)}. The cosine of 90 is zero, so 11293However, consider @samp{sin(90 +/- 1000)}. The cosine of 90 is zero, so
11294Calc will report zero error! We get an obviously wrong result because 11294Calc will report zero error! We get an obviously wrong result because
11295we have violated the small-error approximation underlying the error 11295we have violated the small-error approximation underlying the error
11296analysis. If the error in @expr{x} had been small, the error in 11296analysis. If the error in @expr{x} had been small, the error in
11297@texline @math{\sin x} 11297@texline @math{\sin x}
11298@infoline @expr{sin(x)} 11298@infoline @expr{sin(x)}
11299would indeed have been negligible. 11299would indeed have been negligible.
11300 11300
11301@ignore 11301@ignore
@@ -11402,14 +11402,14 @@ contain zero inside them Calc is forced to give the result,
11402 11402
11403While it may seem that intervals and error forms are similar, they are 11403While it may seem that intervals and error forms are similar, they are
11404based on entirely different concepts of inexact quantities. An error 11404based on entirely different concepts of inexact quantities. An error
11405form 11405form
11406@texline `@var{x} @tfn{+/-} @math{\sigma}' 11406@texline `@var{x} @tfn{+/-} @math{\sigma}'
11407@infoline `@var{x} @tfn{+/-} @var{sigma}' 11407@infoline `@var{x} @tfn{+/-} @var{sigma}'
11408means a variable is random, and its value could 11408means a variable is random, and its value could
11409be anything but is ``probably'' within one 11409be anything but is ``probably'' within one
11410@texline @math{\sigma} 11410@texline @math{\sigma}
11411@infoline @var{sigma} 11411@infoline @var{sigma}
11412of the mean value @expr{x}. An interval 11412of the mean value @expr{x}. An interval
11413`@tfn{[}@var{a} @tfn{..@:} @var{b}@tfn{]}' means a 11413`@tfn{[}@var{a} @tfn{..@:} @var{b}@tfn{]}' means a
11414variable's value is unknown, but guaranteed to lie in the specified 11414variable's value is unknown, but guaranteed to lie in the specified
11415range. Error forms are statistical or ``average case'' approximations; 11415range. Error forms are statistical or ``average case'' approximations;
@@ -11641,7 +11641,7 @@ the C-style ``if'' operator @samp{a?b:c} [@code{if}];
11641@samp{=>} [@code{evalto}]. 11641@samp{=>} [@code{evalto}].
11642 11642
11643Note that, unlike in usual computer notation, multiplication binds more 11643Note that, unlike in usual computer notation, multiplication binds more
11644strongly than division: @samp{a*b/c*d} is equivalent to 11644strongly than division: @samp{a*b/c*d} is equivalent to
11645@texline @math{a b \over c d}. 11645@texline @math{a b \over c d}.
11646@infoline @expr{(a*b)/(c*d)}. 11646@infoline @expr{(a*b)/(c*d)}.
11647 11647
@@ -11858,13 +11858,13 @@ next higher level. For example, with @samp{10 20 30 40 50} on the
11858stack and the point on the line containing @samp{30}, @kbd{C-x C-t} 11858stack and the point on the line containing @samp{30}, @kbd{C-x C-t}
11859creates @samp{10 20 40 30 50}. More generally, @kbd{C-x C-t} acts on 11859creates @samp{10 20 40 30 50}. More generally, @kbd{C-x C-t} acts on
11860the stack objects determined by the current point (and mark) similar 11860the stack objects determined by the current point (and mark) similar
11861to how the text-mode command @code{transpose-lines} acts on 11861to how the text-mode command @code{transpose-lines} acts on
11862lines. With argument @var{n}, @kbd{C-x C-t} will move the stack object 11862lines. With argument @var{n}, @kbd{C-x C-t} will move the stack object
11863at the level above the current point and move it past N other objects; 11863at the level above the current point and move it past N other objects;
11864for example, with @samp{10 20 30 40 50} on the stack and the point on 11864for example, with @samp{10 20 30 40 50} on the stack and the point on
11865the line containing @samp{30}, @kbd{C-u 2 C-x C-t} creates 11865the line containing @samp{30}, @kbd{C-u 2 C-x C-t} creates
11866@samp{10 40 20 30 50}. With an argument of 0, @kbd{C-x C-t} will switch 11866@samp{10 40 20 30 50}. With an argument of 0, @kbd{C-x C-t} will switch
11867the stack objects at the levels determined by the point and the mark. 11867the stack objects at the levels determined by the point and the mark.
11868 11868
11869@node Editing Stack Entries, Trail Commands, Stack Manipulation, Stack and Trail 11869@node Editing Stack Entries, Trail Commands, Stack Manipulation, Stack and Trail
11870@section Editing Stack Entries 11870@section Editing Stack Entries
@@ -12056,7 +12056,7 @@ the stack contains the arguments and the result: @samp{2 3 5}.
12056With the exception of keyboard macros, this works for all commands that 12056With the exception of keyboard macros, this works for all commands that
12057take arguments off the stack. (To avoid potentially unpleasant behavior, 12057take arguments off the stack. (To avoid potentially unpleasant behavior,
12058a @kbd{K} prefix before a keyboard macro will be ignored. A @kbd{K} 12058a @kbd{K} prefix before a keyboard macro will be ignored. A @kbd{K}
12059prefix called @emph{within} the keyboard macro will still take effect.) 12059prefix called @emph{within} the keyboard macro will still take effect.)
12060As another example, @kbd{K a s} simplifies a formula, pushing the 12060As another example, @kbd{K a s} simplifies a formula, pushing the
12061simplified version of the formula onto the stack after the original 12061simplified version of the formula onto the stack after the original
12062formula (rather than replacing the original formula). Note that you 12062formula (rather than replacing the original formula). Note that you
@@ -12064,7 +12064,7 @@ could get the same effect by typing @kbd{@key{RET} a s}, copying the
12064formula and then simplifying the copy. One difference is that for a very 12064formula and then simplifying the copy. One difference is that for a very
12065large formula the time taken to format the intermediate copy in 12065large formula the time taken to format the intermediate copy in
12066@kbd{@key{RET} a s} could be noticeable; @kbd{K a s} would avoid this 12066@kbd{@key{RET} a s} could be noticeable; @kbd{K a s} would avoid this
12067extra work. 12067extra work.
12068 12068
12069Even stack manipulation commands are affected. @key{TAB} works by 12069Even stack manipulation commands are affected. @key{TAB} works by
12070popping two values and pushing them back in the opposite order, 12070popping two values and pushing them back in the opposite order,
@@ -12155,7 +12155,7 @@ discussion of the @code{calc-settings-file} variable; @pxref{Customizing Calc}.
12155If the file name you give is your user init file (typically 12155If the file name you give is your user init file (typically
12156@file{~/.emacs}), @kbd{m F} will not automatically load the new file. This 12156@file{~/.emacs}), @kbd{m F} will not automatically load the new file. This
12157is because your user init file may contain other things you don't want 12157is because your user init file may contain other things you don't want
12158to reread. You can give 12158to reread. You can give
12159a numeric prefix argument of 1 to @kbd{m F} to force it to read the 12159a numeric prefix argument of 1 to @kbd{m F} to force it to read the
12160file no matter what. Conversely, an argument of @mathit{-1} tells 12160file no matter what. Conversely, an argument of @mathit{-1} tells
12161@kbd{m F} @emph{not} to read the new file. An argument of 2 or @mathit{-2} 12161@kbd{m F} @emph{not} to read the new file. An argument of 2 or @mathit{-2}
@@ -12274,7 +12274,7 @@ corresponding base command (@code{calc-sin} in this case).
12274@pindex calc-option 12274@pindex calc-option
12275The @kbd{O} key (@code{calc-option}) sets another flag, the 12275The @kbd{O} key (@code{calc-option}) sets another flag, the
12276@dfn{Option Flag}, which also can alter the subsequent Calc command in 12276@dfn{Option Flag}, which also can alter the subsequent Calc command in
12277various ways. 12277various ways.
12278 12278
12279The Inverse, Hyperbolic and Option flags apply only to the next 12279The Inverse, Hyperbolic and Option flags apply only to the next
12280Calculator command, after which they are automatically cleared. (They 12280Calculator command, after which they are automatically cleared. (They
@@ -12366,7 +12366,7 @@ result cannot be expressed as an integer. In some cases you would
12366rather get an exact fractional answer. One way to accomplish this is 12366rather get an exact fractional answer. One way to accomplish this is
12367to use the @kbd{:} (@code{calc-fdiv}) [@code{fdiv}] command, which 12367to use the @kbd{:} (@code{calc-fdiv}) [@code{fdiv}] command, which
12368divides the two integers on the top of the stack to produce a fraction: 12368divides the two integers on the top of the stack to produce a fraction:
12369@kbd{6 @key{RET} 4 :} produces @expr{3:2} even though 12369@kbd{6 @key{RET} 4 :} produces @expr{3:2} even though
12370@kbd{6 @key{RET} 4 /} produces @expr{1.5}. 12370@kbd{6 @key{RET} 4 /} produces @expr{1.5}.
12371 12371
12372@kindex m f 12372@kindex m f
@@ -12878,7 +12878,7 @@ To declare specifically that @code{x} is real and non-zero,
12878use @samp{[[-inf .. 0), (0 .. inf]]}. (There is no way in the 12878use @samp{[[-inf .. 0), (0 .. inf]]}. (There is no way in the
12879current notation to say that @code{x} is nonzero but not necessarily 12879current notation to say that @code{x} is nonzero but not necessarily
12880real.) The @kbd{a e} command does ``unsafe'' simplifications, 12880real.) The @kbd{a e} command does ``unsafe'' simplifications,
12881including cancelling @samp{x} from the equation when @samp{x} is 12881including canceling @samp{x} from the equation when @samp{x} is
12882not known to be nonzero. 12882not known to be nonzero.
12883 12883
12884Another set of type symbols distinguish between scalars and vectors. 12884Another set of type symbols distinguish between scalars and vectors.
@@ -13155,11 +13155,11 @@ represent the integer and no more. The @kbd{d z} (@code{calc-leading-zeros})
13155command causes integers to be padded out with leading zeros according to the 13155command causes integers to be padded out with leading zeros according to the
13156current binary word size. (@xref{Binary Functions}, for a discussion of 13156current binary word size. (@xref{Binary Functions}, for a discussion of
13157word size.) If the absolute value of the word size is @expr{w}, all integers 13157word size.) If the absolute value of the word size is @expr{w}, all integers
13158are displayed with at least enough digits to represent 13158are displayed with at least enough digits to represent
13159@texline @math{2^w-1} 13159@texline @math{2^w-1}
13160@infoline @expr{(2^w)-1} 13160@infoline @expr{(2^w)-1}
13161in the current radix. (Larger integers will still be displayed in their 13161in the current radix. (Larger integers will still be displayed in their
13162entirety.) 13162entirety.)
13163 13163
13164@cindex Two's complements 13164@cindex Two's complements
13165Calc can display @expr{w}-bit integers using two's complement 13165Calc can display @expr{w}-bit integers using two's complement
@@ -13181,7 +13181,7 @@ the integers from @expr{0} to
13181are represented by themselves and the integers from 13181are represented by themselves and the integers from
13182@texline @math{-2^{w-1}} 13182@texline @math{-2^{w-1}}
13183@infoline @expr{-2^(w-1)} 13183@infoline @expr{-2^(w-1)}
13184to @expr{-1} are represented by the integers from 13184to @expr{-1} are represented by the integers from
13185@texline @math{2^{w-1}} 13185@texline @math{2^{w-1}}
13186@infoline @expr{2^(w-1)} 13186@infoline @expr{2^(w-1)}
13187to @expr{2^w-1} (the integer @expr{k} is represented by @expr{k+2^w}). 13187to @expr{2^w-1} (the integer @expr{k} is represented by @expr{k+2^w}).
@@ -13190,7 +13190,7 @@ Calc will display a two's complement integer by the radix (either
13190representation (including any leading zeros necessary to include all 13190representation (including any leading zeros necessary to include all
13191@expr{w} bits). In a two's complement display mode, numbers that 13191@expr{w} bits). In a two's complement display mode, numbers that
13192are not displayed in two's complement notation (i.e., that aren't 13192are not displayed in two's complement notation (i.e., that aren't
13193integers from 13193integers from
13194@texline @math{-2^{w-1}} 13194@texline @math{-2^{w-1}}
13195@infoline @expr{-2^(w-1)} 13195@infoline @expr{-2^(w-1)}
13196to 13196to
@@ -14095,13 +14095,13 @@ the @samp{$} sign has the same meaning it always does in algebraic
14095formulas (a reference to an existing entry on the stack). 14095formulas (a reference to an existing entry on the stack).
14096 14096
14097Complex numbers are displayed as in @samp{3 + 4i}. Fractions and 14097Complex numbers are displayed as in @samp{3 + 4i}. Fractions and
14098quotients are written using @code{\over} in @TeX{} mode (as in 14098quotients are written using @code{\over} in @TeX{} mode (as in
14099@code{@{a \over b@}}) and @code{\frac} in La@TeX{} mode (as in 14099@code{@{a \over b@}}) and @code{\frac} in La@TeX{} mode (as in
14100@code{\frac@{a@}@{b@}}); binomial coefficients are written with 14100@code{\frac@{a@}@{b@}}); binomial coefficients are written with
14101@code{\choose} in @TeX{} mode (as in @code{@{a \choose b@}}) and 14101@code{\choose} in @TeX{} mode (as in @code{@{a \choose b@}}) and
14102@code{\binom} in La@TeX{} mode (as in @code{\binom@{a@}@{b@}}). 14102@code{\binom} in La@TeX{} mode (as in @code{\binom@{a@}@{b@}}).
14103Interval forms are written with @code{\ldots}, and error forms are 14103Interval forms are written with @code{\ldots}, and error forms are
14104written with @code{\pm}. Absolute values are written as in 14104written with @code{\pm}. Absolute values are written as in
14105@samp{|x + 1|}, and the floor and ceiling functions are written with 14105@samp{|x + 1|}, and the floor and ceiling functions are written with
14106@code{\lfloor}, @code{\rfloor}, etc. The words @code{\left} and 14106@code{\lfloor}, @code{\rfloor}, etc. The words @code{\left} and
14107@code{\right} are ignored when reading formulas in @TeX{} and La@TeX{} 14107@code{\right} are ignored when reading formulas in @TeX{} and La@TeX{}
@@ -14114,10 +14114,10 @@ and La@TeX{} have special names (like @code{\sin}) will use curly braces
14114instead of parentheses for very simple arguments. During input, curly 14114instead of parentheses for very simple arguments. During input, curly
14115braces and parentheses work equally well for grouping, but when the 14115braces and parentheses work equally well for grouping, but when the
14116document is formatted the curly braces will be invisible. Thus the 14116document is formatted the curly braces will be invisible. Thus the
14117printed result is 14117printed result is
14118@texline @math{\sin{2 x}} 14118@texline @math{\sin{2 x}}
14119@infoline @expr{sin 2x} 14119@infoline @expr{sin 2x}
14120but 14120but
14121@texline @math{\sin(2 + x)}. 14121@texline @math{\sin(2 + x)}.
14122@infoline @expr{sin(2 + x)}. 14122@infoline @expr{sin(2 + x)}.
14123 14123
@@ -14131,7 +14131,7 @@ italic letters in the printed document. If you invoke @kbd{d T} or
14131@kbd{d L} with a positive numeric prefix argument, names of more than 14131@kbd{d L} with a positive numeric prefix argument, names of more than
14132one character will instead be enclosed in a protective commands that 14132one character will instead be enclosed in a protective commands that
14133will prevent them from being typeset in the math italics; they will be 14133will prevent them from being typeset in the math italics; they will be
14134written @samp{\hbox@{@var{name}@}} in @TeX{} mode and 14134written @samp{\hbox@{@var{name}@}} in @TeX{} mode and
14135@samp{\text@{@var{name}@}} in La@TeX{} mode. The 14135@samp{\text@{@var{name}@}} in La@TeX{} mode. The
14136@samp{\hbox@{ @}} and @samp{\text@{ @}} notations are ignored during 14136@samp{\hbox@{ @}} and @samp{\text@{ @}} notations are ignored during
14137reading. If you use a negative prefix argument, such function names are 14137reading. If you use a negative prefix argument, such function names are
@@ -14143,7 +14143,7 @@ any @TeX{} mode.)
14143 14143
14144During reading, text of the form @samp{\matrix@{ ...@: @}} is replaced 14144During reading, text of the form @samp{\matrix@{ ...@: @}} is replaced
14145by @samp{[ ...@: ]}. The same also applies to @code{\pmatrix} and 14145by @samp{[ ...@: ]}. The same also applies to @code{\pmatrix} and
14146@code{\bmatrix}. In La@TeX{} mode this also applies to 14146@code{\bmatrix}. In La@TeX{} mode this also applies to
14147@samp{\begin@{matrix@} ... \end@{matrix@}}, 14147@samp{\begin@{matrix@} ... \end@{matrix@}},
14148@samp{\begin@{bmatrix@} ... \end@{bmatrix@}}, 14148@samp{\begin@{bmatrix@} ... \end@{bmatrix@}},
14149@samp{\begin@{pmatrix@} ... \end@{pmatrix@}}, as well as 14149@samp{\begin@{pmatrix@} ... \end@{pmatrix@}}, as well as
@@ -14151,12 +14151,12 @@ by @samp{[ ...@: ]}. The same also applies to @code{\pmatrix} and
14151The symbol @samp{&} is interpreted as a comma, 14151The symbol @samp{&} is interpreted as a comma,
14152and the symbols @samp{\cr} and @samp{\\} are interpreted as semicolons. 14152and the symbols @samp{\cr} and @samp{\\} are interpreted as semicolons.
14153During output, matrices are displayed in @samp{\matrix@{ a & b \\ c & d@}} 14153During output, matrices are displayed in @samp{\matrix@{ a & b \\ c & d@}}
14154format in @TeX{} mode and in 14154format in @TeX{} mode and in
14155@samp{\begin@{pmatrix@} a & b \\ c & d \end@{pmatrix@}} format in 14155@samp{\begin@{pmatrix@} a & b \\ c & d \end@{pmatrix@}} format in
14156La@TeX{} mode; you may need to edit this afterwards to change to your 14156La@TeX{} mode; you may need to edit this afterwards to change to your
14157preferred matrix form. If you invoke @kbd{d T} or @kbd{d L} with an 14157preferred matrix form. If you invoke @kbd{d T} or @kbd{d L} with an
14158argument of 2 or -2, then matrices will be displayed in two-dimensional 14158argument of 2 or -2, then matrices will be displayed in two-dimensional
14159form, such as 14159form, such as
14160 14160
14161@example 14161@example
14162\begin@{pmatrix@} 14162\begin@{pmatrix@}
@@ -14300,25 +14300,25 @@ in Calc, @TeX{}, La@TeX{} and @dfn{eqn} (described in the next section):
14300@example 14300@example
14301Calc TeX LaTeX eqn 14301Calc TeX LaTeX eqn
14302---- --- ----- --- 14302---- --- ----- ---
14303acute \acute \acute 14303acute \acute \acute
14304Acute \Acute 14304Acute \Acute
14305bar \bar \bar bar 14305bar \bar \bar bar
14306Bar \Bar 14306Bar \Bar
14307breve \breve \breve 14307breve \breve \breve
14308Breve \Breve 14308Breve \Breve
14309check \check \check 14309check \check \check
14310Check \Check 14310Check \Check
14311dddot \dddot 14311dddot \dddot
14312ddddot \ddddot 14312ddddot \ddddot
14313dot \dot \dot dot 14313dot \dot \dot dot
14314Dot \Dot 14314Dot \Dot
14315dotdot \ddot \ddot dotdot 14315dotdot \ddot \ddot dotdot
14316DotDot \Ddot 14316DotDot \Ddot
14317dyad dyad 14317dyad dyad
14318grave \grave \grave 14318grave \grave \grave
14319Grave \Grave 14319Grave \Grave
14320hat \hat \hat hat 14320hat \hat \hat hat
14321Hat \Hat 14321Hat \Hat
14322Prime prime 14322Prime prime
14323tilde \tilde \tilde tilde 14323tilde \tilde \tilde tilde
14324Tilde \Tilde 14324Tilde \Tilde
@@ -14363,7 +14363,7 @@ reading is:
14363 14363
14364Note that, because these symbols are ignored, reading a @TeX{} or 14364Note that, because these symbols are ignored, reading a @TeX{} or
14365La@TeX{} formula into Calc and writing it back out may lose spacing and 14365La@TeX{} formula into Calc and writing it back out may lose spacing and
14366font information. 14366font information.
14367 14367
14368Also, the ``discretionary multiplication sign'' @samp{\*} is read 14368Also, the ``discretionary multiplication sign'' @samp{\*} is read
14369the same as @samp{*}. 14369the same as @samp{*}.
@@ -14542,7 +14542,7 @@ are treated the same as curly braces: @samp{sqrt "1+x"} is equivalent to
14542of quotes in @dfn{eqn}, but it is good enough for most uses. 14542of quotes in @dfn{eqn}, but it is good enough for most uses.
14543 14543
14544Accent codes (@samp{@var{x} dot}) are handled by treating them as 14544Accent codes (@samp{@var{x} dot}) are handled by treating them as
14545function calls (@samp{dot(@var{x})}) internally. 14545function calls (@samp{dot(@var{x})}) internally.
14546@xref{TeX and LaTeX Language Modes}, for a table of these accent 14546@xref{TeX and LaTeX Language Modes}, for a table of these accent
14547functions. The @code{prime} accent is treated specially if it occurs on 14547functions. The @code{prime} accent is treated specially if it occurs on
14548a variable or function name: @samp{f prime prime @w{( x prime )}} is 14548a variable or function name: @samp{f prime prime @w{( x prime )}} is
@@ -14572,7 +14572,7 @@ if the matrix justification mode so specifies.
14572The @kbd{d Y} (@code{calc-yacas-language}) command selects the 14572The @kbd{d Y} (@code{calc-yacas-language}) command selects the
14573conventions of Yacas, a free computer algebra system. While the 14573conventions of Yacas, a free computer algebra system. While the
14574operators and functions in Yacas are similar to those of Calc, the names 14574operators and functions in Yacas are similar to those of Calc, the names
14575of built-in functions in Yacas are capitalized. The Calc formula 14575of built-in functions in Yacas are capitalized. The Calc formula
14576@samp{sin(2 x)}, for example, is entered and displayed @samp{Sin(2 x)} 14576@samp{sin(2 x)}, for example, is entered and displayed @samp{Sin(2 x)}
14577in Yacas mode, and `@samp{arcsin(x^2)} is @samp{ArcSin(x^2)} in Yacas 14577in Yacas mode, and `@samp{arcsin(x^2)} is @samp{ArcSin(x^2)} in Yacas
14578mode. Complex numbers are written are written @samp{3 + 4 I}. 14578mode. Complex numbers are written are written @samp{3 + 4 I}.
@@ -14581,9 +14581,9 @@ The standard special constants are written @code{Pi}, @code{E},
14581represents both @code{inf} and @code{uinf}, and @code{Undefined} 14581represents both @code{inf} and @code{uinf}, and @code{Undefined}
14582represents @code{nan}. 14582represents @code{nan}.
14583 14583
14584Certain operators on functions, such as @code{D} for differentiation 14584Certain operators on functions, such as @code{D} for differentiation
14585and @code{Integrate} for integration, take a prefix form in Yacas. For 14585and @code{Integrate} for integration, take a prefix form in Yacas. For
14586example, the derivative of @w{@samp{e^x sin(x)}} can be computed with 14586example, the derivative of @w{@samp{e^x sin(x)}} can be computed with
14587@w{@samp{D(x) Exp(x)*Sin(x)}}. 14587@w{@samp{D(x) Exp(x)*Sin(x)}}.
14588 14588
14589Other notable differences between Yacas and standard Calc expressions 14589Other notable differences between Yacas and standard Calc expressions
@@ -14602,7 +14602,7 @@ use square brackets. If, for example, @samp{A} represents the list
14602The @kbd{d X} (@code{calc-maxima-language}) command selects the 14602The @kbd{d X} (@code{calc-maxima-language}) command selects the
14603conventions of Maxima, another free computer algebra system. The 14603conventions of Maxima, another free computer algebra system. The
14604function names in Maxima are similar, but not always identical, to Calc. 14604function names in Maxima are similar, but not always identical, to Calc.
14605For example, instead of @samp{arcsin(x)}, Maxima will use 14605For example, instead of @samp{arcsin(x)}, Maxima will use
14606@samp{asin(x)}. Complex numbers are written @samp{3 + 4 %i}. The 14606@samp{asin(x)}. Complex numbers are written @samp{3 + 4 %i}. The
14607standard special constants are written @code{%pi}, @code{%e}, 14607standard special constants are written @code{%pi}, @code{%e},
14608@code{%i}, @code{%phi} and @code{%gamma}. In Maxima, @code{inf} means 14608@code{%i}, @code{%phi} and @code{%gamma}. In Maxima, @code{inf} means
@@ -14610,8 +14610,8 @@ the same as in Calc, but @code{infinity} represents Calc's @code{uinf}.
14610 14610
14611Underscores as well as percent signs are allowed in function and 14611Underscores as well as percent signs are allowed in function and
14612variable names in Maxima mode. The underscore again is equivalent to 14612variable names in Maxima mode. The underscore again is equivalent to
14613the @samp{#} in Normal mode, and the percent sign is equivalent to 14613the @samp{#} in Normal mode, and the percent sign is equivalent to
14614@samp{o'o}. 14614@samp{o'o}.
14615 14615
14616Maxima uses square brackets for lists and vectors, and matrices are 14616Maxima uses square brackets for lists and vectors, and matrices are
14617written as calls to the function @code{matrix}, given the row vectors of 14617written as calls to the function @code{matrix}, given the row vectors of
@@ -14629,7 +14629,7 @@ conventions of Giac, another free computer algebra system. The function
14629names in Giac are similar to Maxima. Complex numbers are written 14629names in Giac are similar to Maxima. Complex numbers are written
14630@samp{3 + 4 i}. The standard special constants in Giac are the same as 14630@samp{3 + 4 i}. The standard special constants in Giac are the same as
14631in Calc, except that @code{infinity} represents both Calc's @code{inf} 14631in Calc, except that @code{infinity} represents both Calc's @code{inf}
14632and @code{uinf}. 14632and @code{uinf}.
14633 14633
14634Underscores are allowed in function and variable names in Giac mode. 14634Underscores are allowed in function and variable names in Giac mode.
14635Brackets are used for subscripts. In Giac, indexing of lists begins at 14635Brackets are used for subscripts. In Giac, indexing of lists begins at
@@ -15786,9 +15786,9 @@ Command is @kbd{m p}.
15786@item 15786@item
15787Matrix/Scalar mode. Default value is @mathit{-1}. Value is 0 for Scalar 15787Matrix/Scalar mode. Default value is @mathit{-1}. Value is 0 for Scalar
15788mode, @mathit{-2} for Matrix mode, @mathit{-3} for square Matrix mode, 15788mode, @mathit{-2} for Matrix mode, @mathit{-3} for square Matrix mode,
15789or @var{N} for 15789or @var{N} for
15790@texline @math{N\times N} 15790@texline @math{N\times N}
15791@infoline @var{N}x@var{N} 15791@infoline @var{N}x@var{N}
15792Matrix mode. Command is @kbd{m v}. 15792Matrix mode. Command is @kbd{m v}.
15793 15793
15794@item 15794@item
@@ -16178,7 +16178,7 @@ whereas @w{@samp{[-2 ..@: 3] ^ 2}} is @samp{[0 ..@: 9]}.
16178@mindex @null 16178@mindex @null
16179@end ignore 16179@end ignore
16180@tindex / 16180@tindex /
16181The @kbd{/} (@code{calc-divide}) command divides two numbers. 16181The @kbd{/} (@code{calc-divide}) command divides two numbers.
16182 16182
16183When combining multiplication and division in an algebraic formula, it 16183When combining multiplication and division in an algebraic formula, it
16184is good style to use parentheses to distinguish between possible 16184is good style to use parentheses to distinguish between possible
@@ -16187,7 +16187,7 @@ interpretations; the expression @samp{a/b*c} should be written
16187parentheses, Calc will interpret @samp{a/b*c} as @samp{a/(b*c)}, since 16187parentheses, Calc will interpret @samp{a/b*c} as @samp{a/(b*c)}, since
16188in algebraic entry Calc gives division a lower precedence than 16188in algebraic entry Calc gives division a lower precedence than
16189multiplication. (This is not standard across all computer languages, and 16189multiplication. (This is not standard across all computer languages, and
16190Calc may change the precedence depending on the language mode being used. 16190Calc may change the precedence depending on the language mode being used.
16191@xref{Language Modes}.) This default ordering can be changed by setting 16191@xref{Language Modes}.) This default ordering can be changed by setting
16192the customizable variable @code{calc-multiplication-has-precedence} to 16192the customizable variable @code{calc-multiplication-has-precedence} to
16193@code{nil} (@pxref{Customizing Calc}); this will give multiplication and 16193@code{nil} (@pxref{Customizing Calc}); this will give multiplication and
@@ -16373,7 +16373,7 @@ all the arguments.)
16373The @kbd{f M} (@code{calc-mant-part}) [@code{mant}] function extracts 16373The @kbd{f M} (@code{calc-mant-part}) [@code{mant}] function extracts
16374the ``mantissa'' part @expr{m} of its floating-point argument; @kbd{f X} 16374the ``mantissa'' part @expr{m} of its floating-point argument; @kbd{f X}
16375(@code{calc-xpon-part}) [@code{xpon}] extracts the ``exponent'' part 16375(@code{calc-xpon-part}) [@code{xpon}] extracts the ``exponent'' part
16376@expr{e}. The original number is equal to 16376@expr{e}. The original number is equal to
16377@texline @math{m \times 10^e}, 16377@texline @math{m \times 10^e},
16378@infoline @expr{m * 10^e}, 16378@infoline @expr{m * 10^e},
16379where @expr{m} is in the interval @samp{[1.0 ..@: 10.0)} except that 16379where @expr{m} is in the interval @samp{[1.0 ..@: 10.0)} except that
@@ -16406,9 +16406,9 @@ floating-point numbers, the change is by one unit in the last place.
16406For example, incrementing @samp{12.3456} when the current precision 16406For example, incrementing @samp{12.3456} when the current precision
16407is 6 digits yields @samp{12.3457}. If the current precision had been 16407is 6 digits yields @samp{12.3457}. If the current precision had been
164088 digits, the result would have been @samp{12.345601}. Incrementing 164088 digits, the result would have been @samp{12.345601}. Incrementing
16409@samp{0.0} produces 16409@samp{0.0} produces
16410@texline @math{10^{-p}}, 16410@texline @math{10^{-p}},
16411@infoline @expr{10^-p}, 16411@infoline @expr{10^-p},
16412where @expr{p} is the current 16412where @expr{p} is the current
16413precision. These operations are defined only on integers and floats. 16413precision. These operations are defined only on integers and floats.
16414With numeric prefix arguments, they change the number by @expr{n} units. 16414With numeric prefix arguments, they change the number by @expr{n} units.
@@ -16852,7 +16852,7 @@ The last two arguments default to zero if omitted.
16852The @kbd{t J} (@code{calc-julian}) [@code{julian}] command converts 16852The @kbd{t J} (@code{calc-julian}) [@code{julian}] command converts
16853a date form into a Julian day count, which is the number of days 16853a date form into a Julian day count, which is the number of days
16854since noon (GMT) on Jan 1, 4713 BC. A pure date is converted to an 16854since noon (GMT) on Jan 1, 4713 BC. A pure date is converted to an
16855integer Julian count representing noon of that day. A date/time form 16855integer Julian count representing noon of that day. A date/time form
16856is converted to an exact floating-point Julian count, adjusted to 16856is converted to an exact floating-point Julian count, adjusted to
16857interpret the date form in the current time zone but the Julian 16857interpret the date form in the current time zone but the Julian
16858day count in Greenwich Mean Time. A numeric prefix argument allows 16858day count in Greenwich Mean Time. A numeric prefix argument allows
@@ -16873,7 +16873,7 @@ The @kbd{t U} (@code{calc-unix-time}) [@code{unixtime}] command
16873converts a date form into a Unix time value, which is the number of 16873converts a date form into a Unix time value, which is the number of
16874seconds since midnight on Jan 1, 1970, or vice-versa. The numeric result 16874seconds since midnight on Jan 1, 1970, or vice-versa. The numeric result
16875will be an integer if the current precision is 12 or less; for higher 16875will be an integer if the current precision is 12 or less; for higher
16876precisions, the result may be a float with (@var{precision}@minus{}12) 16876precision, the result may be a float with (@var{precision}@minus{}12)
16877digits after the decimal. Just as for @kbd{t J}, the numeric time 16877digits after the decimal. Just as for @kbd{t J}, the numeric time
16878is interpreted in the GMT time zone and the date form is interpreted 16878is interpreted in the GMT time zone and the date form is interpreted
16879in the current or specified zone. Some systems use Unix-like 16879in the current or specified zone. Some systems use Unix-like
@@ -16943,7 +16943,7 @@ from a date form as an integer in the range 0 to 59.
16943The @kbd{M-6 t P} [@code{second}] function extracts the second 16943The @kbd{M-6 t P} [@code{second}] function extracts the second
16944from a date form. If the current precision is 12 or less, 16944from a date form. If the current precision is 12 or less,
16945the result is an integer in the range 0 to 59. For higher 16945the result is an integer in the range 0 to 59. For higher
16946precisions, the result may instead be a floating-point number. 16946precision, the result may instead be a floating-point number.
16947 16947
16948@tindex weekday 16948@tindex weekday
16949The @kbd{M-7 t P} [@code{weekday}] function extracts the weekday 16949The @kbd{M-7 t P} [@code{weekday}] function extracts the weekday
@@ -17294,12 +17294,12 @@ With no arguments, @code{calc-time-zone} or @samp{tzone()} will by
17294default get the time zone and daylight saving information from the 17294default get the time zone and daylight saving information from the
17295calendar (@pxref{Daylight Saving,Calendar/Diary,The Calendar and the Diary, 17295calendar (@pxref{Daylight Saving,Calendar/Diary,The Calendar and the Diary,
17296emacs,The GNU Emacs Manual}). To use a different time zone, or if the 17296emacs,The GNU Emacs Manual}). To use a different time zone, or if the
17297calendar does not give the desired result, you can set the Calc variable 17297calendar does not give the desired result, you can set the Calc variable
17298@code{TimeZone} (which is by default @code{nil}) to an appropriate 17298@code{TimeZone} (which is by default @code{nil}) to an appropriate
17299time zone name. (The easiest way to do this is to edit the 17299time zone name. (The easiest way to do this is to edit the
17300@code{TimeZone} variable using Calc's @kbd{s T} command, then use the 17300@code{TimeZone} variable using Calc's @kbd{s T} command, then use the
17301@kbd{s p} (@code{calc-permanent-variable}) command to save the value of 17301@kbd{s p} (@code{calc-permanent-variable}) command to save the value of
17302@code{TimeZone} permanently.) 17302@code{TimeZone} permanently.)
17303If the time zone given by @code{TimeZone} is a generalized time zone, 17303If the time zone given by @code{TimeZone} is a generalized time zone,
17304e.g., @code{EGT}, Calc examines the date being converted to tell whether 17304e.g., @code{EGT}, Calc examines the date being converted to tell whether
17305to use standard or daylight saving time. But if the current time zone 17305to use standard or daylight saving time. But if the current time zone
@@ -17311,12 +17311,12 @@ from the calendar.
17311 17311
17312The @kbd{t J} and @code{t U} commands with no numeric prefix 17312The @kbd{t J} and @code{t U} commands with no numeric prefix
17313arguments do the same thing as @samp{tzone()}; namely, use the 17313arguments do the same thing as @samp{tzone()}; namely, use the
17314information from the calendar if @code{TimeZone} is @code{nil}, 17314information from the calendar if @code{TimeZone} is @code{nil},
17315otherwise use the time zone given by @code{TimeZone}. 17315otherwise use the time zone given by @code{TimeZone}.
17316 17316
17317@vindex math-daylight-savings-hook 17317@vindex math-daylight-savings-hook
17318@findex math-std-daylight-savings 17318@findex math-std-daylight-savings
17319When Calc computes the daylight saving information itself (i.e., when 17319When Calc computes the daylight saving information itself (i.e., when
17320the @code{TimeZone} variable is set), it will by default consider 17320the @code{TimeZone} variable is set), it will by default consider
17321daylight saving time to begin at 2 a.m.@: on the second Sunday of March 17321daylight saving time to begin at 2 a.m.@: on the second Sunday of March
17322(for years from 2007 on) or on the last Sunday in April (for years 17322(for years from 2007 on) or on the last Sunday in April (for years
@@ -17392,7 +17392,7 @@ falls in this hour results in a time value for the following hour,
17392from 3 a.m.@: to 4 a.m. At the end of daylight saving time, the 17392from 3 a.m.@: to 4 a.m. At the end of daylight saving time, the
17393hour from 1 a.m.@: to 2 a.m.@: repeats itself; converting a date/time 17393hour from 1 a.m.@: to 2 a.m.@: repeats itself; converting a date/time
17394form that falls in this hour results in a time value for the first 17394form that falls in this hour results in a time value for the first
17395manifestation of that time (@emph{not} the one that occurs one hour 17395manifestation of that time (@emph{not} the one that occurs one hour
17396later). 17396later).
17397 17397
17398If @code{math-daylight-savings-hook} is @code{nil}, then the 17398If @code{math-daylight-savings-hook} is @code{nil}, then the
@@ -17995,12 +17995,12 @@ particular, negative arguments are converted to positive integers modulo
17995@expr{2^w} by all binary functions. 17995@expr{2^w} by all binary functions.
17996 17996
17997If the word size is negative, binary operations produce twos-complement 17997If the word size is negative, binary operations produce twos-complement
17998integers from 17998integers from
17999@texline @math{-2^{-w-1}} 17999@texline @math{-2^{-w-1}}
18000@infoline @expr{-(2^(-w-1))} 18000@infoline @expr{-(2^(-w-1))}
18001to 18001to
18002@texline @math{2^{-w-1}-1} 18002@texline @math{2^{-w-1}-1}
18003@infoline @expr{2^(-w-1)-1} 18003@infoline @expr{2^(-w-1)-1}
18004inclusive. Either mode accepts inputs in any range; the sign of 18004inclusive. Either mode accepts inputs in any range; the sign of
18005@expr{w} affects only the results produced. 18005@expr{w} affects only the results produced.
18006 18006
@@ -18182,13 +18182,13 @@ flag keys must be used to get some of these functions from the keyboard.
18182One miscellaneous command is shift-@kbd{P} (@code{calc-pi}), which pushes 18182One miscellaneous command is shift-@kbd{P} (@code{calc-pi}), which pushes
18183the value of @cpi{} (at the current precision) onto the stack. With the 18183the value of @cpi{} (at the current precision) onto the stack. With the
18184Hyperbolic flag, it pushes the value @expr{e}, the base of natural logarithms. 18184Hyperbolic flag, it pushes the value @expr{e}, the base of natural logarithms.
18185With the Inverse flag, it pushes Euler's constant 18185With the Inverse flag, it pushes Euler's constant
18186@texline @math{\gamma} 18186@texline @math{\gamma}
18187@infoline @expr{gamma} 18187@infoline @expr{gamma}
18188(about 0.5772). With both Inverse and Hyperbolic, it 18188(about 0.5772). With both Inverse and Hyperbolic, it
18189pushes the ``golden ratio'' 18189pushes the ``golden ratio''
18190@texline @math{\phi} 18190@texline @math{\phi}
18191@infoline @expr{phi} 18191@infoline @expr{phi}
18192(about 1.618). (At present, Euler's constant is not available 18192(about 1.618). (At present, Euler's constant is not available
18193to unlimited precision; Calc knows only the first 100 digits.) 18193to unlimited precision; Calc knows only the first 100 digits.)
18194In Symbolic mode, these commands push the 18194In Symbolic mode, these commands push the
@@ -18266,7 +18266,7 @@ The @kbd{H L} (@code{calc-log10}) [@code{log10}] command computes the common
18266(base-10) logarithm of a number. (With the Inverse flag [@code{exp10}], 18266(base-10) logarithm of a number. (With the Inverse flag [@code{exp10}],
18267it raises ten to a given power.) Note that the common logarithm of a 18267it raises ten to a given power.) Note that the common logarithm of a
18268complex number is computed by taking the natural logarithm and dividing 18268complex number is computed by taking the natural logarithm and dividing
18269by 18269by
18270@texline @math{\ln10}. 18270@texline @math{\ln10}.
18271@infoline @expr{ln(10)}. 18271@infoline @expr{ln(10)}.
18272 18272
@@ -18278,7 +18278,7 @@ by
18278The @kbd{B} (@code{calc-log}) [@code{log}] command computes a logarithm 18278The @kbd{B} (@code{calc-log}) [@code{log}] command computes a logarithm
18279to any base. For example, @kbd{1024 @key{RET} 2 B} produces 10, since 18279to any base. For example, @kbd{1024 @key{RET} 2 B} produces 10, since
18280@texline @math{2^{10} = 1024}. 18280@texline @math{2^{10} = 1024}.
18281@infoline @expr{2^10 = 1024}. 18281@infoline @expr{2^10 = 1024}.
18282In certain cases like @samp{log(3,9)}, the result 18282In certain cases like @samp{log(3,9)}, the result
18283will be either @expr{1:2} or @expr{0.5} depending on the current Fraction 18283will be either @expr{1:2} or @expr{0.5} depending on the current Fraction
18284mode setting. With the Inverse flag [@code{alog}], this command is 18284mode setting. With the Inverse flag [@code{alog}], this command is
@@ -18300,11 +18300,11 @@ integer arithmetic is used; otherwise, this is equivalent to
18300@tindex expm1 18300@tindex expm1
18301The @kbd{f E} (@code{calc-expm1}) [@code{expm1}] command computes 18301The @kbd{f E} (@code{calc-expm1}) [@code{expm1}] command computes
18302@texline @math{e^x - 1}, 18302@texline @math{e^x - 1},
18303@infoline @expr{exp(x)-1}, 18303@infoline @expr{exp(x)-1},
18304but using an algorithm that produces a more accurate 18304but using an algorithm that produces a more accurate
18305answer when the result is close to zero, i.e., when 18305answer when the result is close to zero, i.e., when
18306@texline @math{e^x} 18306@texline @math{e^x}
18307@infoline @expr{exp(x)} 18307@infoline @expr{exp(x)}
18308is close to one. 18308is close to one.
18309 18309
18310@kindex f L 18310@kindex f L
@@ -18312,7 +18312,7 @@ is close to one.
18312@tindex lnp1 18312@tindex lnp1
18313The @kbd{f L} (@code{calc-lnp1}) [@code{lnp1}] command computes 18313The @kbd{f L} (@code{calc-lnp1}) [@code{lnp1}] command computes
18314@texline @math{\ln(x+1)}, 18314@texline @math{\ln(x+1)},
18315@infoline @expr{ln(x+1)}, 18315@infoline @expr{ln(x+1)},
18316producing a more accurate answer when @expr{x} is close to zero. 18316producing a more accurate answer when @expr{x} is close to zero.
18317 18317
18318@node Trigonometric and Hyperbolic Functions, Advanced Math Functions, Logarithmic Functions, Scientific Functions 18318@node Trigonometric and Hyperbolic Functions, Advanced Math Functions, Logarithmic Functions, Scientific Functions
@@ -18499,7 +18499,7 @@ counterparts, which are also available separately as @code{calc-sech}
18499Calc can compute a variety of less common functions that arise in 18499Calc can compute a variety of less common functions that arise in
18500various branches of mathematics. All of the functions described in 18500various branches of mathematics. All of the functions described in
18501this section allow arbitrary complex arguments and, except as noted, 18501this section allow arbitrary complex arguments and, except as noted,
18502will work to arbitrarily large precisions. They can not at present 18502will work to arbitrarily large precision. They can not at present
18503handle error forms or intervals as arguments. 18503handle error forms or intervals as arguments.
18504 18504
18505NOTE: These functions are still experimental. In particular, their 18505NOTE: These functions are still experimental. In particular, their
@@ -18515,9 +18515,9 @@ The @kbd{f g} (@code{calc-gamma}) [@code{gamma}] command computes the Euler
18515gamma function. For positive integer arguments, this is related to the 18515gamma function. For positive integer arguments, this is related to the
18516factorial function: @samp{gamma(n+1) = fact(n)}. For general complex 18516factorial function: @samp{gamma(n+1) = fact(n)}. For general complex
18517arguments the gamma function can be defined by the following definite 18517arguments the gamma function can be defined by the following definite
18518integral: 18518integral:
18519@texline @math{\Gamma(a) = \int_0^\infty t^{a-1} e^t dt}. 18519@texline @math{\Gamma(a) = \int_0^\infty t^{a-1} e^t dt}.
18520@infoline @expr{gamma(a) = integ(t^(a-1) exp(t), t, 0, inf)}. 18520@infoline @expr{gamma(a) = integ(t^(a-1) exp(t), t, 0, inf)}.
18521(The actual implementation uses far more efficient computational methods.) 18521(The actual implementation uses far more efficient computational methods.)
18522 18522
18523@kindex f G 18523@kindex f G
@@ -18549,7 +18549,7 @@ integral:
18549@tindex gammaG 18549@tindex gammaG
18550The @kbd{f G} (@code{calc-inc-gamma}) [@code{gammaP}] command computes 18550The @kbd{f G} (@code{calc-inc-gamma}) [@code{gammaP}] command computes
18551the incomplete gamma function, denoted @samp{P(a,x)}. This is defined by 18551the incomplete gamma function, denoted @samp{P(a,x)}. This is defined by
18552the integral, 18552the integral,
18553@texline @math{P(a,x) = \left( \int_0^x t^{a-1} e^t dt \right) / \Gamma(a)}. 18553@texline @math{P(a,x) = \left( \int_0^x t^{a-1} e^t dt \right) / \Gamma(a)}.
18554@infoline @expr{gammaP(a,x) = integ(t^(a-1) exp(t), t, 0, x) / gamma(a)}. 18554@infoline @expr{gammaP(a,x) = integ(t^(a-1) exp(t), t, 0, x) / gamma(a)}.
18555This implies that @samp{gammaP(a,inf) = 1} for any @expr{a} (see the 18555This implies that @samp{gammaP(a,inf) = 1} for any @expr{a} (see the
@@ -18583,7 +18583,7 @@ You can obtain these using the \kbd{H f G} [\code{gammag}] and
18583The @kbd{f b} (@code{calc-beta}) [@code{beta}] command computes the 18583The @kbd{f b} (@code{calc-beta}) [@code{beta}] command computes the
18584Euler beta function, which is defined in terms of the gamma function as 18584Euler beta function, which is defined in terms of the gamma function as
18585@texline @math{B(a,b) = \Gamma(a) \Gamma(b) / \Gamma(a+b)}, 18585@texline @math{B(a,b) = \Gamma(a) \Gamma(b) / \Gamma(a+b)},
18586@infoline @expr{beta(a,b) = gamma(a) gamma(b) / gamma(a+b)}, 18586@infoline @expr{beta(a,b) = gamma(a) gamma(b) / gamma(a+b)},
18587or by 18587or by
18588@texline @math{B(a,b) = \int_0^1 t^{a-1} (1-t)^{b-1} dt}. 18588@texline @math{B(a,b) = \int_0^1 t^{a-1} (1-t)^{b-1} dt}.
18589@infoline @expr{beta(a,b) = integ(t^(a-1) (1-t)^(b-1), t, 0, 1)}. 18589@infoline @expr{beta(a,b) = integ(t^(a-1) (1-t)^(b-1), t, 0, 1)}.
@@ -18606,7 +18606,7 @@ un-normalized version [@code{betaB}].
18606@tindex erf 18606@tindex erf
18607@tindex erfc 18607@tindex erfc
18608The @kbd{f e} (@code{calc-erf}) [@code{erf}] command computes the 18608The @kbd{f e} (@code{calc-erf}) [@code{erf}] command computes the
18609error function 18609error function
18610@texline @math{\hbox{erf}(x) = {2 \over \sqrt{\pi}} \int_0^x e^{-t^2} dt}. 18610@texline @math{\hbox{erf}(x) = {2 \over \sqrt{\pi}} \int_0^x e^{-t^2} dt}.
18611@infoline @expr{erf(x) = 2 integ(exp(-(t^2)), t, 0, x) / sqrt(pi)}. 18611@infoline @expr{erf(x) = 2 integ(exp(-(t^2)), t, 0, x) / sqrt(pi)}.
18612The complementary error function @kbd{I f e} (@code{calc-erfc}) [@code{erfc}] 18612The complementary error function @kbd{I f e} (@code{calc-erfc}) [@code{erfc}]
@@ -18784,9 +18784,9 @@ The @kbd{k r} (@code{calc-random}) [@code{random}] command produces
18784random numbers of various sorts. 18784random numbers of various sorts.
18785 18785
18786Given a positive numeric prefix argument @expr{M}, it produces a random 18786Given a positive numeric prefix argument @expr{M}, it produces a random
18787integer @expr{N} in the range 18787integer @expr{N} in the range
18788@texline @math{0 \le N < M}. 18788@texline @math{0 \le N < M}.
18789@infoline @expr{0 <= N < M}. 18789@infoline @expr{0 <= N < M}.
18790Each possible value @expr{N} appears with equal probability. 18790Each possible value @expr{N} appears with equal probability.
18791 18791
18792With no numeric prefix argument, the @kbd{k r} command takes its argument 18792With no numeric prefix argument, the @kbd{k r} command takes its argument
@@ -18794,17 +18794,17 @@ from the stack instead. Once again, if this is a positive integer @expr{M}
18794the result is a random integer less than @expr{M}. However, note that 18794the result is a random integer less than @expr{M}. However, note that
18795while numeric prefix arguments are limited to six digits or so, an @expr{M} 18795while numeric prefix arguments are limited to six digits or so, an @expr{M}
18796taken from the stack can be arbitrarily large. If @expr{M} is negative, 18796taken from the stack can be arbitrarily large. If @expr{M} is negative,
18797the result is a random integer in the range 18797the result is a random integer in the range
18798@texline @math{M < N \le 0}. 18798@texline @math{M < N \le 0}.
18799@infoline @expr{M < N <= 0}. 18799@infoline @expr{M < N <= 0}.
18800 18800
18801If the value on the stack is a floating-point number @expr{M}, the result 18801If the value on the stack is a floating-point number @expr{M}, the result
18802is a random floating-point number @expr{N} in the range 18802is a random floating-point number @expr{N} in the range
18803@texline @math{0 \le N < M} 18803@texline @math{0 \le N < M}
18804@infoline @expr{0 <= N < M} 18804@infoline @expr{0 <= N < M}
18805or 18805or
18806@texline @math{M < N \le 0}, 18806@texline @math{M < N \le 0},
18807@infoline @expr{M < N <= 0}, 18807@infoline @expr{M < N <= 0},
18808according to the sign of @expr{M}. 18808according to the sign of @expr{M}.
18809 18809
18810If @expr{M} is zero, the result is a Gaussian-distributed random real 18810If @expr{M} is zero, the result is a Gaussian-distributed random real
@@ -18812,14 +18812,14 @@ number; the distribution has a mean of zero and a standard deviation
18812of one. The algorithm used generates random numbers in pairs; thus, 18812of one. The algorithm used generates random numbers in pairs; thus,
18813every other call to this function will be especially fast. 18813every other call to this function will be especially fast.
18814 18814
18815If @expr{M} is an error form 18815If @expr{M} is an error form
18816@texline @math{m} @code{+/-} @math{\sigma} 18816@texline @math{m} @code{+/-} @math{\sigma}
18817@infoline @samp{m +/- s} 18817@infoline @samp{m +/- s}
18818where @var{m} and 18818where @var{m} and
18819@texline @math{\sigma} 18819@texline @math{\sigma}
18820@infoline @var{s} 18820@infoline @var{s}
18821are both real numbers, the result uses a Gaussian distribution with mean 18821are both real numbers, the result uses a Gaussian distribution with mean
18822@var{m} and standard deviation 18822@var{m} and standard deviation
18823@texline @math{\sigma}. 18823@texline @math{\sigma}.
18824@infoline @var{s}. 18824@infoline @var{s}.
18825 18825
@@ -18912,7 +18912,7 @@ Computer Programming}, Volume II, contains a thorough description
18912of the theory of random number generators and their measurement and 18912of the theory of random number generators and their measurement and
18913characterization. 18913characterization.
18914 18914
18915If @code{RandSeed} has no stored value, Calc calls Emacs' built-in 18915If @code{RandSeed} has no stored value, Calc calls Emacs's built-in
18916@code{random} function to get a stream of random numbers, which it 18916@code{random} function to get a stream of random numbers, which it
18917then treats in various ways to avoid problems inherent in the simple 18917then treats in various ways to avoid problems inherent in the simple
18918random number generators that many systems use to implement @code{random}. 18918random number generators that many systems use to implement @code{random}.
@@ -18932,9 +18932,9 @@ generators that are typically used to implement @code{random}.
18932 18932
18933If @code{RandSeed} contains an integer, Calc uses this integer to 18933If @code{RandSeed} contains an integer, Calc uses this integer to
18934seed an ``additive congruential'' method (Knuth's algorithm 3.2.2A, 18934seed an ``additive congruential'' method (Knuth's algorithm 3.2.2A,
18935computing 18935computing
18936@texline @math{X_{n-55} - X_{n-24}}. 18936@texline @math{X_{n-55} - X_{n-24}}.
18937@infoline @expr{X_n-55 - X_n-24}). 18937@infoline @expr{X_n-55 - X_n-24}).
18938This method expands the seed 18938This method expands the seed
18939value into a large table which is maintained internally; the variable 18939value into a large table which is maintained internally; the variable
18940@code{RandSeed} is changed from, e.g., 42 to the vector @expr{[42]} 18940@code{RandSeed} is changed from, e.g., 42 to the vector @expr{[42]}
@@ -18970,18 +18970,18 @@ value.
18970To create a random floating-point number with precision @var{p}, Calc 18970To create a random floating-point number with precision @var{p}, Calc
18971simply creates a random @var{p}-digit integer and multiplies by 18971simply creates a random @var{p}-digit integer and multiplies by
18972@texline @math{10^{-p}}. 18972@texline @math{10^{-p}}.
18973@infoline @expr{10^-p}. 18973@infoline @expr{10^-p}.
18974The resulting random numbers should be very clean, but note 18974The resulting random numbers should be very clean, but note
18975that relatively small numbers will have few significant random digits. 18975that relatively small numbers will have few significant random digits.
18976In other words, with a precision of 12, you will occasionally get 18976In other words, with a precision of 12, you will occasionally get
18977numbers on the order of 18977numbers on the order of
18978@texline @math{10^{-9}} 18978@texline @math{10^{-9}}
18979@infoline @expr{10^-9} 18979@infoline @expr{10^-9}
18980or 18980or
18981@texline @math{10^{-10}}, 18981@texline @math{10^{-10}},
18982@infoline @expr{10^-10}, 18982@infoline @expr{10^-10},
18983but those numbers will only have two or three random digits since they 18983but those numbers will only have two or three random digits since they
18984correspond to small integers times 18984correspond to small integers times
18985@texline @math{10^{-12}}. 18985@texline @math{10^{-12}}.
18986@infoline @expr{10^-12}. 18986@infoline @expr{10^-12}.
18987 18987
@@ -19032,7 +19032,7 @@ numbers.
19032@tindex egcd 19032@tindex egcd
19033The @kbd{k E} (@code{calc-extended-gcd}) [@code{egcd}] command computes 19033The @kbd{k E} (@code{calc-extended-gcd}) [@code{egcd}] command computes
19034the GCD of two integers @expr{x} and @expr{y} and returns a vector 19034the GCD of two integers @expr{x} and @expr{y} and returns a vector
19035@expr{[g, a, b]} where 19035@expr{[g, a, b]} where
19036@texline @math{g = \gcd(x,y) = a x + b y}. 19036@texline @math{g = \gcd(x,y) = a x + b y}.
19037@infoline @expr{g = gcd(x,y) = a x + b y}. 19037@infoline @expr{g = gcd(x,y) = a x + b y}.
19038 19038
@@ -19119,11 +19119,11 @@ functions.
19119@tindex stir1 19119@tindex stir1
19120@tindex stir2 19120@tindex stir2
19121The @kbd{k s} (@code{calc-stirling-number}) [@code{stir1}] command 19121The @kbd{k s} (@code{calc-stirling-number}) [@code{stir1}] command
19122computes a Stirling number of the first 19122computes a Stirling number of the first
19123@texline kind@tie{}@math{n \brack m}, 19123@texline kind@tie{}@math{n \brack m},
19124@infoline kind, 19124@infoline kind,
19125given two integers @expr{n} and @expr{m} on the stack. The @kbd{H k s} 19125given two integers @expr{n} and @expr{m} on the stack. The @kbd{H k s}
19126[@code{stir2}] command computes a Stirling number of the second 19126[@code{stir2}] command computes a Stirling number of the second
19127@texline kind@tie{}@math{n \brace m}. 19127@texline kind@tie{}@math{n \brace m}.
19128@infoline kind. 19128@infoline kind.
19129These are the number of @expr{m}-cycle permutations of @expr{n} objects, 19129These are the number of @expr{m}-cycle permutations of @expr{n} objects,
@@ -19202,7 +19202,7 @@ analogously finds the next prime less than a given number.
19202@pindex calc-totient 19202@pindex calc-totient
19203@tindex totient 19203@tindex totient
19204The @kbd{k t} (@code{calc-totient}) [@code{totient}] command computes the 19204The @kbd{k t} (@code{calc-totient}) [@code{totient}] command computes the
19205Euler ``totient'' 19205Euler ``totient''
19206@texline function@tie{}@math{\phi(n)}, 19206@texline function@tie{}@math{\phi(n)},
19207@infoline function, 19207@infoline function,
19208the number of integers less than @expr{n} which 19208the number of integers less than @expr{n} which
@@ -19277,7 +19277,7 @@ recover the original arguments but substitute a new value for @expr{x}.)
19277@tindex ltpc 19277@tindex ltpc
19278The @samp{utpc(x,v)} function uses the chi-square distribution with 19278The @samp{utpc(x,v)} function uses the chi-square distribution with
19279@texline @math{\nu} 19279@texline @math{\nu}
19280@infoline @expr{v} 19280@infoline @expr{v}
19281degrees of freedom. It is the probability that a model is 19281degrees of freedom. It is the probability that a model is
19282correct if its chi-square statistic is @expr{x}. 19282correct if its chi-square statistic is @expr{x}.
19283 19283
@@ -19293,10 +19293,10 @@ correct if its chi-square statistic is @expr{x}.
19293@end ignore 19293@end ignore
19294@tindex ltpf 19294@tindex ltpf
19295The @samp{utpf(F,v1,v2)} function uses the F distribution, used in 19295The @samp{utpf(F,v1,v2)} function uses the F distribution, used in
19296various statistical tests. The parameters 19296various statistical tests. The parameters
19297@texline @math{\nu_1} 19297@texline @math{\nu_1}
19298@infoline @expr{v1} 19298@infoline @expr{v1}
19299and 19299and
19300@texline @math{\nu_2} 19300@texline @math{\nu_2}
19301@infoline @expr{v2} 19301@infoline @expr{v2}
19302are the degrees of freedom in the numerator and denominator, 19302are the degrees of freedom in the numerator and denominator,
@@ -19314,9 +19314,9 @@ respectively, used in computing the statistic @expr{F}.
19314@end ignore 19314@end ignore
19315@tindex ltpn 19315@tindex ltpn
19316The @samp{utpn(x,m,s)} function uses a normal (Gaussian) distribution 19316The @samp{utpn(x,m,s)} function uses a normal (Gaussian) distribution
19317with mean @expr{m} and standard deviation 19317with mean @expr{m} and standard deviation
19318@texline @math{\sigma}. 19318@texline @math{\sigma}.
19319@infoline @expr{s}. 19319@infoline @expr{s}.
19320It is the probability that such a normal-distributed random variable 19320It is the probability that such a normal-distributed random variable
19321would exceed @expr{x}. 19321would exceed @expr{x}.
19322 19322
@@ -19347,20 +19347,20 @@ Poisson random events will occur.
19347@end ignore 19347@end ignore
19348@tindex ltpt 19348@tindex ltpt
19349The @samp{utpt(t,v)} function uses the Student's ``t'' distribution 19349The @samp{utpt(t,v)} function uses the Student's ``t'' distribution
19350with 19350with
19351@texline @math{\nu} 19351@texline @math{\nu}
19352@infoline @expr{v} 19352@infoline @expr{v}
19353degrees of freedom. It is the probability that a 19353degrees of freedom. It is the probability that a
19354t-distributed random variable will be greater than @expr{t}. 19354t-distributed random variable will be greater than @expr{t}.
19355(Note: This computes the distribution function 19355(Note: This computes the distribution function
19356@texline @math{A(t|\nu)} 19356@texline @math{A(t|\nu)}
19357@infoline @expr{A(t|v)} 19357@infoline @expr{A(t|v)}
19358where 19358where
19359@texline @math{A(0|\nu) = 1} 19359@texline @math{A(0|\nu) = 1}
19360@infoline @expr{A(0|v) = 1} 19360@infoline @expr{A(0|v) = 1}
19361and 19361and
19362@texline @math{A(\infty|\nu) \to 0}. 19362@texline @math{A(\infty|\nu) \to 0}.
19363@infoline @expr{A(inf|v) -> 0}. 19363@infoline @expr{A(inf|v) -> 0}.
19364The @code{UTPT} operation on the HP-48 uses a different definition which 19364The @code{UTPT} operation on the HP-48 uses a different definition which
19365returns half of Calc's value: @samp{UTPT(t,v) = .5*utpt(t,v)}.) 19365returns half of Calc's value: @samp{UTPT(t,v) = .5*utpt(t,v)}.)
19366 19366
@@ -19670,7 +19670,7 @@ prefix, if specified, must match the size of the vector. If the value on
19670the stack is a scalar, it is used for each element on the diagonal, and 19670the stack is a scalar, it is used for each element on the diagonal, and
19671the prefix argument is required. 19671the prefix argument is required.
19672 19672
19673To build a constant square matrix, e.g., a 19673To build a constant square matrix, e.g., a
19674@texline @math{3\times3} 19674@texline @math{3\times3}
19675@infoline 3x3 19675@infoline 3x3
19676matrix filled with ones, use @kbd{0 M-3 v d 1 +}, i.e., build a zero 19676matrix filled with ones, use @kbd{0 M-3 v d 1 +}, i.e., build a zero
@@ -19911,7 +19911,7 @@ command.
19911With the Hyperbolic flag, @kbd{H v l} [@code{mdims}] computes a vector 19911With the Hyperbolic flag, @kbd{H v l} [@code{mdims}] computes a vector
19912of the dimensions of a vector, matrix, or higher-order object. For 19912of the dimensions of a vector, matrix, or higher-order object. For
19913example, @samp{mdims([[a,b,c],[d,e,f]])} returns @samp{[2, 3]} since 19913example, @samp{mdims([[a,b,c],[d,e,f]])} returns @samp{[2, 3]} since
19914its argument is a 19914its argument is a
19915@texline @math{2\times3} 19915@texline @math{2\times3}
19916@infoline 2x3 19916@infoline 2x3
19917matrix. 19917matrix.
@@ -19945,17 +19945,17 @@ If the number of columns does not evenly divide the number of elements
19945in the vector, the last row will be short and the result will not be 19945in the vector, the last row will be short and the result will not be
19946suitable for use as a matrix. For example, with the matrix 19946suitable for use as a matrix. For example, with the matrix
19947@samp{[[1, 2], @w{[3, 4]}]} on the stack, @kbd{v a 4} produces 19947@samp{[[1, 2], @w{[3, 4]}]} on the stack, @kbd{v a 4} produces
19948@samp{[[1, 2, 3, 4]]} (a 19948@samp{[[1, 2, 3, 4]]} (a
19949@texline @math{1\times4} 19949@texline @math{1\times4}
19950@infoline 1x4 19950@infoline 1x4
19951matrix), @kbd{v a 1} produces @samp{[[1], [2], [3], [4]]} (a 19951matrix), @kbd{v a 1} produces @samp{[[1], [2], [3], [4]]} (a
19952@texline @math{4\times1} 19952@texline @math{4\times1}
19953@infoline 4x1 19953@infoline 4x1
19954matrix), @kbd{v a 2} produces @samp{[[1, 2], [3, 4]]} (the original 19954matrix), @kbd{v a 2} produces @samp{[[1, 2], [3, 4]]} (the original
19955@texline @math{2\times2} 19955@texline @math{2\times2}
19956@infoline 2x2 19956@infoline 2x2
19957matrix), @w{@kbd{v a 3}} produces @samp{[[1, 2, 3], [4]]} (not a 19957matrix), @w{@kbd{v a 3}} produces @samp{[[1, 2, 3], [4]]} (not a
19958matrix), and @kbd{v a 0} produces the flattened list 19958matrix), and @kbd{v a 0} produces the flattened list
19959@samp{[1, 2, @w{3, 4}]}. 19959@samp{[1, 2, @w{3, 4}]}.
19960 19960
19961@cindex Sorting data 19961@cindex Sorting data
@@ -20040,9 +20040,9 @@ If no prefix is given, then you will be prompted for a vector which
20040will be used to determine the bins. (If a positive integer is given at 20040will be used to determine the bins. (If a positive integer is given at
20041this prompt, it will be still treated as if it were given as a 20041this prompt, it will be still treated as if it were given as a
20042prefix.) Each bin will consist of the interval of numbers closest to 20042prefix.) Each bin will consist of the interval of numbers closest to
20043the corresponding number of this new vector; if the vector 20043the corresponding number of this new vector; if the vector
20044@expr{[a, b, c, ...]} is entered at the prompt, the bins will be 20044@expr{[a, b, c, ...]} is entered at the prompt, the bins will be
20045@expr{(-inf, (a+b)/2]}, @expr{((a+b)/2, (b+c)/2]}, etc. The result of 20045@expr{(-inf, (a+b)/2]}, @expr{((a+b)/2, (b+c)/2]}, etc. The result of
20046this command will be a vector counting how many elements of the 20046this command will be a vector counting how many elements of the
20047original vector are in each bin. 20047original vector are in each bin.
20048 20048
@@ -20313,10 +20313,10 @@ and only if it is in both of the input sets. Thus if the input
20313sets are disjoint, i.e., if they share no common elements, the result 20313sets are disjoint, i.e., if they share no common elements, the result
20314will be the empty vector @samp{[]}. Note that the characters @kbd{V} 20314will be the empty vector @samp{[]}. Note that the characters @kbd{V}
20315and @kbd{^} were chosen to be close to the conventional mathematical 20315and @kbd{^} were chosen to be close to the conventional mathematical
20316notation for set 20316notation for set
20317@texline union@tie{}(@math{A \cup B}) 20317@texline union@tie{}(@math{A \cup B})
20318@infoline union 20318@infoline union
20319and 20319and
20320@texline intersection@tie{}(@math{A \cap B}). 20320@texline intersection@tie{}(@math{A \cap B}).
20321@infoline intersection. 20321@infoline intersection.
20322 20322
@@ -20432,7 +20432,7 @@ the same set. The set may include positive infinity, but must
20432not include any negative numbers. The input is interpreted as a 20432not include any negative numbers. The input is interpreted as a
20433set of integers in the sense of @kbd{V F} (@code{vfloor}). Beware 20433set of integers in the sense of @kbd{V F} (@code{vfloor}). Beware
20434that a simple input like @samp{[100]} can result in a huge integer 20434that a simple input like @samp{[100]} can result in a huge integer
20435representation 20435representation
20436@texline (@math{2^{100}}, a 31-digit integer, in this case). 20436@texline (@math{2^{100}}, a 31-digit integer, in this case).
20437@infoline (@expr{2^100}, a 31-digit integer, in this case). 20437@infoline (@expr{2^100}, a 31-digit integer, in this case).
20438 20438
@@ -20544,10 +20544,10 @@ plus or minus infinity.
20544@cindex Mean of data values 20544@cindex Mean of data values
20545The @kbd{u M} (@code{calc-vector-mean}) [@code{vmean}] command 20545The @kbd{u M} (@code{calc-vector-mean}) [@code{vmean}] command
20546computes the average (arithmetic mean) of the data values. 20546computes the average (arithmetic mean) of the data values.
20547If the inputs are error forms 20547If the inputs are error forms
20548@texline @math{x \pm \sigma}, 20548@texline @math{x \pm \sigma},
20549@infoline @samp{x +/- s}, 20549@infoline @samp{x +/- s},
20550this is the weighted mean of the @expr{x} values with weights 20550this is the weighted mean of the @expr{x} values with weights
20551@texline @math{1 /\sigma^2}. 20551@texline @math{1 /\sigma^2}.
20552@infoline @expr{1 / s^2}. 20552@infoline @expr{1 / s^2}.
20553@tex 20553@tex
@@ -20558,9 +20558,9 @@ If the inputs are not error forms, this is simply the sum of the
20558values divided by the count of the values. 20558values divided by the count of the values.
20559 20559
20560Note that a plain number can be considered an error form with 20560Note that a plain number can be considered an error form with
20561error 20561error
20562@texline @math{\sigma = 0}. 20562@texline @math{\sigma = 0}.
20563@infoline @expr{s = 0}. 20563@infoline @expr{s = 0}.
20564If the input to @kbd{u M} is a mixture of 20564If the input to @kbd{u M} is a mixture of
20565plain numbers and error forms, the result is the mean of the 20565plain numbers and error forms, the result is the mean of the
20566plain numbers, ignoring all values with non-zero errors. (By the 20566plain numbers, ignoring all values with non-zero errors. (By the
@@ -20662,7 +20662,7 @@ for a vector of numbers simply by using the @kbd{A} command.
20662@cindex Standard deviation 20662@cindex Standard deviation
20663@cindex Sample statistics 20663@cindex Sample statistics
20664The @kbd{u S} (@code{calc-vector-sdev}) [@code{vsdev}] command 20664The @kbd{u S} (@code{calc-vector-sdev}) [@code{vsdev}] command
20665computes the standard 20665computes the standard
20666@texline deviation@tie{}@math{\sigma} 20666@texline deviation@tie{}@math{\sigma}
20667@infoline deviation 20667@infoline deviation
20668of the data values. If the values are error forms, the errors are used 20668of the data values. If the values are error forms, the errors are used
@@ -20677,9 +20677,9 @@ $$ \sigma^2 = {1 \over N - 1} \sum (x_i - \mu)^2 $$
20677This function also applies to distributions. The standard deviation 20677This function also applies to distributions. The standard deviation
20678of a single error form is simply the error part. The standard deviation 20678of a single error form is simply the error part. The standard deviation
20679of a continuous interval happens to equal the difference between the 20679of a continuous interval happens to equal the difference between the
20680limits, divided by 20680limits, divided by
20681@texline @math{\sqrt{12}}. 20681@texline @math{\sqrt{12}}.
20682@infoline @expr{sqrt(12)}. 20682@infoline @expr{sqrt(12)}.
20683The standard deviation of an integer interval is the same as the 20683The standard deviation of an integer interval is the same as the
20684standard deviation of a vector of those integers. 20684standard deviation of a vector of those integers.
20685 20685
@@ -20714,7 +20714,7 @@ population standard deviation of the equivalent vector of integers.
20714The @kbd{H u S} (@code{calc-vector-variance}) [@code{vvar}] and 20714The @kbd{H u S} (@code{calc-vector-variance}) [@code{vvar}] and
20715@kbd{H I u S} (@code{calc-vector-pop-variance}) [@code{vpvar}] 20715@kbd{H I u S} (@code{calc-vector-pop-variance}) [@code{vpvar}]
20716commands compute the variance of the data values. The variance 20716commands compute the variance of the data values. The variance
20717is the 20717is the
20718@texline square@tie{}@math{\sigma^2} 20718@texline square@tie{}@math{\sigma^2}
20719@infoline square 20719@infoline square
20720of the standard deviation, i.e., the sum of the 20720of the standard deviation, i.e., the sum of the
@@ -20738,7 +20738,7 @@ The functions in this section take two arguments, which must be
20738vectors of equal size. The vectors are each flattened in the same 20738vectors of equal size. The vectors are each flattened in the same
20739way as by the single-variable statistical functions. Given a numeric 20739way as by the single-variable statistical functions. Given a numeric
20740prefix argument of 1, these functions instead take one object from 20740prefix argument of 1, these functions instead take one object from
20741the stack, which must be an 20741the stack, which must be an
20742@texline @math{N\times2} 20742@texline @math{N\times2}
20743@infoline Nx2 20743@infoline Nx2
20744matrix of data values. Once again, variable names can be used in place 20744matrix of data values. Once again, variable names can be used in place
@@ -20996,7 +20996,7 @@ be prompted for the number of arguments to use.
20996If any argument to @kbd{V M} is a matrix, the operator is normally mapped 20996If any argument to @kbd{V M} is a matrix, the operator is normally mapped
20997across all elements of the matrix. For example, given the matrix 20997across all elements of the matrix. For example, given the matrix
20998@expr{[[1, -2, 3], [-4, 5, -6]]}, @kbd{V M A} takes six absolute values to 20998@expr{[[1, -2, 3], [-4, 5, -6]]}, @kbd{V M A} takes six absolute values to
20999produce another 20999produce another
21000@texline @math{3\times2} 21000@texline @math{3\times2}
21001@infoline 3x2 21001@infoline 3x2
21002matrix, @expr{[[1, 2, 3], [4, 5, 6]]}. 21002matrix, @expr{[[1, 2, 3], [4, 5, 6]]}.
@@ -21612,8 +21612,8 @@ entire four-term sum.
21612@pindex calc-break-selections 21612@pindex calc-break-selections
21613The @kbd{j b} (@code{calc-break-selections}) command controls a mode 21613The @kbd{j b} (@code{calc-break-selections}) command controls a mode
21614in which the ``deep structure'' of these associative formulas shows 21614in which the ``deep structure'' of these associative formulas shows
21615through. Calc actually stores the above formulas as 21615through. Calc actually stores the above formulas as
21616@samp{((a + b) - c) + d} and @samp{x * (y * z)}. (Note that for certain 21616@samp{((a + b) - c) + d} and @samp{x * (y * z)}. (Note that for certain
21617obscure reasons, by default Calc treats multiplication as 21617obscure reasons, by default Calc treats multiplication as
21618right-associative.) Once you have enabled @kbd{j b} mode, selecting 21618right-associative.) Once you have enabled @kbd{j b} mode, selecting
21619with the cursor on the @samp{-} sign would only select the @samp{a + b - 21619with the cursor on the @samp{-} sign would only select the @samp{a + b -
@@ -21903,7 +21903,7 @@ of our sample formula by selecting it and pressing @kbd{n}
21903@end smallexample 21903@end smallexample
21904 21904
21905Unselecting the sub-formula reveals that the minus sign, which would 21905Unselecting the sub-formula reveals that the minus sign, which would
21906normally have cancelled out with the subtraction automatically, has 21906normally have canceled out with the subtraction automatically, has
21907not been able to do so because the subtraction was not part of the 21907not been able to do so because the subtraction was not part of the
21908selected portion. Pressing @kbd{=} (@code{calc-evaluate}) or doing 21908selected portion. Pressing @kbd{=} (@code{calc-evaluate}) or doing
21909any other mathematical operation on the whole formula will cause it 21909any other mathematical operation on the whole formula will cause it
@@ -22098,7 +22098,7 @@ of a quotient you can call it with a zero prefix: @kbd{C-u 0 j *}. For
22098example, if the formula on the stack is @samp{1 / (sqrt(a) + 1)}, you may 22098example, if the formula on the stack is @samp{1 / (sqrt(a) + 1)}, you may
22099wish to eliminate the square root in the denominator by multiplying 22099wish to eliminate the square root in the denominator by multiplying
22100the top and bottom by @samp{sqrt(a) - 1}. If you did this simply by using 22100the top and bottom by @samp{sqrt(a) - 1}. If you did this simply by using
22101a simple @kbd{j *} command, you would get 22101a simple @kbd{j *} command, you would get
22102@samp{(sqrt(a)-1)/ (sqrt(a) (sqrt(a) - 1) + sqrt(a) - 1)}. Instead, 22102@samp{(sqrt(a)-1)/ (sqrt(a) (sqrt(a) - 1) + sqrt(a) - 1)}. Instead,
22103you would probably want to use @kbd{C-u 0 j *}, which would expand the 22103you would probably want to use @kbd{C-u 0 j *}, which would expand the
22104bottom and give you the desired result @samp{(sqrt(a)-1)/(a-1)}. More 22104bottom and give you the desired result @samp{(sqrt(a)-1)/(a-1)}. More
@@ -22405,7 +22405,7 @@ The most basic default simplification is the evaluation of functions.
22405For example, @expr{2 + 3} is evaluated to @expr{5}, and @expr{@tfn{sqrt}(9)} 22405For example, @expr{2 + 3} is evaluated to @expr{5}, and @expr{@tfn{sqrt}(9)}
22406is evaluated to @expr{3}. Evaluation does not occur if the arguments 22406is evaluated to @expr{3}. Evaluation does not occur if the arguments
22407to a function are somehow of the wrong type @expr{@tfn{tan}([2,3,4])}), 22407to a function are somehow of the wrong type @expr{@tfn{tan}([2,3,4])}),
22408range (@expr{@tfn{tan}(90)}), or number (@expr{@tfn{tan}(3,5)}), 22408range (@expr{@tfn{tan}(90)}), or number (@expr{@tfn{tan}(3,5)}),
22409or if the function name is not recognized (@expr{@tfn{f}(5)}), or if 22409or if the function name is not recognized (@expr{@tfn{f}(5)}), or if
22410Symbolic mode (@pxref{Symbolic Mode}) prevents evaluation 22410Symbolic mode (@pxref{Symbolic Mode}) prevents evaluation
22411(@expr{@tfn{sqrt}(2)}). 22411(@expr{@tfn{sqrt}(2)}).
@@ -22452,7 +22452,7 @@ Arithmetic operators like @kbd{+} and @kbd{*} always take two
22452arguments in Calc's internal form. Sums and products of three or 22452arguments in Calc's internal form. Sums and products of three or
22453more terms are arranged by the associative law of algebra into 22453more terms are arranged by the associative law of algebra into
22454a left-associative form for sums, @expr{((a + b) + c) + d}, and 22454a left-associative form for sums, @expr{((a + b) + c) + d}, and
22455(by default) a right-associative form for products, 22455(by default) a right-associative form for products,
22456@expr{a * (b * (c * d))}. Formulas like @expr{(a + b) + (c + d)} are 22456@expr{a * (b * (c * d))}. Formulas like @expr{(a + b) + (c + d)} are
22457rearranged to left-associative form, though this rarely matters since 22457rearranged to left-associative form, though this rarely matters since
22458Calc's algebra commands are designed to hide the inner structure of sums 22458Calc's algebra commands are designed to hide the inner structure of sums
@@ -22533,7 +22533,7 @@ The product @expr{a (b + c)} is distributed over the sum only if
22533rewritten to @expr{a (c - b)}. 22533rewritten to @expr{a (c - b)}.
22534 22534
22535The distributive law of products and powers is used for adjacent 22535The distributive law of products and powers is used for adjacent
22536terms of the product: @expr{x^a x^b} goes to 22536terms of the product: @expr{x^a x^b} goes to
22537@texline @math{x^{a+b}} 22537@texline @math{x^{a+b}}
22538@infoline @expr{x^(a+b)} 22538@infoline @expr{x^(a+b)}
22539where @expr{a} is a number, or an implicit 1 (as in @expr{x}), 22539where @expr{a} is a number, or an implicit 1 (as in @expr{x}),
@@ -22544,9 +22544,9 @@ If the sum of the powers is zero, the product is simplified to
22544@expr{1} or to @samp{idn(1)} if Matrix mode is enabled. 22544@expr{1} or to @samp{idn(1)} if Matrix mode is enabled.
22545 22545
22546The product of a negative power times anything but another negative 22546The product of a negative power times anything but another negative
22547power is changed to use division: 22547power is changed to use division:
22548@texline @math{x^{-2} y} 22548@texline @math{x^{-2} y}
22549@infoline @expr{x^(-2) y} 22549@infoline @expr{x^(-2) y}
22550goes to @expr{y / x^2} unless Matrix mode is 22550goes to @expr{y / x^2} unless Matrix mode is
22551in effect and neither @expr{x} nor @expr{y} are scalar (in which 22551in effect and neither @expr{x} nor @expr{y} are scalar (in which
22552case it is considered unsafe to rearrange the order of the terms). 22552case it is considered unsafe to rearrange the order of the terms).
@@ -22568,13 +22568,13 @@ The quotient @expr{x / 0} is left unsimplified or changed to an
22568infinite quantity, as directed by the current infinite mode. 22568infinite quantity, as directed by the current infinite mode.
22569@xref{Infinite Mode}. 22569@xref{Infinite Mode}.
22570 22570
22571The expression 22571The expression
22572@texline @math{a / b^{-c}} 22572@texline @math{a / b^{-c}}
22573@infoline @expr{a / b^(-c)} 22573@infoline @expr{a / b^(-c)}
22574is changed to @expr{a b^c}, where @expr{-c} is any negative-looking 22574is changed to @expr{a b^c}, where @expr{-c} is any negative-looking
22575power. Also, @expr{1 / b^c} is changed to 22575power. Also, @expr{1 / b^c} is changed to
22576@texline @math{b^{-c}} 22576@texline @math{b^{-c}}
22577@infoline @expr{b^(-c)} 22577@infoline @expr{b^(-c)}
22578for any power @expr{c}. 22578for any power @expr{c}.
22579 22579
22580Also, @expr{(-a) / b} and @expr{a / (-b)} go to @expr{-(a/b)}; 22580Also, @expr{(-a) / b} and @expr{a / (-b)} go to @expr{-(a/b)};
@@ -22590,7 +22590,7 @@ described for multiplication.
22590 22590
22591Quotients of products cancel only in the leading terms of the 22591Quotients of products cancel only in the leading terms of the
22592numerator and denominator. In other words, @expr{a x b / a y b} 22592numerator and denominator. In other words, @expr{a x b / a y b}
22593is cancelled to @expr{x b / y b} but not to @expr{x / y}. Once 22593is canceled to @expr{x b / y b} but not to @expr{x / y}. Once
22594again this is because full cancellation can be slow; use @kbd{a s} 22594again this is because full cancellation can be slow; use @kbd{a s}
22595to cancel all terms of the quotient. 22595to cancel all terms of the quotient.
22596 22596
@@ -22614,22 +22614,22 @@ are distributed to @expr{a^c b^c}, @expr{a^c / b^c} only if @expr{c}
22614is an integer, or if either @expr{a} or @expr{b} are nonnegative 22614is an integer, or if either @expr{a} or @expr{b} are nonnegative
22615real numbers. Powers of powers @expr{(a^b)^c} are simplified to 22615real numbers. Powers of powers @expr{(a^b)^c} are simplified to
22616@texline @math{a^{b c}} 22616@texline @math{a^{b c}}
22617@infoline @expr{a^(b c)} 22617@infoline @expr{a^(b c)}
22618only when @expr{c} is an integer and @expr{b c} also 22618only when @expr{c} is an integer and @expr{b c} also
22619evaluates to an integer. Without these restrictions these simplifications 22619evaluates to an integer. Without these restrictions these simplifications
22620would not be safe because of problems with principal values. 22620would not be safe because of problems with principal values.
22621(In other words, 22621(In other words,
22622@texline @math{((-3)^{1/2})^2} 22622@texline @math{((-3)^{1/2})^2}
22623@infoline @expr{((-3)^1:2)^2} 22623@infoline @expr{((-3)^1:2)^2}
22624is safe to simplify, but 22624is safe to simplify, but
22625@texline @math{((-3)^2)^{1/2}} 22625@texline @math{((-3)^2)^{1/2}}
22626@infoline @expr{((-3)^2)^1:2} 22626@infoline @expr{((-3)^2)^1:2}
22627is not.) @xref{Declarations}, for ways to inform Calc that your 22627is not.) @xref{Declarations}, for ways to inform Calc that your
22628variables satisfy these requirements. 22628variables satisfy these requirements.
22629 22629
22630As a special case of this rule, @expr{@tfn{sqrt}(x)^n} is simplified to 22630As a special case of this rule, @expr{@tfn{sqrt}(x)^n} is simplified to
22631@texline @math{x^{n/2}} 22631@texline @math{x^{n/2}}
22632@infoline @expr{x^(n/2)} 22632@infoline @expr{x^(n/2)}
22633only for even integers @expr{n}. 22633only for even integers @expr{n}.
22634 22634
22635If @expr{a} is known to be real, @expr{b} is an even integer, and 22635If @expr{a} is known to be real, @expr{b} is an even integer, and
@@ -22642,13 +22642,13 @@ for any negative-looking expression @expr{-a}.
22642 22642
22643Square roots @expr{@tfn{sqrt}(x)} generally act like one-half powers 22643Square roots @expr{@tfn{sqrt}(x)} generally act like one-half powers
22644@texline @math{x^{1:2}} 22644@texline @math{x^{1:2}}
22645@infoline @expr{x^1:2} 22645@infoline @expr{x^1:2}
22646for the purposes of the above-listed simplifications. 22646for the purposes of the above-listed simplifications.
22647 22647
22648Also, note that 22648Also, note that
22649@texline @math{1 / x^{1:2}} 22649@texline @math{1 / x^{1:2}}
22650@infoline @expr{1 / x^1:2} 22650@infoline @expr{1 / x^1:2}
22651is changed to 22651is changed to
22652@texline @math{x^{-1:2}}, 22652@texline @math{x^{-1:2}},
22653@infoline @expr{x^(-1:2)}, 22653@infoline @expr{x^(-1:2)},
22654but @expr{1 / @tfn{sqrt}(x)} is left alone. 22654but @expr{1 / @tfn{sqrt}(x)} is left alone.
@@ -22660,9 +22660,9 @@ but @expr{1 / @tfn{sqrt}(x)} is left alone.
22660Generic identity matrices (@pxref{Matrix Mode}) are simplified by the 22660Generic identity matrices (@pxref{Matrix Mode}) are simplified by the
22661following rules: @expr{@tfn{idn}(a) + b} to @expr{a + b} if @expr{b} 22661following rules: @expr{@tfn{idn}(a) + b} to @expr{a + b} if @expr{b}
22662is provably scalar, or expanded out if @expr{b} is a matrix; 22662is provably scalar, or expanded out if @expr{b} is a matrix;
22663@expr{@tfn{idn}(a) + @tfn{idn}(b)} to @expr{@tfn{idn}(a + b)}; 22663@expr{@tfn{idn}(a) + @tfn{idn}(b)} to @expr{@tfn{idn}(a + b)};
22664@expr{-@tfn{idn}(a)} to @expr{@tfn{idn}(-a)}; @expr{a @tfn{idn}(b)} to 22664@expr{-@tfn{idn}(a)} to @expr{@tfn{idn}(-a)}; @expr{a @tfn{idn}(b)} to
22665@expr{@tfn{idn}(a b)} if @expr{a} is provably scalar, or to @expr{a b} 22665@expr{@tfn{idn}(a b)} if @expr{a} is provably scalar, or to @expr{a b}
22666if @expr{a} is provably non-scalar; @expr{@tfn{idn}(a) @tfn{idn}(b)} to 22666if @expr{a} is provably non-scalar; @expr{@tfn{idn}(a) @tfn{idn}(b)} to
22667@expr{@tfn{idn}(a b)}; analogous simplifications for quotients involving 22667@expr{@tfn{idn}(a b)}; analogous simplifications for quotients involving
22668@code{idn}; and @expr{@tfn{idn}(a)^n} to @expr{@tfn{idn}(a^n)} where 22668@code{idn}; and @expr{@tfn{idn}(a)^n} to @expr{@tfn{idn}(a^n)} where
@@ -22683,7 +22683,7 @@ The expression @expr{@tfn{abs}(-x)} changes to @expr{@tfn{abs}(x)}.
22683The expression @expr{@tfn{abs}(@tfn{abs}(x))} changes to 22683The expression @expr{@tfn{abs}(@tfn{abs}(x))} changes to
22684@expr{@tfn{abs}(x)}; in fact, @expr{@tfn{abs}(x)} changes to @expr{x} or 22684@expr{@tfn{abs}(x)}; in fact, @expr{@tfn{abs}(x)} changes to @expr{x} or
22685@expr{-x} if @expr{x} is provably nonnegative or nonpositive 22685@expr{-x} if @expr{x} is provably nonnegative or nonpositive
22686(@pxref{Declarations}). 22686(@pxref{Declarations}).
22687 22687
22688While most functions do not recognize the variable @code{i} as an 22688While most functions do not recognize the variable @code{i} as an
22689imaginary number, the @code{arg} function does handle the two cases 22689imaginary number, the @code{arg} function does handle the two cases
@@ -22693,7 +22693,7 @@ The expression @expr{@tfn{conj}(@tfn{conj}(x))} simplifies to @expr{x}.
22693Various other expressions involving @code{conj}, @code{re}, and 22693Various other expressions involving @code{conj}, @code{re}, and
22694@code{im} are simplified, especially if some of the arguments are 22694@code{im} are simplified, especially if some of the arguments are
22695provably real or involve the constant @code{i}. For example, 22695provably real or involve the constant @code{i}. For example,
22696@expr{@tfn{conj}(a + b i)} is changed to 22696@expr{@tfn{conj}(a + b i)} is changed to
22697@expr{@tfn{conj}(a) - @tfn{conj}(b) i}, or to @expr{a - b i} if @expr{a} 22697@expr{@tfn{conj}(a) - @tfn{conj}(b) i}, or to @expr{a - b i} if @expr{a}
22698and @expr{b} are known to be real. 22698and @expr{b} are known to be real.
22699 22699
@@ -22810,7 +22810,7 @@ the distributive law. For example, @expr{a x^2 b / c x^3 d} will
22810cancel @expr{x^2} from the top and bottom to get @expr{a b / c x d}. 22810cancel @expr{x^2} from the top and bottom to get @expr{a b / c x d}.
22811(The terms in the denominator will then be rearranged to @expr{c d x} 22811(The terms in the denominator will then be rearranged to @expr{c d x}
22812as described above.) If there is any common integer or fractional 22812as described above.) If there is any common integer or fractional
22813factor in the numerator and denominator, it is cancelled out; 22813factor in the numerator and denominator, it is canceled out;
22814for example, @expr{(4 x + 6) / 8 x} simplifies to @expr{(2 x + 3) / 4 x}. 22814for example, @expr{(4 x + 6) / 8 x} simplifies to @expr{(2 x + 3) / 4 x}.
22815 22815
22816Non-constant common factors are not found even by @kbd{a s}. To 22816Non-constant common factors are not found even by @kbd{a s}. To
@@ -22836,7 +22836,7 @@ several ways. (Note that these will be left unevaluated only in
22836Symbolic mode.) First, square integer or rational factors are 22836Symbolic mode.) First, square integer or rational factors are
22837pulled out so that @expr{@tfn{sqrt}(8)} is rewritten as 22837pulled out so that @expr{@tfn{sqrt}(8)} is rewritten as
22838@texline @math{2\,@tfn{sqrt}(2)}. 22838@texline @math{2\,@tfn{sqrt}(2)}.
22839@infoline @expr{2 sqrt(2)}. 22839@infoline @expr{2 sqrt(2)}.
22840Conceptually speaking this implies factoring the argument into primes 22840Conceptually speaking this implies factoring the argument into primes
22841and moving pairs of primes out of the square root, but for reasons of 22841and moving pairs of primes out of the square root, but for reasons of
22842efficiency Calc only looks for primes up to 29. 22842efficiency Calc only looks for primes up to 29.
@@ -22858,7 +22858,7 @@ example, @samp{(x - 23) % 10} is simplified to @samp{(x + 7) % 10}.
22858 22858
22859If the argument is multiplied by a constant, and this constant 22859If the argument is multiplied by a constant, and this constant
22860has a common integer divisor with the modulus, then this factor is 22860has a common integer divisor with the modulus, then this factor is
22861cancelled out. For example, @samp{12 x % 15} is changed to 22861canceled out. For example, @samp{12 x % 15} is changed to
22862@samp{3 (4 x % 5)} by factoring out 3. Also, @samp{(12 x + 1) % 15} 22862@samp{3 (4 x % 5)} by factoring out 3. Also, @samp{(12 x + 1) % 15}
22863is changed to @samp{3 ((4 x + 1:3) % 5)}. While these forms may 22863is changed to @samp{3 ((4 x + 1:3) % 5)}. While these forms may
22864not seem ``simpler,'' they allow Calc to discover useful information 22864not seem ``simpler,'' they allow Calc to discover useful information
@@ -22879,7 +22879,7 @@ declared to be an integer.
22879Trigonometric functions are simplified in several ways. Whenever a 22879Trigonometric functions are simplified in several ways. Whenever a
22880products of two trigonometric functions can be replaced by a single 22880products of two trigonometric functions can be replaced by a single
22881function, the replacement is made; for example, 22881function, the replacement is made; for example,
22882@expr{@tfn{tan}(x) @tfn{cos}(x)} is simplified to @expr{@tfn{sin}(x)}. 22882@expr{@tfn{tan}(x) @tfn{cos}(x)} is simplified to @expr{@tfn{sin}(x)}.
22883Reciprocals of trigonometric functions are replaced by their reciprocal 22883Reciprocals of trigonometric functions are replaced by their reciprocal
22884function; for example, @expr{1/@tfn{sec}(x)} is simplified to 22884function; for example, @expr{1/@tfn{sec}(x)} is simplified to
22885@expr{@tfn{cos}(x)}. The corresponding simplifications for the 22885@expr{@tfn{cos}(x)}. The corresponding simplifications for the
@@ -22887,7 +22887,7 @@ hyperbolic functions are also handled.
22887 22887
22888Trigonometric functions of their inverse functions are 22888Trigonometric functions of their inverse functions are
22889simplified. The expression @expr{@tfn{sin}(@tfn{arcsin}(x))} is 22889simplified. The expression @expr{@tfn{sin}(@tfn{arcsin}(x))} is
22890simplified to @expr{x}, and similarly for @code{cos} and @code{tan}. 22890simplified to @expr{x}, and similarly for @code{cos} and @code{tan}.
22891Trigonometric functions of inverses of different trigonometric 22891Trigonometric functions of inverses of different trigonometric
22892functions can also be simplified, as in @expr{@tfn{sin}(@tfn{arccos}(x))} 22892functions can also be simplified, as in @expr{@tfn{sin}(@tfn{arccos}(x))}
22893to @expr{@tfn{sqrt}(1 - x^2)}. 22893to @expr{@tfn{sqrt}(1 - x^2)}.
@@ -22905,30 +22905,30 @@ No simplifications for inverse trigonometric and hyperbolic
22905functions are known, except for negative arguments of @code{arcsin}, 22905functions are known, except for negative arguments of @code{arcsin},
22906@code{arctan}, @code{arcsinh}, and @code{arctanh}. Note that 22906@code{arctan}, @code{arcsinh}, and @code{arctanh}. Note that
22907@expr{@tfn{arcsin}(@tfn{sin}(x))} can @emph{not} safely change to 22907@expr{@tfn{arcsin}(@tfn{sin}(x))} can @emph{not} safely change to
22908@expr{x}, since this only correct within an integer multiple of 22908@expr{x}, since this only correct within an integer multiple of
22909@texline @math{2 \pi} 22909@texline @math{2 \pi}
22910@infoline @expr{2 pi} 22910@infoline @expr{2 pi}
22911radians or 360 degrees. However, @expr{@tfn{arcsinh}(@tfn{sinh}(x))} is 22911radians or 360 degrees. However, @expr{@tfn{arcsinh}(@tfn{sinh}(x))} is
22912simplified to @expr{x} if @expr{x} is known to be real. 22912simplified to @expr{x} if @expr{x} is known to be real.
22913 22913
22914Several simplifications that apply to logarithms and exponentials 22914Several simplifications that apply to logarithms and exponentials
22915are that @expr{@tfn{exp}(@tfn{ln}(x))}, 22915are that @expr{@tfn{exp}(@tfn{ln}(x))},
22916@texline @tfn{e}@math{^{\ln(x)}}, 22916@texline @tfn{e}@math{^{\ln(x)}},
22917@infoline @expr{e^@tfn{ln}(x)}, 22917@infoline @expr{e^@tfn{ln}(x)},
22918and 22918and
22919@texline @math{10^{{\rm log10}(x)}} 22919@texline @math{10^{{\rm log10}(x)}}
22920@infoline @expr{10^@tfn{log10}(x)} 22920@infoline @expr{10^@tfn{log10}(x)}
22921all reduce to @expr{x}. Also, @expr{@tfn{ln}(@tfn{exp}(x))}, etc., can 22921all reduce to @expr{x}. Also, @expr{@tfn{ln}(@tfn{exp}(x))}, etc., can
22922reduce to @expr{x} if @expr{x} is provably real. The form 22922reduce to @expr{x} if @expr{x} is provably real. The form
22923@expr{@tfn{exp}(x)^y} is simplified to @expr{@tfn{exp}(x y)}. If @expr{x} 22923@expr{@tfn{exp}(x)^y} is simplified to @expr{@tfn{exp}(x y)}. If @expr{x}
22924is a suitable multiple of 22924is a suitable multiple of
22925@texline @math{\pi i} 22925@texline @math{\pi i}
22926@infoline @expr{pi i} 22926@infoline @expr{pi i}
22927(as described above for the trigonometric functions), then 22927(as described above for the trigonometric functions), then
22928@expr{@tfn{exp}(x)} or @expr{e^x} will be expanded. Finally, 22928@expr{@tfn{exp}(x)} or @expr{e^x} will be expanded. Finally,
22929@expr{@tfn{ln}(x)} is simplified to a form involving @code{pi} and 22929@expr{@tfn{ln}(x)} is simplified to a form involving @code{pi} and
22930@code{i} where @expr{x} is provably negative, positive imaginary, or 22930@code{i} where @expr{x} is provably negative, positive imaginary, or
22931negative imaginary. 22931negative imaginary.
22932 22932
22933The error functions @code{erf} and @code{erfc} are simplified when 22933The error functions @code{erf} and @code{erfc} are simplified when
22934their arguments are negative-looking or are calls to the @code{conj} 22934their arguments are negative-looking or are calls to the @code{conj}
@@ -22938,13 +22938,13 @@ function.
22938\bigskip 22938\bigskip
22939@end tex 22939@end tex
22940 22940
22941Equations and inequalities are simplified by cancelling factors 22941Equations and inequalities are simplified by canceling factors
22942of products, quotients, or sums on both sides. Inequalities 22942of products, quotients, or sums on both sides. Inequalities
22943change sign if a negative multiplicative factor is cancelled. 22943change sign if a negative multiplicative factor is canceled.
22944Non-constant multiplicative factors as in @expr{a b = a c} are 22944Non-constant multiplicative factors as in @expr{a b = a c} are
22945cancelled from equations only if they are provably nonzero (generally 22945canceled from equations only if they are provably nonzero (generally
22946because they were declared so; @pxref{Declarations}). Factors 22946because they were declared so; @pxref{Declarations}). Factors
22947are cancelled from inequalities only if they are nonzero and their 22947are canceled from inequalities only if they are nonzero and their
22948sign is known. 22948sign is known.
22949 22949
22950Simplification also replaces an equation or inequality with 22950Simplification also replaces an equation or inequality with
@@ -23006,18 +23006,18 @@ values of @expr{x} in a certain range; outside that range, values
23006are folded down to the 360-degree range that the inverse trigonometric 23006are folded down to the 360-degree range that the inverse trigonometric
23007functions always produce. 23007functions always produce.
23008 23008
23009Powers of powers @expr{(x^a)^b} are simplified to 23009Powers of powers @expr{(x^a)^b} are simplified to
23010@texline @math{x^{a b}} 23010@texline @math{x^{a b}}
23011@infoline @expr{x^(a b)} 23011@infoline @expr{x^(a b)}
23012for all @expr{a} and @expr{b}. These results will be valid only 23012for all @expr{a} and @expr{b}. These results will be valid only
23013in a restricted range of @expr{x}; for example, in 23013in a restricted range of @expr{x}; for example, in
23014@texline @math{(x^2)^{1:2}} 23014@texline @math{(x^2)^{1:2}}
23015@infoline @expr{(x^2)^1:2} 23015@infoline @expr{(x^2)^1:2}
23016the powers cancel to get @expr{x}, which is valid for positive values 23016the powers cancel to get @expr{x}, which is valid for positive values
23017of @expr{x} but not for negative or complex values. 23017of @expr{x} but not for negative or complex values.
23018 23018
23019Similarly, @expr{@tfn{sqrt}(x^a)} and @expr{@tfn{sqrt}(x)^a} are both 23019Similarly, @expr{@tfn{sqrt}(x^a)} and @expr{@tfn{sqrt}(x)^a} are both
23020simplified (possibly unsafely) to 23020simplified (possibly unsafely) to
23021@texline @math{x^{a/2}}. 23021@texline @math{x^{a/2}}.
23022@infoline @expr{x^(a/2)}. 23022@infoline @expr{x^(a/2)}.
23023 23023
@@ -23027,7 +23027,7 @@ Forms like @expr{@tfn{sqrt}(1 - sin(x)^2)} are simplified to, e.g.,
23027 23027
23028Arguments of square roots are partially factored to look for 23028Arguments of square roots are partially factored to look for
23029squared terms that can be extracted. For example, 23029squared terms that can be extracted. For example,
23030@expr{@tfn{sqrt}(a^2 b^3 + a^3 b^2)} simplifies to 23030@expr{@tfn{sqrt}(a^2 b^3 + a^3 b^2)} simplifies to
23031@expr{a b @tfn{sqrt}(a+b)}. 23031@expr{a b @tfn{sqrt}(a+b)}.
23032 23032
23033The simplifications of @expr{@tfn{ln}(@tfn{exp}(x))}, 23033The simplifications of @expr{@tfn{ln}(@tfn{exp}(x))},
@@ -23035,9 +23035,9 @@ The simplifications of @expr{@tfn{ln}(@tfn{exp}(x))},
23035unsafe because of problems with principal values (although these 23035unsafe because of problems with principal values (although these
23036simplifications are safe if @expr{x} is known to be real). 23036simplifications are safe if @expr{x} is known to be real).
23037 23037
23038Common factors are cancelled from products on both sides of an 23038Common factors are canceled from products on both sides of an
23039equation, even if those factors may be zero: @expr{a x / b x} 23039equation, even if those factors may be zero: @expr{a x / b x}
23040to @expr{a / b}. Such factors are never cancelled from 23040to @expr{a / b}. Such factors are never canceled from
23041inequalities: Even @kbd{a e} is not bold enough to reduce 23041inequalities: Even @kbd{a e} is not bold enough to reduce
23042@expr{a x < b x} to @expr{a < b} (or @expr{a > b}, depending 23042@expr{a x < b x} to @expr{a < b} (or @expr{a > b}, depending
23043on whether you believe @expr{x} is positive or negative). 23043on whether you believe @expr{x} is positive or negative).
@@ -23071,7 +23071,7 @@ If units auto-ranging mode is enabled, products or quotients in
23071which the first argument is a number which is out of range for the 23071which the first argument is a number which is out of range for the
23072leading unit are modified accordingly. 23072leading unit are modified accordingly.
23073 23073
23074When cancelling and combining units in products and quotients, 23074When canceling and combining units in products and quotients,
23075Calc accounts for unit names that differ only in the prefix letter. 23075Calc accounts for unit names that differ only in the prefix letter.
23076For example, @samp{2 km m} is simplified to @samp{2000 m^2}. 23076For example, @samp{2 km m} is simplified to @samp{2000 m^2}.
23077However, compatible but different units like @code{ft} and @code{in} 23077However, compatible but different units like @code{ft} and @code{in}
@@ -23093,9 +23093,9 @@ number for an answer, then the quotient simplifies to that number.
23093 23093
23094For powers and square roots, the ``unsafe'' simplifications 23094For powers and square roots, the ``unsafe'' simplifications
23095@expr{(a b)^c} to @expr{a^c b^c}, @expr{(a/b)^c} to @expr{a^c / b^c}, 23095@expr{(a b)^c} to @expr{a^c b^c}, @expr{(a/b)^c} to @expr{a^c / b^c},
23096and @expr{(a^b)^c} to 23096and @expr{(a^b)^c} to
23097@texline @math{a^{b c}} 23097@texline @math{a^{b c}}
23098@infoline @expr{a^(b c)} 23098@infoline @expr{a^(b c)}
23099are done if the powers are real numbers. (These are safe in the context 23099are done if the powers are real numbers. (These are safe in the context
23100of units because all numbers involved can reasonably be assumed to be 23100of units because all numbers involved can reasonably be assumed to be
23101real.) 23101real.)
@@ -23108,12 +23108,12 @@ according to the previous paragraph. For example, @samp{acre^1.5}
23108is simplified by noting that @expr{1.5 = 3:2}, that @samp{acre} 23108is simplified by noting that @expr{1.5 = 3:2}, that @samp{acre}
23109is defined in terms of @samp{m^2}, and that the 2 in the power of 23109is defined in terms of @samp{m^2}, and that the 2 in the power of
23110@code{m} is a multiple of 2 in @expr{3:2}. Thus, @code{acre^1.5} is 23110@code{m} is a multiple of 2 in @expr{3:2}. Thus, @code{acre^1.5} is
23111replaced by approximately 23111replaced by approximately
23112@texline @math{(4046 m^2)^{1.5}} 23112@texline @math{(4046 m^2)^{1.5}}
23113@infoline @expr{(4046 m^2)^1.5}, 23113@infoline @expr{(4046 m^2)^1.5},
23114which is then changed to 23114which is then changed to
23115@texline @math{4046^{1.5} \, (m^2)^{1.5}}, 23115@texline @math{4046^{1.5} \, (m^2)^{1.5}},
23116@infoline @expr{4046^1.5 (m^2)^1.5}, 23116@infoline @expr{4046^1.5 (m^2)^1.5},
23117then to @expr{257440 m^3}. 23117then to @expr{257440 m^3}.
23118 23118
23119The functions @code{float}, @code{frac}, @code{clean}, @code{abs}, 23119The functions @code{float}, @code{frac}, @code{clean}, @code{abs},
@@ -23401,7 +23401,7 @@ answer!
23401 23401
23402If you use the @code{deriv} function directly in an algebraic formula, 23402If you use the @code{deriv} function directly in an algebraic formula,
23403you can write @samp{deriv(f,x,x0)} which represents the derivative 23403you can write @samp{deriv(f,x,x0)} which represents the derivative
23404of @expr{f} with respect to @expr{x}, evaluated at the point 23404of @expr{f} with respect to @expr{x}, evaluated at the point
23405@texline @math{x=x_0}. 23405@texline @math{x=x_0}.
23406@infoline @expr{x=x0}. 23406@infoline @expr{x=x0}.
23407 23407
@@ -23441,7 +23441,7 @@ respect to a prompted-for variable. The integrator is not guaranteed to
23441work for all integrable functions, but it is able to integrate several 23441work for all integrable functions, but it is able to integrate several
23442large classes of formulas. In particular, any polynomial or rational 23442large classes of formulas. In particular, any polynomial or rational
23443function (a polynomial divided by a polynomial) is acceptable. 23443function (a polynomial divided by a polynomial) is acceptable.
23444(Rational functions don't have to be in explicit quotient form, however; 23444(Rational functions don't have to be in explicit quotient form, however;
23445@texline @math{x/(1+x^{-2})} 23445@texline @math{x/(1+x^{-2})}
23446@infoline @expr{x/(1+x^-2)} 23446@infoline @expr{x/(1+x^-2)}
23447is not strictly a quotient of polynomials, but it is equivalent to 23447is not strictly a quotient of polynomials, but it is equivalent to
@@ -23472,7 +23472,7 @@ integral $\int_a^b f(x) \, dx$.
23472 23472
23473Please note that the current implementation of Calc's integrator sometimes 23473Please note that the current implementation of Calc's integrator sometimes
23474produces results that are significantly more complex than they need to 23474produces results that are significantly more complex than they need to
23475be. For example, the integral Calc finds for 23475be. For example, the integral Calc finds for
23476@texline @math{1/(x+\sqrt{x^2+1})} 23476@texline @math{1/(x+\sqrt{x^2+1})}
23477@infoline @expr{1/(x+sqrt(x^2+1))} 23477@infoline @expr{1/(x+sqrt(x^2+1))}
23478is several times more complicated than the answer Mathematica 23478is several times more complicated than the answer Mathematica
@@ -23480,11 +23480,11 @@ returns for the same input, although the two forms are numerically
23480equivalent. Also, any indefinite integral should be considered to have 23480equivalent. Also, any indefinite integral should be considered to have
23481an arbitrary constant of integration added to it, although Calc does not 23481an arbitrary constant of integration added to it, although Calc does not
23482write an explicit constant of integration in its result. For example, 23482write an explicit constant of integration in its result. For example,
23483Calc's solution for 23483Calc's solution for
23484@texline @math{1/(1+\tan x)} 23484@texline @math{1/(1+\tan x)}
23485@infoline @expr{1/(1+tan(x))} 23485@infoline @expr{1/(1+tan(x))}
23486differs from the solution given in the @emph{CRC Math Tables} by a 23486differs from the solution given in the @emph{CRC Math Tables} by a
23487constant factor of 23487constant factor of
23488@texline @math{\pi i / 2} 23488@texline @math{\pi i / 2}
23489@infoline @expr{pi i / 2}, 23489@infoline @expr{pi i / 2},
23490due to a different choice of constant of integration. 23490due to a different choice of constant of integration.
@@ -23544,9 +23544,9 @@ in your @code{IntegRules}.
23544@tindex Ei 23544@tindex Ei
23545As a more serious example, the expression @samp{exp(x)/x} cannot be 23545As a more serious example, the expression @samp{exp(x)/x} cannot be
23546integrated in terms of the standard functions, so the ``exponential 23546integrated in terms of the standard functions, so the ``exponential
23547integral'' function 23547integral'' function
23548@texline @math{{\rm Ei}(x)} 23548@texline @math{{\rm Ei}(x)}
23549@infoline @expr{Ei(x)} 23549@infoline @expr{Ei(x)}
23550was invented to describe it. 23550was invented to describe it.
23551We can get Calc to do this integral in terms of a made-up @code{Ei} 23551We can get Calc to do this integral in terms of a made-up @code{Ei}
23552function by adding the rule @samp{[integtry(exp(x)/x, x) := Ei(x)]} 23552function by adding the rule @samp{[integtry(exp(x)/x, x) := Ei(x)]}
@@ -23717,18 +23717,18 @@ form @expr{X = 0}.
23717 23717
23718This command also works for inequalities, as in @expr{y < 3x + 6}. 23718This command also works for inequalities, as in @expr{y < 3x + 6}.
23719Some inequalities cannot be solved where the analogous equation could 23719Some inequalities cannot be solved where the analogous equation could
23720be; for example, solving 23720be; for example, solving
23721@texline @math{a < b \, c} 23721@texline @math{a < b \, c}
23722@infoline @expr{a < b c} 23722@infoline @expr{a < b c}
23723for @expr{b} is impossible 23723for @expr{b} is impossible
23724without knowing the sign of @expr{c}. In this case, @kbd{a S} will 23724without knowing the sign of @expr{c}. In this case, @kbd{a S} will
23725produce the result 23725produce the result
23726@texline @math{b \mathbin{\hbox{\code{!=}}} a/c} 23726@texline @math{b \mathbin{\hbox{\code{!=}}} a/c}
23727@infoline @expr{b != a/c} 23727@infoline @expr{b != a/c}
23728(using the not-equal-to operator) to signify that the direction of the 23728(using the not-equal-to operator) to signify that the direction of the
23729inequality is now unknown. The inequality 23729inequality is now unknown. The inequality
23730@texline @math{a \le b \, c} 23730@texline @math{a \le b \, c}
23731@infoline @expr{a <= b c} 23731@infoline @expr{a <= b c}
23732is not even partially solved. @xref{Declarations}, for a way to tell 23732is not even partially solved. @xref{Declarations}, for a way to tell
23733Calc that the signs of the variables in a formula are in fact known. 23733Calc that the signs of the variables in a formula are in fact known.
23734 23734
@@ -24186,13 +24186,13 @@ value of the variable which minimizes the formula's value, along
24186with the minimum value itself. 24186with the minimum value itself.
24187 24187
24188Note that this command looks for a @emph{local} minimum. Many functions 24188Note that this command looks for a @emph{local} minimum. Many functions
24189have more than one minimum; some, like 24189have more than one minimum; some, like
24190@texline @math{x \sin x}, 24190@texline @math{x \sin x},
24191@infoline @expr{x sin(x)}, 24191@infoline @expr{x sin(x)},
24192have infinitely many. In fact, there is no easy way to define the 24192have infinitely many. In fact, there is no easy way to define the
24193``global'' minimum of 24193``global'' minimum of
24194@texline @math{x \sin x} 24194@texline @math{x \sin x}
24195@infoline @expr{x sin(x)} 24195@infoline @expr{x sin(x)}
24196but Calc can still locate any particular local minimum 24196but Calc can still locate any particular local minimum
24197for you. Calc basically goes downhill from the initial guess until it 24197for you. Calc basically goes downhill from the initial guess until it
24198finds a point at which the function's value is greater both to the left 24198finds a point at which the function's value is greater both to the left
@@ -24271,7 +24271,7 @@ to be determined. For a typical set of measured data there will be
24271no single @expr{m} and @expr{b} that exactly fit the data; in this 24271no single @expr{m} and @expr{b} that exactly fit the data; in this
24272case, Calc chooses values of the parameters that provide the closest 24272case, Calc chooses values of the parameters that provide the closest
24273possible fit. The model formula can be entered in various ways after 24273possible fit. The model formula can be entered in various ways after
24274the key sequence @kbd{a F} is pressed. 24274the key sequence @kbd{a F} is pressed.
24275 24275
24276If the letter @kbd{P} is pressed after @kbd{a F} but before the model 24276If the letter @kbd{P} is pressed after @kbd{a F} but before the model
24277description is entered, the data as well as the model formula will be 24277description is entered, the data as well as the model formula will be
@@ -24319,7 +24319,7 @@ the @dfn{parameters} of the model.
24319 24319
24320The @kbd{a F} command takes the data set to be fitted from the stack. 24320The @kbd{a F} command takes the data set to be fitted from the stack.
24321By default, it expects the data in the form of a matrix. For example, 24321By default, it expects the data in the form of a matrix. For example,
24322for a linear or polynomial fit, this would be a 24322for a linear or polynomial fit, this would be a
24323@texline @math{2\times N} 24323@texline @math{2\times N}
24324@infoline 2xN 24324@infoline 2xN
24325matrix where the first row is a list of @expr{x} values and the second 24325matrix where the first row is a list of @expr{x} values and the second
@@ -24327,10 +24327,10 @@ row has the corresponding @expr{y} values. For the multilinear fit
24327shown above, the matrix would have four rows (@expr{x_1}, @expr{x_2}, 24327shown above, the matrix would have four rows (@expr{x_1}, @expr{x_2},
24328@expr{x_3}, and @expr{y}, respectively). 24328@expr{x_3}, and @expr{y}, respectively).
24329 24329
24330If you happen to have an 24330If you happen to have an
24331@texline @math{N\times2} 24331@texline @math{N\times2}
24332@infoline Nx2 24332@infoline Nx2
24333matrix instead of a 24333matrix instead of a
24334@texline @math{2\times N} 24334@texline @math{2\times N}
24335@infoline 2xN 24335@infoline 2xN
24336matrix, just press @kbd{v t} first to transpose the matrix. 24336matrix, just press @kbd{v t} first to transpose the matrix.
@@ -24425,13 +24425,13 @@ $$ \chi^2 = \sum_{i=1}^N (y_i - (a + b x_i))^2 $$
24425which is clearly zero if @expr{a + b x} exactly fits all data points, 24425which is clearly zero if @expr{a + b x} exactly fits all data points,
24426and increases as various @expr{a + b x_i} values fail to match the 24426and increases as various @expr{a + b x_i} values fail to match the
24427corresponding @expr{y_i} values. There are several reasons why the 24427corresponding @expr{y_i} values. There are several reasons why the
24428summand is squared, one of them being to ensure that 24428summand is squared, one of them being to ensure that
24429@texline @math{\chi^2 \ge 0}. 24429@texline @math{\chi^2 \ge 0}.
24430@infoline @expr{chi^2 >= 0}. 24430@infoline @expr{chi^2 >= 0}.
24431Least-squares fitting simply chooses the values of @expr{a} and @expr{b} 24431Least-squares fitting simply chooses the values of @expr{a} and @expr{b}
24432for which the error 24432for which the error
24433@texline @math{\chi^2} 24433@texline @math{\chi^2}
24434@infoline @expr{chi^2} 24434@infoline @expr{chi^2}
24435is as small as possible. 24435is as small as possible.
24436 24436
24437Other kinds of models do the same thing but with a different model 24437Other kinds of models do the same thing but with a different model
@@ -24593,9 +24593,9 @@ contain error forms. The data values must either all include errors
24593or all be plain numbers. Error forms can go anywhere but generally 24593or all be plain numbers. Error forms can go anywhere but generally
24594go on the numbers in the last row of the data matrix. If the last 24594go on the numbers in the last row of the data matrix. If the last
24595row contains error forms 24595row contains error forms
24596@texline `@var{y_i}@w{ @tfn{+/-} }@math{\sigma_i}', 24596@texline `@var{y_i}@w{ @tfn{+/-} }@math{\sigma_i}',
24597@infoline `@var{y_i}@w{ @tfn{+/-} }@var{sigma_i}', 24597@infoline `@var{y_i}@w{ @tfn{+/-} }@var{sigma_i}',
24598then the 24598then the
24599@texline @math{\chi^2} 24599@texline @math{\chi^2}
24600@infoline @expr{chi^2} 24600@infoline @expr{chi^2}
24601statistic is now, 24601statistic is now,
@@ -24617,9 +24617,9 @@ the fitting operation.
24617 24617
24618If there are error forms on other rows of the data matrix, all the 24618If there are error forms on other rows of the data matrix, all the
24619errors for a given data point are combined; the square root of the 24619errors for a given data point are combined; the square root of the
24620sum of the squares of the errors forms the 24620sum of the squares of the errors forms the
24621@texline @math{\sigma_i} 24621@texline @math{\sigma_i}
24622@infoline @expr{sigma_i} 24622@infoline @expr{sigma_i}
24623used for the data point. 24623used for the data point.
24624 24624
24625Both @kbd{a F} and @kbd{H a F} can accept error forms in the input 24625Both @kbd{a F} and @kbd{H a F} can accept error forms in the input
@@ -24627,19 +24627,19 @@ matrix, although if you are concerned about error analysis you will
24627probably use @kbd{H a F} so that the output also contains error 24627probably use @kbd{H a F} so that the output also contains error
24628estimates. 24628estimates.
24629 24629
24630If the input contains error forms but all the 24630If the input contains error forms but all the
24631@texline @math{\sigma_i} 24631@texline @math{\sigma_i}
24632@infoline @expr{sigma_i} 24632@infoline @expr{sigma_i}
24633values are the same, it is easy to see that the resulting fitted model 24633values are the same, it is easy to see that the resulting fitted model
24634will be the same as if the input did not have error forms at all 24634will be the same as if the input did not have error forms at all
24635@texline (@math{\chi^2} 24635@texline (@math{\chi^2}
24636@infoline (@expr{chi^2} 24636@infoline (@expr{chi^2}
24637is simply scaled uniformly by 24637is simply scaled uniformly by
24638@texline @math{1 / \sigma^2}, 24638@texline @math{1 / \sigma^2},
24639@infoline @expr{1 / sigma^2}, 24639@infoline @expr{1 / sigma^2},
24640which doesn't affect where it has a minimum). But there @emph{will} be 24640which doesn't affect where it has a minimum). But there @emph{will} be
24641a difference in the estimated errors of the coefficients reported by 24641a difference in the estimated errors of the coefficients reported by
24642@kbd{H a F}. 24642@kbd{H a F}.
24643 24643
24644Consult any text on statistical modeling of data for a discussion 24644Consult any text on statistical modeling of data for a discussion
24645of where these error estimates come from and how they should be 24645of where these error estimates come from and how they should be
@@ -24671,18 +24671,18 @@ will have length @expr{M = d+1} with the constant term first.
24671The covariance matrix @expr{C} computed from the fit. This is 24671The covariance matrix @expr{C} computed from the fit. This is
24672an @var{m}x@var{m} symmetric matrix; the diagonal elements 24672an @var{m}x@var{m} symmetric matrix; the diagonal elements
24673@texline @math{C_{jj}} 24673@texline @math{C_{jj}}
24674@infoline @expr{C_j_j} 24674@infoline @expr{C_j_j}
24675are the variances 24675are the variances
24676@texline @math{\sigma_j^2} 24676@texline @math{\sigma_j^2}
24677@infoline @expr{sigma_j^2} 24677@infoline @expr{sigma_j^2}
24678of the parameters. The other elements are covariances 24678of the parameters. The other elements are covariances
24679@texline @math{\sigma_{ij}^2} 24679@texline @math{\sigma_{ij}^2}
24680@infoline @expr{sigma_i_j^2} 24680@infoline @expr{sigma_i_j^2}
24681that describe the correlation between pairs of parameters. (A related 24681that describe the correlation between pairs of parameters. (A related
24682set of numbers, the @dfn{linear correlation coefficients} 24682set of numbers, the @dfn{linear correlation coefficients}
24683@texline @math{r_{ij}}, 24683@texline @math{r_{ij}},
24684@infoline @expr{r_i_j}, 24684@infoline @expr{r_i_j},
24685are defined as 24685are defined as
24686@texline @math{\sigma_{ij}^2 / \sigma_i \, \sigma_j}.) 24686@texline @math{\sigma_{ij}^2 / \sigma_i \, \sigma_j}.)
24687@infoline @expr{sigma_i_j^2 / sigma_i sigma_j}.) 24687@infoline @expr{sigma_i_j^2 / sigma_i sigma_j}.)
24688 24688
@@ -24693,35 +24693,35 @@ will instead be an empty vector; this is always the case for the
24693polynomial and multilinear fits described so far. 24693polynomial and multilinear fits described so far.
24694 24694
24695@item 24695@item
24696The value of 24696The value of
24697@texline @math{\chi^2} 24697@texline @math{\chi^2}
24698@infoline @expr{chi^2} 24698@infoline @expr{chi^2}
24699for the fit, calculated by the formulas shown above. This gives a 24699for the fit, calculated by the formulas shown above. This gives a
24700measure of the quality of the fit; statisticians consider 24700measure of the quality of the fit; statisticians consider
24701@texline @math{\chi^2 \approx N - M} 24701@texline @math{\chi^2 \approx N - M}
24702@infoline @expr{chi^2 = N - M} 24702@infoline @expr{chi^2 = N - M}
24703to indicate a moderately good fit (where again @expr{N} is the number of 24703to indicate a moderately good fit (where again @expr{N} is the number of
24704data points and @expr{M} is the number of parameters). 24704data points and @expr{M} is the number of parameters).
24705 24705
24706@item 24706@item
24707A measure of goodness of fit expressed as a probability @expr{Q}. 24707A measure of goodness of fit expressed as a probability @expr{Q}.
24708This is computed from the @code{utpc} probability distribution 24708This is computed from the @code{utpc} probability distribution
24709function using 24709function using
24710@texline @math{\chi^2} 24710@texline @math{\chi^2}
24711@infoline @expr{chi^2} 24711@infoline @expr{chi^2}
24712with @expr{N - M} degrees of freedom. A 24712with @expr{N - M} degrees of freedom. A
24713value of 0.5 implies a good fit; some texts recommend that often 24713value of 0.5 implies a good fit; some texts recommend that often
24714@expr{Q = 0.1} or even 0.001 can signify an acceptable fit. In 24714@expr{Q = 0.1} or even 0.001 can signify an acceptable fit. In
24715particular, 24715particular,
24716@texline @math{\chi^2} 24716@texline @math{\chi^2}
24717@infoline @expr{chi^2} 24717@infoline @expr{chi^2}
24718statistics assume the errors in your inputs 24718statistics assume the errors in your inputs
24719follow a normal (Gaussian) distribution; if they don't, you may 24719follow a normal (Gaussian) distribution; if they don't, you may
24720have to accept smaller values of @expr{Q}. 24720have to accept smaller values of @expr{Q}.
24721 24721
24722The @expr{Q} value is computed only if the input included error 24722The @expr{Q} value is computed only if the input included error
24723estimates. Otherwise, Calc will report the symbol @code{nan} 24723estimates. Otherwise, Calc will report the symbol @code{nan}
24724for @expr{Q}. The reason is that in this case the 24724for @expr{Q}. The reason is that in this case the
24725@texline @math{\chi^2} 24725@texline @math{\chi^2}
24726@infoline @expr{chi^2} 24726@infoline @expr{chi^2}
24727value has effectively been used to estimate the original errors 24727value has effectively been used to estimate the original errors
@@ -24763,7 +24763,7 @@ Power law. @mathit{a x^b y^c}.
24763@item q 24763@item q
24764Quadratic. @mathit{a + b (x-c)^2 + d (x-e)^2}. 24764Quadratic. @mathit{a + b (x-c)^2 + d (x-e)^2}.
24765@item g 24765@item g
24766Gaussian. 24766Gaussian.
24767@texline @math{{a \over b \sqrt{2 \pi}} \exp\left( -{1 \over 2} \left( x - c \over b \right)^2 \right)}. 24767@texline @math{{a \over b \sqrt{2 \pi}} \exp\left( -{1 \over 2} \left( x - c \over b \right)^2 \right)}.
24768@infoline @mathit{(a / b sqrt(2 pi)) exp(-0.5*((x-c)/b)^2)}. 24768@infoline @mathit{(a / b sqrt(2 pi)) exp(-0.5*((x-c)/b)^2)}.
24769@item s 24769@item s
@@ -24788,7 +24788,7 @@ the parameter values from the vector that is placed in the trail.)
24788 24788
24789All models except Gaussian, logistics, Hubbert and polynomials can 24789All models except Gaussian, logistics, Hubbert and polynomials can
24790generalize as shown to any number of independent variables. Also, all 24790generalize as shown to any number of independent variables. Also, all
24791the built-in models except for the logistic and Hubbert curves have an 24791the built-in models except for the logistic and Hubbert curves have an
24792additive or multiplicative parameter shown as @expr{a} in the above table 24792additive or multiplicative parameter shown as @expr{a} in the above table
24793which can be replaced by zero or one, as appropriate, by typing @kbd{h} 24793which can be replaced by zero or one, as appropriate, by typing @kbd{h}
24794before the model key. 24794before the model key.
@@ -24893,9 +24893,9 @@ form @samp{arcsin(y) = a t + b}. The @code{arcsin} function always
24893returns results in the range from @mathit{-90} to 90 degrees (or the 24893returns results in the range from @mathit{-90} to 90 degrees (or the
24894equivalent range in radians). Suppose you had data that you 24894equivalent range in radians). Suppose you had data that you
24895believed to represent roughly three oscillations of a sine wave, 24895believed to represent roughly three oscillations of a sine wave,
24896so that the argument of the sine might go from zero to 24896so that the argument of the sine might go from zero to
24897@texline @math{3\times360} 24897@texline @math{3\times360}
24898@infoline @mathit{3*360} 24898@infoline @mathit{3*360}
24899degrees. 24899degrees.
24900The above model would appear to be a good way to determine the 24900The above model would appear to be a good way to determine the
24901true frequency and phase of the sine wave, but in practice it 24901true frequency and phase of the sine wave, but in practice it
@@ -24955,18 +24955,18 @@ ln(y) = ln(a) + b ln(x)
24955@end example 24955@end example
24956 24956
24957@noindent 24957@noindent
24958which matches the desired form with 24958which matches the desired form with
24959@texline @math{Y = \ln(y)}, 24959@texline @math{Y = \ln(y)},
24960@infoline @expr{Y = ln(y)}, 24960@infoline @expr{Y = ln(y)},
24961@texline @math{A = \ln(a)}, 24961@texline @math{A = \ln(a)},
24962@infoline @expr{A = ln(a)}, 24962@infoline @expr{A = ln(a)},
24963@expr{F = 1}, @expr{B = b}, and 24963@expr{F = 1}, @expr{B = b}, and
24964@texline @math{G = \ln(x)}. 24964@texline @math{G = \ln(x)}.
24965@infoline @expr{G = ln(x)}. 24965@infoline @expr{G = ln(x)}.
24966Calc thus computes the logarithms of your @expr{y} and @expr{x} values, 24966Calc thus computes the logarithms of your @expr{y} and @expr{x} values,
24967does a linear fit for @expr{A} and @expr{B}, then solves to get 24967does a linear fit for @expr{A} and @expr{B}, then solves to get
24968@texline @math{a = \exp(A)} 24968@texline @math{a = \exp(A)}
24969@infoline @expr{a = exp(A)} 24969@infoline @expr{a = exp(A)}
24970and @expr{b = B}. 24970and @expr{b = B}.
24971 24971
24972Another interesting example is the ``quadratic'' model, which can 24972Another interesting example is the ``quadratic'' model, which can
@@ -25015,7 +25015,7 @@ from the list of parameters when you answer the variables prompt.
25015 25015
25016A last desperate step would be to use the general-purpose 25016A last desperate step would be to use the general-purpose
25017@code{minimize} function rather than @code{fit}. After all, both 25017@code{minimize} function rather than @code{fit}. After all, both
25018functions solve the problem of minimizing an expression (the 25018functions solve the problem of minimizing an expression (the
25019@texline @math{\chi^2} 25019@texline @math{\chi^2}
25020@infoline @expr{chi^2} 25020@infoline @expr{chi^2}
25021sum) by adjusting certain parameters in the expression. The @kbd{a F} 25021sum) by adjusting certain parameters in the expression. The @kbd{a F}
@@ -25026,9 +25026,9 @@ command can do the same thing by brute force.
25026A compromise would be to pick out a few parameters without which the 25026A compromise would be to pick out a few parameters without which the
25027fit is linearizable, and use @code{minimize} on a call to @code{fit} 25027fit is linearizable, and use @code{minimize} on a call to @code{fit}
25028which efficiently takes care of the rest of the parameters. The thing 25028which efficiently takes care of the rest of the parameters. The thing
25029to be minimized would be the value of 25029to be minimized would be the value of
25030@texline @math{\chi^2} 25030@texline @math{\chi^2}
25031@infoline @expr{chi^2} 25031@infoline @expr{chi^2}
25032returned as the fifth result of the @code{xfit} function: 25032returned as the fifth result of the @code{xfit} function:
25033 25033
25034@smallexample 25034@smallexample
@@ -25086,13 +25086,13 @@ of the sum of the squares of the errors. It then changes @expr{x}
25086and @expr{y} to be plain numbers, and makes @expr{z} into an error 25086and @expr{y} to be plain numbers, and makes @expr{z} into an error
25087form with this combined error. The @expr{Y(x,y,z)} part of the 25087form with this combined error. The @expr{Y(x,y,z)} part of the
25088linearized model is evaluated, and the result should be an error 25088linearized model is evaluated, and the result should be an error
25089form. The error part of that result is used for 25089form. The error part of that result is used for
25090@texline @math{\sigma_i} 25090@texline @math{\sigma_i}
25091@infoline @expr{sigma_i} 25091@infoline @expr{sigma_i}
25092for the data point. If for some reason @expr{Y(x,y,z)} does not return 25092for the data point. If for some reason @expr{Y(x,y,z)} does not return
25093an error form, the combined error from @expr{z} is used directly for 25093an error form, the combined error from @expr{z} is used directly for
25094@texline @math{\sigma_i}. 25094@texline @math{\sigma_i}.
25095@infoline @expr{sigma_i}. 25095@infoline @expr{sigma_i}.
25096Finally, @expr{z} is also stripped of its error 25096Finally, @expr{z} is also stripped of its error
25097for use in computing @expr{F(x,y,z)}, @expr{G(x,y,z)} and so on; 25097for use in computing @expr{F(x,y,z)}, @expr{G(x,y,z)} and so on;
25098the righthand side of the linearized model is computed in regular 25098the righthand side of the linearized model is computed in regular
@@ -25104,7 +25104,7 @@ depends only on the dependent variable @expr{z}, and in fact is
25104often simply equal to @expr{z}. For common cases like polynomials 25104often simply equal to @expr{z}. For common cases like polynomials
25105and multilinear models, the combined error is simply used as the 25105and multilinear models, the combined error is simply used as the
25106@texline @math{\sigma} 25106@texline @math{\sigma}
25107@infoline @expr{sigma} 25107@infoline @expr{sigma}
25108for the data point with no further ado.) 25108for the data point with no further ado.)
25109 25109
25110@tex 25110@tex
@@ -25481,7 +25481,7 @@ this would be a division by zero. But at @expr{k = k_0}, this
25481formula works out to the indeterminate form @expr{0 / 0}, which 25481formula works out to the indeterminate form @expr{0 / 0}, which
25482Calc will not assume is zero. Better would be to use 25482Calc will not assume is zero. Better would be to use
25483@samp{(k != k_0) ? 1/(k-k_0) : 0}; the @samp{? :} operator does 25483@samp{(k != k_0) ? 1/(k-k_0) : 0}; the @samp{? :} operator does
25484an ``if-then-else'' test: This expression says, ``if 25484an ``if-then-else'' test: This expression says, ``if
25485@texline @math{k \ne k_0}, 25485@texline @math{k \ne k_0},
25486@infoline @expr{k != k_0}, 25486@infoline @expr{k != k_0},
25487then @expr{1/(k-k_0)}, else zero.'' Now the formula @expr{1/(k-k_0)} 25487then @expr{1/(k-k_0)}, else zero.'' Now the formula @expr{1/(k-k_0)}
@@ -25644,7 +25644,7 @@ equivalent expression involving intervals: @samp{b in [a .. c)}.
25644of @samp{<} and @samp{<=} are allowed, or any of the four combinations 25644of @samp{<} and @samp{<=} are allowed, or any of the four combinations
25645of @samp{>} and @samp{>=}. Four-argument constructions like 25645of @samp{>} and @samp{>=}. Four-argument constructions like
25646@samp{a < b < c < d}, and mixtures like @w{@samp{a < b = c}} that 25646@samp{a < b < c < d}, and mixtures like @w{@samp{a < b = c}} that
25647involve both equalities and inequalities, are not allowed. 25647involve both equations and inequalities, are not allowed.
25648 25648
25649@kindex a . 25649@kindex a .
25650@pindex calc-remove-equal 25650@pindex calc-remove-equal
@@ -26496,16 +26496,16 @@ f(a b) := a f(b) :: real(a)]} is stored in variable @samp{linearF},
26496then the rule set @samp{[f(0) := 0, import(linearF)]} will apply 26496then the rule set @samp{[f(0) := 0, import(linearF)]} will apply
26497all three rules. It is possible to modify the imported rules 26497all three rules. It is possible to modify the imported rules
26498slightly: @samp{import(x, v1, x1, v2, x2, @dots{})} imports 26498slightly: @samp{import(x, v1, x1, v2, x2, @dots{})} imports
26499the rule set @expr{x} with all occurrences of 26499the rule set @expr{x} with all occurrences of
26500@texline @math{v_1}, 26500@texline @math{v_1},
26501@infoline @expr{v1}, 26501@infoline @expr{v1},
26502as either a variable name or a function name, replaced with 26502as either a variable name or a function name, replaced with
26503@texline @math{x_1} 26503@texline @math{x_1}
26504@infoline @expr{x1} 26504@infoline @expr{x1}
26505and so on. (If 26505and so on. (If
26506@texline @math{v_1} 26506@texline @math{v_1}
26507@infoline @expr{v1} 26507@infoline @expr{v1}
26508is used as a function name, then 26508is used as a function name, then
26509@texline @math{x_1} 26509@texline @math{x_1}
26510@infoline @expr{x1} 26510@infoline @expr{x1}
26511must be either a function name itself or a @w{@samp{< >}} nameless 26511must be either a function name itself or a @w{@samp{< >}} nameless
@@ -27609,7 +27609,7 @@ the keyboard macro @kbd{' tri($) @key{RET}} to make a command that applies
27609@code{tri} to the value on the top of the stack. @xref{Programming}. 27609@code{tri} to the value on the top of the stack. @xref{Programming}.
27610 27610
27611@cindex Quaternions 27611@cindex Quaternions
27612The following rule set, contributed by 27612The following rule set, contributed by
27613@texline Fran\c cois 27613@texline Fran\c cois
27614@infoline Francois 27614@infoline Francois
27615Pinard, implements @dfn{quaternions}, a generalization of the concept of 27615Pinard, implements @dfn{quaternions}, a generalization of the concept of
@@ -27748,12 +27748,25 @@ the above example, entering the units expression @samp{100 km/hr} and
27748typing @kbd{u c @key{RET}} (without specifying new units) produces 27748typing @kbd{u c @key{RET}} (without specifying new units) produces
27749@samp{27.7777777778 m/s}. 27749@samp{27.7777777778 m/s}.
27750 27750
27751@kindex u t
27752@pindex calc-convert-temperature
27753@cindex Temperature conversion
27754The @kbd{u c} command treats temperature units (like @samp{degC} and
27755@samp{K}) as relative temperatures. For example, @kbd{u c} converts
27756@samp{10 degC} to @samp{18 degF}: A change of 10 degrees Celsius
27757corresponds to a change of 18 degrees Fahrenheit. To convert absolute
27758temperatures, you can use the @kbd{u t}
27759(@code{calc-convert-temperature}) command. The value on the stack
27760must be a simple units expression with units of temperature only.
27761This command would convert @samp{10 degC} to @samp{50 degF}, the
27762equivalent temperature on the Fahrenheit scale.
27763
27751While many of Calc's conversion factors are exact, some are necessarily 27764While many of Calc's conversion factors are exact, some are necessarily
27752approximate. If Calc is in fraction mode (@pxref{Fraction Mode}), then 27765approximate. If Calc is in fraction mode (@pxref{Fraction Mode}), then
27753unit conversions will try to give exact, rational conversions, but it 27766unit conversions will try to give exact, rational conversions, but it
27754isn't always possible. Given @samp{55 mph} in fraction mode, typing 27767isn't always possible. Given @samp{55 mph} in fraction mode, typing
27755@kbd{u c m/s @key{RET}} produces @samp{15367:625 m/s}, for example, 27768@kbd{u c m/s @key{RET}} produces @samp{15367:625 m/s}, for example,
27756while typing @kbd{u c au/yr @key{RET}} produces 27769while typing @kbd{u c au/yr @key{RET}} produces
27757@samp{5.18665819999e-3 au/yr}. 27770@samp{5.18665819999e-3 au/yr}.
27758 27771
27759If the units you request are inconsistent with the original units, the 27772If the units you request are inconsistent with the original units, the
@@ -27818,19 +27831,8 @@ The @kbd{u b} (@code{calc-base-units}) command is shorthand for
27818stack into @code{base} units. If @kbd{u s} does not simplify a 27831stack into @code{base} units. If @kbd{u s} does not simplify a
27819units expression as far as you would like, try @kbd{u b}. 27832units expression as far as you would like, try @kbd{u b}.
27820 27833
27821The @kbd{u c} and @kbd{u b} commands treat temperature units (like 27834Like the @kbd{u c} command, the @kbd{u b} command treats temperature
27822@samp{degC} and @samp{K}) as relative temperatures. For example, 27835units as relative temperatures.
27823@kbd{u c} converts @samp{10 degC} to @samp{18 degF}: A change of 10
27824degrees Celsius corresponds to a change of 18 degrees Fahrenheit.
27825
27826@kindex u t
27827@pindex calc-convert-temperature
27828@cindex Temperature conversion
27829The @kbd{u t} (@code{calc-convert-temperature}) command converts
27830absolute temperatures. The value on the stack must be a simple units
27831expression with units of temperature only. This command would convert
27832@samp{10 degC} to @samp{50 degF}, the equivalent temperature on the
27833Fahrenheit scale.
27834 27836
27835@kindex u r 27837@kindex u r
27836@pindex calc-remove-units 27838@pindex calc-remove-units
@@ -27992,7 +27994,7 @@ defined by the @TeX{} typesetting system: @samp{72.27 texpt = 1 in}.
27992Other units used by @TeX{} are available; they are @code{texpc} (a pica), 27994Other units used by @TeX{} are available; they are @code{texpc} (a pica),
27993@code{texbp} (a ``big point'', equal to a standard point which is larger 27995@code{texbp} (a ``big point'', equal to a standard point which is larger
27994than the point used by @TeX{}), @code{texdd} (a Didot point), 27996than the point used by @TeX{}), @code{texdd} (a Didot point),
27995@code{texcc} (a Cicero) and @code{texsp} (a scaled @TeX{} point, 27997@code{texcc} (a Cicero) and @code{texsp} (a scaled @TeX{} point,
27996all dimensions representable in @TeX{} are multiples of this value). 27998all dimensions representable in @TeX{} are multiples of this value).
27997 27999
27998When Calc is using the @TeX{} or La@TeX{} language mode (@pxref{TeX 28000When Calc is using the @TeX{} or La@TeX{} language mode (@pxref{TeX
@@ -28129,17 +28131,17 @@ The units @code{dB} (decibels) and @code{Np} (nepers) are logarithmic
28129units which are manipulated differently than standard units. Calc 28131units which are manipulated differently than standard units. Calc
28130provides commands to work with these logarithmic units. 28132provides commands to work with these logarithmic units.
28131 28133
28132Decibels and nepers are used to measure power quantities as well as 28134Decibels and nepers are used to measure power quantities as well as
28133field quantities (quantities whose squares are proportional to power); 28135field quantities (quantities whose squares are proportional to power);
28134these two types of quantities are handled slightly different from each 28136these two types of quantities are handled slightly different from each
28135other. By default the Calc commands work as if power quantities are 28137other. By default the Calc commands work as if power quantities are
28136being used; with the @kbd{H} prefix the Calc commands work as if field 28138being used; with the @kbd{H} prefix the Calc commands work as if field
28137quantities are being used. 28139quantities are being used.
28138 28140
28139The decibel level of a power 28141The decibel level of a power
28140@infoline @math{P1}, 28142@infoline @math{P1},
28141@texline @math{P_1}, 28143@texline @math{P_1},
28142relative to a reference power 28144relative to a reference power
28143@infoline @math{P0}, 28145@infoline @math{P0},
28144@texline @math{P_0}, 28146@texline @math{P_0},
28145is defined to be 28147is defined to be
@@ -28149,10 +28151,10 @@ is defined to be
28149one-tenth of a bel. The bel, named after Alexander Graham Bell, was 28151one-tenth of a bel. The bel, named after Alexander Graham Bell, was
28150considered to be too large of a unit and was effectively replaced by 28152considered to be too large of a unit and was effectively replaced by
28151the decibel.) If @math{F} is a field quantity with power 28153the decibel.) If @math{F} is a field quantity with power
28152@math{P=k F^2}, then a reference quantity of 28154@math{P=k F^2}, then a reference quantity of
28153@infoline @math{F0} 28155@infoline @math{F0}
28154@texline @math{F_0} 28156@texline @math{F_0}
28155would correspond to a power of 28157would correspond to a power of
28156@infoline @math{P0=k F0^2}. 28158@infoline @math{P0=k F0^2}.
28157@texline @math{P_{0}=kF_{0}^2}. 28159@texline @math{P_{0}=kF_{0}^2}.
28158If 28160If
@@ -28161,7 +28163,7 @@ If
28161then 28163then
28162 28164
28163@ifnottex 28165@ifnottex
28164@example 28166@example
2816510 log10(P1/P0) = 10 log10(F1^2/F0^2) = 20 log10(F1/F0). 2816710 log10(P1/P0) = 10 log10(F1^2/F0^2) = 20 log10(F1/F0).
28166@end example 28168@end example
28167@end ifnottex 28169@end ifnottex
@@ -28173,42 +28175,42 @@ $$ 10 \log_{10}(P_1/P_0) = 10 \log_{10}(F_1^2/F_0^2) = 20
28173@noindent 28175@noindent
28174In order to get the same decibel level regardless of whether a field 28176In order to get the same decibel level regardless of whether a field
28175quantity or the corresponding power quantity is used, the decibel 28177quantity or the corresponding power quantity is used, the decibel
28176level of a field quantity 28178level of a field quantity
28177@infoline @math{F1}, 28179@infoline @math{F1},
28178@texline @math{F_1}, 28180@texline @math{F_1},
28179relative to a reference 28181relative to a reference
28180@infoline @math{F0}, 28182@infoline @math{F0},
28181@texline @math{F_0}, 28183@texline @math{F_0},
28182is defined as 28184is defined as
28183@infoline @math{20 log10(F1/F0) dB}. 28185@infoline @math{20 log10(F1/F0) dB}.
28184@texline @math{20 \log_{10}(F_{1}/F_{0}) {\rm dB}}. 28186@texline @math{20 \log_{10}(F_{1}/F_{0}) {\rm dB}}.
28185For example, the decibel value of a sound pressure level of 28187For example, the decibel value of a sound pressure level of
28186@infoline @math{60 uPa} 28188@infoline @math{60 uPa}
28187@texline @math{60 \mu{\rm Pa}} 28189@texline @math{60 \mu{\rm Pa}}
28188relative to 28190relative to
28189@infoline @math{20 uPa} 28191@infoline @math{20 uPa}
28190@texline @math{20 \mu{\rm Pa}} 28192@texline @math{20 \mu{\rm Pa}}
28191(the threshhold of human hearing) is 28193(the threshold of human hearing) is
28192@infoline @math{20 log10(60 uPa/ 20 uPa) dB = 20 log10(3) dB}, 28194@infoline @math{20 log10(60 uPa/ 20 uPa) dB = 20 log10(3) dB},
28193@texline @math{20 \log_{10}(60 \mu{\rm Pa}/20 \mu{\rm Pa}) {\rm dB} = 20 \log_{10}(3) {\rm dB}}, 28195@texline @math{20 \log_{10}(60 \mu{\rm Pa}/20 \mu{\rm Pa}) {\rm dB} = 20 \log_{10}(3) {\rm dB}},
28194which is about 28196which is about
28195@infoline @math{9.54 dB}. 28197@infoline @math{9.54 dB}.
28196@texline @math{9.54 {\rm dB}}. 28198@texline @math{9.54 {\rm dB}}.
28197Note that in taking the ratio, the original units cancel and so these 28199Note that in taking the ratio, the original units cancel and so these
28198logarithmic units are dimensionless. 28200logarithmic units are dimensionless.
28199 28201
28200Nepers (named after John Napier, who is credited with inventing the 28202Nepers (named after John Napier, who is credited with inventing the
28201logarithm) are similar to bels except they use natural logarithms instead 28203logarithm) are similar to bels except they use natural logarithms instead
28202of common logarithms. The neper level of a power 28204of common logarithms. The neper level of a power
28203@infoline @math{P1}, 28205@infoline @math{P1},
28204@texline @math{P_1}, 28206@texline @math{P_1},
28205relative to a reference power 28207relative to a reference power
28206@infoline @math{P0}, 28208@infoline @math{P0},
28207@texline @math{P_0}, 28209@texline @math{P_0},
28208is 28210is
28209@infoline @math{(1/2) ln(P1/P0) Np}. 28211@infoline @math{(1/2) ln(P1/P0) Np}.
28210@texline @math{(1/2) \ln(P_1/P_0) {\rm Np}}. 28212@texline @math{(1/2) \ln(P_1/P_0) {\rm Np}}.
28211The neper level of a field 28213The neper level of a field
28212@infoline @math{F1}, 28214@infoline @math{F1},
28213@texline @math{F_1}, 28215@texline @math{F_1},
28214relative to a reference field 28216relative to a reference field
@@ -28221,13 +28223,13 @@ is
28221@vindex calc-lu-power-reference 28223@vindex calc-lu-power-reference
28222@vindex calc-lu-field-reference 28224@vindex calc-lu-field-reference
28223For power quantities, Calc uses 28225For power quantities, Calc uses
28224@infoline @math{1 mW} 28226@infoline @math{1 mW}
28225@texline @math{1 {\rm mW}} 28227@texline @math{1 {\rm mW}}
28226as the default reference quantity; this default can be changed by changing 28228as the default reference quantity; this default can be changed by changing
28227the value of the customizable variable 28229the value of the customizable variable
28228@code{calc-lu-power-reference} (@pxref{Customizing Calc}). 28230@code{calc-lu-power-reference} (@pxref{Customizing Calc}).
28229For field quantities, Calc uses 28231For field quantities, Calc uses
28230@infoline @math{20 uPa} 28232@infoline @math{20 uPa}
28231@texline @math{20 \mu{\rm Pa}} 28233@texline @math{20 \mu{\rm Pa}}
28232as the default reference quantity; this is the value used in acoustics 28234as the default reference quantity; this is the value used in acoustics
28233which is where decibels are commonly encountered. This default can be 28235which is where decibels are commonly encountered. This default can be
@@ -28245,9 +28247,9 @@ command computes the power quantity corresponding to a given number of
28245logarithmic units. With the capital @kbd{O} prefix, @kbd{O l q}, the 28247logarithmic units. With the capital @kbd{O} prefix, @kbd{O l q}, the
28246reference level will be read from the top of the stack. (In an 28248reference level will be read from the top of the stack. (In an
28247algebraic formula, @code{lupquant} can be given an optional second 28249algebraic formula, @code{lupquant} can be given an optional second
28248argument which will be used for the reference level.) For example, 28250argument which will be used for the reference level.) For example,
28249@code{20 dB @key{RET} l q} will return @code{100 mW}; 28251@code{20 dB @key{RET} l q} will return @code{100 mW};
28250@code{20 dB @key{RET} 4 W @key{RET} O l q} will return @code{400 W}. 28252@code{20 dB @key{RET} 4 W @key{RET} O l q} will return @code{400 W}.
28251The @kbd{H l q} [@code{lufquant}] command behaves like @kbd{l q} but 28253The @kbd{H l q} [@code{lufquant}] command behaves like @kbd{l q} but
28252computes field quantities instead of power quantities. 28254computes field quantities instead of power quantities.
28253 28255
@@ -28286,13 +28288,13 @@ the reference level can be given as an optional second argument.
28286@tindex lufdiv 28288@tindex lufdiv
28287The sum of two power or field quantities doesn't correspond to the sum 28289The sum of two power or field quantities doesn't correspond to the sum
28288of the corresponding decibel or neper levels. If the powers 28290of the corresponding decibel or neper levels. If the powers
28289corresponding to decibel levels 28291corresponding to decibel levels
28290@infoline @math{D1} 28292@infoline @math{D1}
28291@texline @math{D_1} 28293@texline @math{D_1}
28292and 28294and
28293@infoline @math{D2} 28295@infoline @math{D2}
28294@texline @math{D_2} 28296@texline @math{D_2}
28295are added, the corresponding decibel level ``sum'' will be 28297are added, the corresponding decibel level ``sum'' will be
28296 28298
28297@ifnottex 28299@ifnottex
28298@example 28300@example
@@ -28336,7 +28338,7 @@ $$ D + 10 \log_{10}(N) {\rm dB},$$
28336 28338
28337@noindent 28339@noindent
28338if a field quantity is multiplied by @math{N} the corresponding decibel level 28340if a field quantity is multiplied by @math{N} the corresponding decibel level
28339will be 28341will be
28340 28342
28341@ifnottex 28343@ifnottex
28342@example 28344@example
@@ -28373,31 +28375,31 @@ operating on notes.
28373Scientific pitch notation refers to a note by giving a letter 28375Scientific pitch notation refers to a note by giving a letter
28374A through G, possibly followed by a flat or sharp) with a subscript 28376A through G, possibly followed by a flat or sharp) with a subscript
28375indicating an octave number. Each octave starts with C and ends with 28377indicating an octave number. Each octave starts with C and ends with
28376B and 28378B and
28377@c increasing each note by a semitone will result 28379@c increasing each note by a semitone will result
28378@c in the sequence @expr{C}, @expr{C} sharp, @expr{D}, @expr{E} flat, @expr{E}, 28380@c in the sequence @expr{C}, @expr{C} sharp, @expr{D}, @expr{E} flat, @expr{E},
28379@c @expr{F}, @expr{F} sharp, @expr{G}, @expr{A} flat, @expr{A}, @expr{B} 28381@c @expr{F}, @expr{F} sharp, @expr{G}, @expr{A} flat, @expr{A}, @expr{B}
28380@c flat and @expr{B}. 28382@c flat and @expr{B}.
28381the octave numbered 0 was chosen to correspond to the lowest 28383the octave numbered 0 was chosen to correspond to the lowest
28382audible frequency. Using this system, middle C (about 261.625 Hz) 28384audible frequency. Using this system, middle C (about 261.625 Hz)
28383corresponds to the note @expr{C} in octave 4 and is denoted 28385corresponds to the note @expr{C} in octave 4 and is denoted
28384@expr{C_4}. Any frequency can be described by giving a note plus an 28386@expr{C_4}. Any frequency can be described by giving a note plus an
28385offset in cents (where a cent is a ratio of frequencies so that a 28387offset in cents (where a cent is a ratio of frequencies so that a
28386semitone consists of 100 cents). 28388semitone consists of 100 cents).
28387 28389
28388The midi note number system assigns numbers to notes so that 28390The midi note number system assigns numbers to notes so that
28389@expr{C_(-1)} corresponds to the midi note number 0 and @expr{G_9} 28391@expr{C_(-1)} corresponds to the midi note number 0 and @expr{G_9}
28390corresponds to the midi note number 127. A midi controller can have 28392corresponds to the midi note number 127. A midi controller can have
28391up to 128 keys and each midi note number from 0 to 127 corresponds to 28393up to 128 keys and each midi note number from 0 to 127 corresponds to
28392a possible key. 28394a possible key.
28393 28395
28394@kindex l s 28396@kindex l s
28395@pindex calc-spn 28397@pindex calc-spn
28396@tindex spn 28398@tindex spn
28397The @kbd{l s} (@code{calc-spn}) [@code{spn}] command converts either 28399The @kbd{l s} (@code{calc-spn}) [@code{spn}] command converts either
28398a frequency or a midi number to scientific pitch notation. For 28400a frequency or a midi number to scientific pitch notation. For
28399example, @code{500 Hz} gets converted to 28401example, @code{500 Hz} gets converted to
28400@code{B_4 + 21.3094853649 cents} and @code{84} to @code{C_6}. 28402@code{B_4 + 21.3094853649 cents} and @code{84} to @code{C_6}.
28401 28403
28402 28404
28403@kindex l m 28405@kindex l m
@@ -28462,7 +28464,7 @@ The @kbd{s s} (@code{calc-store}) command stores the value at the top of
28462the stack into a specified variable. It prompts you to enter the 28464the stack into a specified variable. It prompts you to enter the
28463name of the variable. If you press a single digit, the value is stored 28465name of the variable. If you press a single digit, the value is stored
28464immediately in one of the ``quick'' variables @code{q0} through 28466immediately in one of the ``quick'' variables @code{q0} through
28465@code{q9}. Or you can enter any variable name. 28467@code{q9}. Or you can enter any variable name.
28466 28468
28467@kindex s t 28469@kindex s t
28468@pindex calc-store-into 28470@pindex calc-store-into
@@ -28552,12 +28554,12 @@ and @kbd{s ]} which decrease or increase a variable by one.
28552All the arithmetic stores accept the Inverse prefix to reverse the 28554All the arithmetic stores accept the Inverse prefix to reverse the
28553order of the operands. If @expr{v} represents the contents of the 28555order of the operands. If @expr{v} represents the contents of the
28554variable, and @expr{a} is the value drawn from the stack, then regular 28556variable, and @expr{a} is the value drawn from the stack, then regular
28555@w{@kbd{s -}} assigns 28557@w{@kbd{s -}} assigns
28556@texline @math{v \coloneq v - a}, 28558@texline @math{v \coloneq v - a},
28557@infoline @expr{v := v - a}, 28559@infoline @expr{v := v - a},
28558but @kbd{I s -} assigns 28560but @kbd{I s -} assigns
28559@texline @math{v \coloneq a - v}. 28561@texline @math{v \coloneq a - v}.
28560@infoline @expr{v := a - v}. 28562@infoline @expr{v := a - v}.
28561While @kbd{I s *} might seem pointless, it is 28563While @kbd{I s *} might seem pointless, it is
28562useful if matrix multiplication is involved. Actually, all the 28564useful if matrix multiplication is involved. Actually, all the
28563arithmetic stores use formulas designed to behave usefully both 28565arithmetic stores use formulas designed to behave usefully both
@@ -28666,7 +28668,7 @@ magic property is preserved, however, when a variable is copied with
28666@kindex s k 28668@kindex s k
28667@pindex calc-copy-special-constant 28669@pindex calc-copy-special-constant
28668If one of the ``special constants'' is redefined (or undefined) so that 28670If one of the ``special constants'' is redefined (or undefined) so that
28669it no longer has its magic property, the property can be restored with 28671it no longer has its magic property, the property can be restored with
28670@kbd{s k} (@code{calc-copy-special-constant}). This command will prompt 28672@kbd{s k} (@code{calc-copy-special-constant}). This command will prompt
28671for a special constant and a variable to store it in, and so a special 28673for a special constant and a variable to store it in, and so a special
28672constant can be stored in any variable. Here, the special constant that 28674constant can be stored in any variable. Here, the special constant that
@@ -28848,7 +28850,7 @@ explicitly naming them in an @kbd{s p} command.)
28848The @kbd{s i} (@code{calc-insert-variables}) command writes 28850The @kbd{s i} (@code{calc-insert-variables}) command writes
28849the values of all Calc variables into a specified buffer. 28851the values of all Calc variables into a specified buffer.
28850The variables are written with the prefix @code{var-} in the form of 28852The variables are written with the prefix @code{var-} in the form of
28851Lisp @code{setq} commands 28853Lisp @code{setq} commands
28852which store the values in string form. You can place these commands 28854which store the values in string form. You can place these commands
28853in your Calc init file (or @file{.emacs}) if you wish, though in this case it 28855in your Calc init file (or @file{.emacs}) if you wish, though in this case it
28854would be easier to use @kbd{s p @key{RET}}. (Note that @kbd{s i} 28856would be easier to use @kbd{s p @key{RET}}. (Note that @kbd{s i}
@@ -29157,9 +29159,9 @@ In the first case, ``x'' and ``y'' are each vectors (not necessarily of
29157the same length); either or both may instead be interval forms. The 29159the same length); either or both may instead be interval forms. The
29158``z'' value must be a matrix with the same number of rows as elements 29160``z'' value must be a matrix with the same number of rows as elements
29159in ``x'', and the same number of columns as elements in ``y''. The 29161in ``x'', and the same number of columns as elements in ``y''. The
29160result is a surface plot where 29162result is a surface plot where
29161@texline @math{z_{ij}} 29163@texline @math{z_{ij}}
29162@infoline @expr{z_ij} 29164@infoline @expr{z_ij}
29163is the height of the point 29165is the height of the point
29164at coordinate @expr{(x_i, y_j)} on the surface. The 3D graph will 29166at coordinate @expr{(x_i, y_j)} on the surface. The 3D graph will
29165be displayed from a certain default viewpoint; you can change this 29167be displayed from a certain default viewpoint; you can change this
@@ -29268,9 +29270,9 @@ that don't have common ``x'' values. (Of course, the range of ``x''
29268values covered by all the curves ought to be roughly the same if 29270values covered by all the curves ought to be roughly the same if
29269they are to look nice on the same graph.) 29271they are to look nice on the same graph.)
29270 29272
29271For example, to plot 29273For example, to plot
29272@texline @math{\sin n x} 29274@texline @math{\sin n x}
29273@infoline @expr{sin(n x)} 29275@infoline @expr{sin(n x)}
29274for integers @expr{n} 29276for integers @expr{n}
29275from 1 to 5, you could use @kbd{v x} to create a vector of integers 29277from 1 to 5, you could use @kbd{v x} to create a vector of integers
29276(@expr{n}), then @kbd{V M '} or @kbd{V M $} to map @samp{sin(n x)} 29278(@expr{n}), then @kbd{V M '} or @kbd{V M $} to map @samp{sin(n x)}
@@ -29508,8 +29510,8 @@ available for any device.
29508The @kbd{g S} (@code{calc-graph-point-style}) command similarly turns 29510The @kbd{g S} (@code{calc-graph-point-style}) command similarly turns
29509the symbols at the data points on or off, or sets the point style. 29511the symbols at the data points on or off, or sets the point style.
29510If you turn both lines and points off, the data points will show as 29512If you turn both lines and points off, the data points will show as
29511tiny dots. If the ``y'' values being plotted contain error forms and 29513tiny dots. If the ``y'' values being plotted contain error forms and
29512the connecting lines are turned off, then this command will also turn 29514the connecting lines are turned off, then this command will also turn
29513the error bars on or off. 29515the error bars on or off.
29514 29516
29515@cindex @code{LineStyles} variable 29517@cindex @code{LineStyles} variable
@@ -29561,7 +29563,7 @@ terminals with no special graphics facilities. It writes a crude
29561picture of the graph composed of characters like @code{-} and @code{|} 29563picture of the graph composed of characters like @code{-} and @code{|}
29562to a buffer called @samp{*Gnuplot Trail*}, which Calc then displays. 29564to a buffer called @samp{*Gnuplot Trail*}, which Calc then displays.
29563The graph is made the same size as the Emacs screen, which on most 29565The graph is made the same size as the Emacs screen, which on most
29564dumb terminals will be 29566dumb terminals will be
29565@texline @math{80\times24} 29567@texline @math{80\times24}
29566@infoline 80x24 29568@infoline 80x24
29567characters. The graph is displayed in 29569characters. The graph is displayed in
@@ -29818,7 +29820,7 @@ difference.)
29818@pindex calc-prepend-to-register 29820@pindex calc-prepend-to-register
29819@pindex calc-append-to-register 29821@pindex calc-append-to-register
29820@cindex Registers 29822@cindex Registers
29821An alternative to killing and yanking stack entries is using 29823An alternative to killing and yanking stack entries is using
29822registers in Calc. Saving stack entries in registers is like 29824registers in Calc. Saving stack entries in registers is like
29823saving text in normal Emacs registers; although, like Calc's kill 29825saving text in normal Emacs registers; although, like Calc's kill
29824commands, register commands always operate on whole stack 29826commands, register commands always operate on whole stack
@@ -29933,7 +29935,7 @@ separately as a matrix element. If a line contained
29933would correctly split the line into two error forms. 29935would correctly split the line into two error forms.
29934 29936
29935@xref{Matrix Functions}, to see how to pull the matrix apart into its 29937@xref{Matrix Functions}, to see how to pull the matrix apart into its
29936constituent rows and columns. (If it is a 29938constituent rows and columns. (If it is a
29937@texline @math{1\times1} 29939@texline @math{1\times1}
29938@infoline 1x1 29940@infoline 1x1
29939matrix, just hit @kbd{v u} (@code{calc-unpack}) twice.) 29941matrix, just hit @kbd{v u} (@code{calc-unpack}) twice.)
@@ -30271,7 +30273,7 @@ same limit as last time.
30271 30273
30272@key{INV GCD} computes the LCM (least common multiple) function. 30274@key{INV GCD} computes the LCM (least common multiple) function.
30273 30275
30274@key{INV FACT} is the gamma function. 30276@key{INV FACT} is the gamma function.
30275@texline @math{\Gamma(x) = (x-1)!}. 30277@texline @math{\Gamma(x) = (x-1)!}.
30276@infoline @expr{gamma(x) = (x-1)!}. 30278@infoline @expr{gamma(x) = (x-1)!}.
30277 30279
@@ -30488,7 +30490,7 @@ Similarly, Calc will use @TeX{} language for @code{tex-mode},
30488@code{plain-tex-mode} and @code{context-mode}, C language for 30490@code{plain-tex-mode} and @code{context-mode}, C language for
30489@code{c-mode} and @code{c++-mode}, FORTRAN language for 30491@code{c-mode} and @code{c++-mode}, FORTRAN language for
30490@code{fortran-mode} and @code{f90-mode}, Pascal for @code{pascal-mode}, 30492@code{fortran-mode} and @code{f90-mode}, Pascal for @code{pascal-mode},
30491and eqn for @code{nroff-mode} (@pxref{Customizing Calc}). 30493and eqn for @code{nroff-mode} (@pxref{Customizing Calc}).
30492These can be overridden with Calc's mode 30494These can be overridden with Calc's mode
30493changing commands (@pxref{Mode Settings in Embedded Mode}). If no 30495changing commands (@pxref{Mode Settings in Embedded Mode}). If no
30494suitable language is available, Calc will continue with its current language. 30496suitable language is available, Calc will continue with its current language.
@@ -30668,13 +30670,13 @@ version.
30668 30670
30669Plain formulas are preceded and followed by @samp{%%%} signs 30671Plain formulas are preceded and followed by @samp{%%%} signs
30670by default. This notation has the advantage that the @samp{%} 30672by default. This notation has the advantage that the @samp{%}
30671character begins a comment in @TeX{} and La@TeX{}, so if your formula is 30673character begins a comment in @TeX{} and La@TeX{}, so if your formula is
30672embedded in a @TeX{} or La@TeX{} document its plain version will be 30674embedded in a @TeX{} or La@TeX{} document its plain version will be
30673invisible in the final printed copy. Certain major modes have different 30675invisible in the final printed copy. Certain major modes have different
30674delimiters to ensure that the ``plain'' version will be 30676delimiters to ensure that the ``plain'' version will be
30675in a comment for those modes, also. 30677in a comment for those modes, also.
30676See @ref{Customizing Embedded Mode} to see how to change the ``plain'' 30678See @ref{Customizing Embedded Mode} to see how to change the ``plain''
30677formula delimiters. 30679formula delimiters.
30678 30680
30679There are several notations which Calc's parser for ``big'' 30681There are several notations which Calc's parser for ``big''
30680formatted formulas can't yet recognize. In particular, it can't 30682formatted formulas can't yet recognize. In particular, it can't
@@ -31176,7 +31178,7 @@ We would have to go down to the other formula and press @kbd{C-x * u}
31176on it in order to get it to notice the new annotation. 31178on it in order to get it to notice the new annotation.
31177 31179
31178Two more mode-recording modes selectable by @kbd{m R} are available 31180Two more mode-recording modes selectable by @kbd{m R} are available
31179which are also available outside of Embedded mode. 31181which are also available outside of Embedded mode.
31180(@pxref{General Mode Commands}.) They are @code{Save}, in which mode 31182(@pxref{General Mode Commands}.) They are @code{Save}, in which mode
31181settings are recorded permanently in your Calc init file (the file given 31183settings are recorded permanently in your Calc init file (the file given
31182by the variable @code{calc-settings-file}, typically @file{~/.emacs.d/calc.el}) 31184by the variable @code{calc-settings-file}, typically @file{~/.emacs.d/calc.el})
@@ -31193,11 +31195,11 @@ for @code{Save} have no effect.
31193 31195
31194@noindent 31196@noindent
31195You can modify Embedded mode's behavior by setting various Lisp 31197You can modify Embedded mode's behavior by setting various Lisp
31196variables described here. These variables are customizable 31198variables described here. These variables are customizable
31197(@pxref{Customizing Calc}), or you can use @kbd{M-x set-variable} 31199(@pxref{Customizing Calc}), or you can use @kbd{M-x set-variable}
31198or @kbd{M-x edit-options} to adjust a variable on the fly. 31200or @kbd{M-x edit-options} to adjust a variable on the fly.
31199(Another possibility would be to use a file-local variable annotation at 31201(Another possibility would be to use a file-local variable annotation at
31200the end of the file; 31202the end of the file;
31201@pxref{File Variables, , Local Variables in Files, emacs, the Emacs manual}.) 31203@pxref{File Variables, , Local Variables in Files, emacs, the Emacs manual}.)
31202Many of the variables given mentioned here can be set to depend on the 31204Many of the variables given mentioned here can be set to depend on the
31203major mode of the editing buffer (@pxref{Customizing Calc}). 31205major mode of the editing buffer (@pxref{Customizing Calc}).
@@ -31332,7 +31334,7 @@ Calc never scans for this string; Calc always looks for the
31332annotation itself. But this is the string that is inserted before 31334annotation itself. But this is the string that is inserted before
31333the opening bracket when Calc adds an annotation on its own. 31335the opening bracket when Calc adds an annotation on its own.
31334The default is @code{"% "}, but may be different for different major 31336The default is @code{"% "}, but may be different for different major
31335modes. 31337modes.
31336 31338
31337@vindex calc-embedded-close-mode 31339@vindex calc-embedded-close-mode
31338The @code{calc-embedded-close-mode} variable is a string which 31340The @code{calc-embedded-close-mode} variable is a string which
@@ -31457,7 +31459,7 @@ without its key binding, type @kbd{M-x} and enter a function name. (The
31457(If the command you give implies a function, the function will be saved, 31459(If the command you give implies a function, the function will be saved,
31458and if the function has any display formats, those will be saved, but 31460and if the function has any display formats, those will be saved, but
31459not the other way around: Saving a function will not save any commands 31461not the other way around: Saving a function will not save any commands
31460or key bindings associated with the function.) 31462or key bindings associated with the function.)
31461 31463
31462@kindex Z E 31464@kindex Z E
31463@pindex calc-user-define-edit 31465@pindex calc-user-define-edit
@@ -31540,7 +31542,7 @@ Once you have bound your keyboard macro to a key, you can use
31540@cindex Keyboard macros, editing 31542@cindex Keyboard macros, editing
31541The @kbd{Z E} (@code{calc-user-define-edit}) command on a key that has 31543The @kbd{Z E} (@code{calc-user-define-edit}) command on a key that has
31542been defined by a keyboard macro tries to use the @code{edmacro} package 31544been defined by a keyboard macro tries to use the @code{edmacro} package
31543edit the macro. Type @kbd{C-c C-c} to finish editing and update 31545edit the macro. Type @kbd{C-c C-c} to finish editing and update
31544the definition stored on the key, or, to cancel the edit, kill the 31546the definition stored on the key, or, to cancel the edit, kill the
31545buffer with @kbd{C-x k}. 31547buffer with @kbd{C-x k}.
31546The special characters @code{RET}, @code{LFD}, @code{TAB}, @code{SPC}, 31548The special characters @code{RET}, @code{LFD}, @code{TAB}, @code{SPC},
@@ -31550,7 +31552,7 @@ sequences, written in all uppercase, as must the prefixes @code{C-} and
31550copied verbatim into the keyboard macro. Basically, the notation is the 31552copied verbatim into the keyboard macro. Basically, the notation is the
31551same as is used in all of this manual's examples, except that the manual 31553same as is used in all of this manual's examples, except that the manual
31552takes some liberties with spaces: When we say @kbd{' [1 2 3] @key{RET}}, 31554takes some liberties with spaces: When we say @kbd{' [1 2 3] @key{RET}},
31553we take it for granted that it is clear we really mean 31555we take it for granted that it is clear we really mean
31554@kbd{' [1 @key{SPC} 2 @key{SPC} 3] @key{RET}}. 31556@kbd{' [1 @key{SPC} 2 @key{SPC} 3] @key{RET}}.
31555 31557
31556@kindex C-x * m 31558@kindex C-x * m
@@ -31821,7 +31823,7 @@ prompt for the @kbd{Z #} command; it will not play any role in any
31821subsequent calculations.) This command allows your keyboard macros to 31823subsequent calculations.) This command allows your keyboard macros to
31822accept numbers or formulas as interactive input. 31824accept numbers or formulas as interactive input.
31823 31825
31824As an example, 31826As an example,
31825@kbd{2 @key{RET} "Power: " @key{RET} Z # 3 @key{RET} ^} will prompt for 31827@kbd{2 @key{RET} "Power: " @key{RET} Z # 3 @key{RET} ^} will prompt for
31826input with ``Power: '' in the minibuffer, then return 2 to the provided 31828input with ``Power: '' in the minibuffer, then return 2 to the provided
31827power. (The response to the prompt that's given, 3 in this example, 31829power. (The response to the prompt that's given, 3 in this example,
@@ -31898,7 +31900,7 @@ The third prompt is for an algebraic function name. The default is to
31898use the same name as the command name but without the @samp{calc-} 31900use the same name as the command name but without the @samp{calc-}
31899prefix. (If this is of the form @samp{User-m}, the hyphen is removed so 31901prefix. (If this is of the form @samp{User-m}, the hyphen is removed so
31900it won't be taken for a minus sign in algebraic formulas.) 31902it won't be taken for a minus sign in algebraic formulas.)
31901This is the name you will use if you want to enter your 31903This is the name you will use if you want to enter your
31902new function in an algebraic formula. Suppose we enter @kbd{yow @key{RET}}. 31904new function in an algebraic formula. Suppose we enter @kbd{yow @key{RET}}.
31903Then the new function can be invoked by pushing two numbers on the 31905Then the new function can be invoked by pushing two numbers on the
31904stack and typing @kbd{z m} or @kbd{x spam}, or by entering the algebraic 31906stack and typing @kbd{z m} or @kbd{x spam}, or by entering the algebraic
@@ -32693,7 +32695,7 @@ same thing with a single division by 512.
32693@end ignore 32695@end ignore
32694@tindex mysin 32696@tindex mysin
32695A somewhat limited sine function could be defined as follows, using the 32697A somewhat limited sine function could be defined as follows, using the
32696well-known Taylor series expansion for 32698well-known Taylor series expansion for
32697@texline @math{\sin x}: 32699@texline @math{\sin x}:
32698@infoline @samp{sin(x)}: 32700@infoline @samp{sin(x)}:
32699 32701
@@ -34629,7 +34631,7 @@ the derivative is evaluated at the value of @var{var}; otherwise, the
34629derivative is left in terms of @var{var}. If the expression contains 34631derivative is left in terms of @var{var}. If the expression contains
34630functions for which no derivative formula is known, new derivative 34632functions for which no derivative formula is known, new derivative
34631functions are invented by adding primes to the names; @pxref{Calculus}. 34633functions are invented by adding primes to the names; @pxref{Calculus}.
34632However, if @var{symb} is non-@code{nil}, the presence of undifferentiable 34634However, if @var{symb} is non-@code{nil}, the presence of nondifferentiable
34633functions in @var{expr} instead cancels the whole differentiation, and 34635functions in @var{expr} instead cancels the whole differentiation, and
34634@code{deriv} returns @code{nil} instead. 34636@code{deriv} returns @code{nil} instead.
34635 34637
@@ -35239,7 +35241,7 @@ to use a different prefix, you can put
35239@end example 35241@end example
35240 35242
35241@noindent 35243@noindent
35242in your .emacs file. 35244in your .emacs file.
35243(@xref{Key Bindings,,Customizing Key Bindings,emacs, 35245(@xref{Key Bindings,,Customizing Key Bindings,emacs,
35244The GNU Emacs Manual}, for more information on binding keys.) 35246The GNU Emacs Manual}, for more information on binding keys.)
35245A convenient way to start Calc is with @kbd{C-x * *}; to make it equally 35247A convenient way to start Calc is with @kbd{C-x * *}; to make it equally
@@ -35250,7 +35252,7 @@ character of the prefix can simply be typed twice.
35250 35252
35251Calc is controlled by many variables, most of which can be reset 35253Calc is controlled by many variables, most of which can be reset
35252from within Calc. Some variables are less involved with actual 35254from within Calc. Some variables are less involved with actual
35253calculation and can be set outside of Calc using Emacs's 35255calculation and can be set outside of Calc using Emacs'ss
35254customization facilities. These variables are listed below. 35256customization facilities. These variables are listed below.
35255Typing @kbd{M-x customize-variable RET @var{variable-name} RET} 35257Typing @kbd{M-x customize-variable RET @var{variable-name} RET}
35256will bring up a buffer in which the variable's value can be redefined. 35258will bring up a buffer in which the variable's value can be redefined.
@@ -35267,7 +35269,7 @@ to see how regular expressions work.
35267@defvar calc-settings-file 35269@defvar calc-settings-file
35268The variable @code{calc-settings-file} holds the file name in 35270The variable @code{calc-settings-file} holds the file name in
35269which commands like @kbd{m m} and @kbd{Z P} store ``permanent'' 35271which commands like @kbd{m m} and @kbd{Z P} store ``permanent''
35270definitions. 35272definitions.
35271If @code{calc-settings-file} is not your user init file (typically 35273If @code{calc-settings-file} is not your user init file (typically
35272@file{~/.emacs}) and if the variable @code{calc-loaded-settings-file} is 35274@file{~/.emacs}) and if the variable @code{calc-loaded-settings-file} is
35273@code{nil}, then Calc will automatically load your settings file (if it 35275@code{nil}, then Calc will automatically load your settings file (if it
@@ -35312,7 +35314,7 @@ enabled, it will try to use the current major mode to
35312determine what language should be used. (This can be overridden using 35314determine what language should be used. (This can be overridden using
35313Calc's mode changing commands, @xref{Mode Settings in Embedded Mode}.) 35315Calc's mode changing commands, @xref{Mode Settings in Embedded Mode}.)
35314The variable @code{calc-language-alist} consists of a list of pairs of 35316The variable @code{calc-language-alist} consists of a list of pairs of
35315the form @code{(@var{MAJOR-MODE} . @var{LANGUAGE})}; for example, 35317the form @code{(@var{MAJOR-MODE} . @var{LANGUAGE})}; for example,
35316@code{(latex-mode . latex)} is one such pair. If Calc embedded is 35318@code{(latex-mode . latex)} is one such pair. If Calc embedded is
35317activated in a buffer whose major mode is @var{MAJOR-MODE}, it will set itself 35319activated in a buffer whose major mode is @var{MAJOR-MODE}, it will set itself
35318to use the language @var{LANGUAGE}. 35320to use the language @var{LANGUAGE}.
@@ -35340,7 +35342,7 @@ what formulas @kbd{C-x * a} will activate in a buffer. It is a
35340regular expression, and when activating embedded formulas with 35342regular expression, and when activating embedded formulas with
35341@kbd{C-x * a}, it will tell Calc that what follows is a formula to be 35343@kbd{C-x * a}, it will tell Calc that what follows is a formula to be
35342activated. (Calc also uses other patterns to find formulas, such as 35344activated. (Calc also uses other patterns to find formulas, such as
35343@samp{=>} and @samp{:=}.) 35345@samp{=>} and @samp{:=}.)
35344 35346
35345The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, which checks 35347The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, which checks
35346for @samp{%Embed} followed by any number of lines beginning with 35348for @samp{%Embed} followed by any number of lines beginning with
@@ -35365,7 +35367,7 @@ It consists of a list of pairs of the form @code{(@var{MAJOR-MODE} .
35365 (texinfo-mode . "@@c Embed\n\\(@@c .*\n\\)*")) 35367 (texinfo-mode . "@@c Embed\n\\(@@c .*\n\\)*"))
35366@end example 35368@end example
35367Any major modes added to @code{calc-embedded-announce-formula-alist} 35369Any major modes added to @code{calc-embedded-announce-formula-alist}
35368should also be added to @code{calc-embedded-open-close-plain-alist} 35370should also be added to @code{calc-embedded-open-close-plain-alist}
35369and @code{calc-embedded-open-close-mode-alist}. 35371and @code{calc-embedded-open-close-mode-alist}.
35370@end defvar 35372@end defvar
35371 35373
@@ -35376,7 +35378,7 @@ See @ref{Customizing Embedded Mode}.@*
35376The variables @code{calc-embedded-open-formula} and 35378The variables @code{calc-embedded-open-formula} and
35377@code{calc-embedded-close-formula} control the region that Calc will 35379@code{calc-embedded-close-formula} control the region that Calc will
35378activate as a formula when Embedded mode is entered with @kbd{C-x * e}. 35380activate as a formula when Embedded mode is entered with @kbd{C-x * e}.
35379They are regular expressions; 35381They are regular expressions;
35380Calc normally scans backward and forward in the buffer for the 35382Calc normally scans backward and forward in the buffer for the
35381nearest text matching these regular expressions to be the ``formula 35383nearest text matching these regular expressions to be the ``formula
35382delimiters''. 35384delimiters''.
@@ -35401,7 +35403,7 @@ The variable @code{calc-embedded-open-close-formula-alist} is used to
35401set @code{calc-embedded-open-formula} and 35403set @code{calc-embedded-open-formula} and
35402@code{calc-embedded-close-formula} to different regular 35404@code{calc-embedded-close-formula} to different regular
35403expressions depending on the major mode of the editing buffer. 35405expressions depending on the major mode of the editing buffer.
35404It consists of a list of lists of the form 35406It consists of a list of lists of the form
35405@code{(@var{MAJOR-MODE} @var{OPEN-FORMULA-REGEXP} 35407@code{(@var{MAJOR-MODE} @var{OPEN-FORMULA-REGEXP}
35406@var{CLOSE-FORMULA-REGEXP})}, and its default value is 35408@var{CLOSE-FORMULA-REGEXP})}, and its default value is
35407@code{nil}. 35409@code{nil}.
@@ -35420,7 +35422,7 @@ The default value of @code{calc-embedded-word-regexp} is
35420The variable @code{calc-embedded-word-regexp-alist} is used to 35422The variable @code{calc-embedded-word-regexp-alist} is used to
35421set @code{calc-embedded-word-regexp} to a different regular 35423set @code{calc-embedded-word-regexp} to a different regular
35422expression depending on the major mode of the editing buffer. 35424expression depending on the major mode of the editing buffer.
35423It consists of a list of lists of the form 35425It consists of a list of lists of the form
35424@code{(@var{MAJOR-MODE} @var{WORD-REGEXP})}, and its default value is 35426@code{(@var{MAJOR-MODE} @var{WORD-REGEXP})}, and its default value is
35425@code{nil}. 35427@code{nil}.
35426@end defvar 35428@end defvar
@@ -35435,8 +35437,8 @@ formulas. Note that these are actual strings, not regular
35435expressions, because Calc must be able to write these string into a 35437expressions, because Calc must be able to write these string into a
35436buffer as well as to recognize them. 35438buffer as well as to recognize them.
35437 35439
35438The default string for @code{calc-embedded-open-plain} is 35440The default string for @code{calc-embedded-open-plain} is
35439@code{"%%% "}, note the trailing space. The default string for 35441@code{"%%% "}, note the trailing space. The default string for
35440@code{calc-embedded-close-plain} is @code{" %%%\n"}, without 35442@code{calc-embedded-close-plain} is @code{" %%%\n"}, without
35441the trailing newline here, the first line of a Big mode formula 35443the trailing newline here, the first line of a Big mode formula
35442that followed might be shifted over with respect to the other lines. 35444that followed might be shifted over with respect to the other lines.
@@ -35445,7 +35447,7 @@ The variable @code{calc-embedded-open-close-plain-alist} is used to
35445set @code{calc-embedded-open-plain} and 35447set @code{calc-embedded-open-plain} and
35446@code{calc-embedded-close-plain} to different strings 35448@code{calc-embedded-close-plain} to different strings
35447depending on the major mode of the editing buffer. 35449depending on the major mode of the editing buffer.
35448It consists of a list of lists of the form 35450It consists of a list of lists of the form
35449@code{(@var{MAJOR-MODE} @var{OPEN-PLAIN-STRING} 35451@code{(@var{MAJOR-MODE} @var{OPEN-PLAIN-STRING}
35450@var{CLOSE-PLAIN-STRING})}, and its default value is 35452@var{CLOSE-PLAIN-STRING})}, and its default value is
35451@example 35453@example
@@ -35488,7 +35490,7 @@ The variable @code{calc-embedded-open-close-new-formula-alist} is used to
35488set @code{calc-embedded-open-new-formula} and 35490set @code{calc-embedded-open-new-formula} and
35489@code{calc-embedded-close-new-formula} to different strings 35491@code{calc-embedded-close-new-formula} to different strings
35490depending on the major mode of the editing buffer. 35492depending on the major mode of the editing buffer.
35491It consists of a list of lists of the form 35493It consists of a list of lists of the form
35492@code{(@var{MAJOR-MODE} @var{OPEN-NEW-FORMULA-STRING} 35494@code{(@var{MAJOR-MODE} @var{OPEN-NEW-FORMULA-STRING}
35493@var{CLOSE-NEW-FORMULA-STRING})}, and its default value is 35495@var{CLOSE-NEW-FORMULA-STRING})}, and its default value is
35494@code{nil}. 35496@code{nil}.
@@ -35506,7 +35508,7 @@ necessary to add them to user-written annotations.
35506 35508
35507The default value of @code{calc-embedded-open-mode} is @code{"% "} 35509The default value of @code{calc-embedded-open-mode} is @code{"% "}
35508and the default value of @code{calc-embedded-close-mode} is 35510and the default value of @code{calc-embedded-close-mode} is
35509@code{"\n"}. 35511@code{"\n"}.
35510If you change the value of @code{calc-embedded-close-mode}, it is a good 35512If you change the value of @code{calc-embedded-close-mode}, it is a good
35511idea still to end with a newline so that mode annotations will appear on 35513idea still to end with a newline so that mode annotations will appear on
35512lines by themselves. 35514lines by themselves.
@@ -35515,7 +35517,7 @@ The variable @code{calc-embedded-open-close-mode-alist} is used to
35515set @code{calc-embedded-open-mode} and 35517set @code{calc-embedded-open-mode} and
35516@code{calc-embedded-close-mode} to different strings 35518@code{calc-embedded-close-mode} to different strings
35517expressions depending on the major mode of the editing buffer. 35519expressions depending on the major mode of the editing buffer.
35518It consists of a list of lists of the form 35520It consists of a list of lists of the form
35519@code{(@var{MAJOR-MODE} @var{OPEN-MODE-STRING} 35521@code{(@var{MAJOR-MODE} @var{OPEN-MODE-STRING}
35520@var{CLOSE-MODE-STRING})}, and its default value is 35522@var{CLOSE-MODE-STRING})}, and its default value is
35521@example 35523@example
@@ -35546,7 +35548,7 @@ units.
35546 35548
35547The default value of @code{calc-lu-power-reference} is @code{"mW"} 35549The default value of @code{calc-lu-power-reference} is @code{"mW"}
35548and the default value of @code{calc-lu-field-reference} is 35550and the default value of @code{calc-lu-field-reference} is
35549@code{"20 uPa"}. 35551@code{"20 uPa"}.
35550@end defvar 35552@end defvar
35551 35553
35552@defvar calc-note-threshold 35554@defvar calc-note-threshold
@@ -35562,15 +35564,15 @@ The default value of @code{calc-note-threshold} is 1.
35562@defvarx calc-selected-face 35564@defvarx calc-selected-face
35563@defvarx calc-nonselected-face 35565@defvarx calc-nonselected-face
35564See @ref{Displaying Selections}.@* 35566See @ref{Displaying Selections}.@*
35565The variable @code{calc-highlight-selections-with-faces} 35567The variable @code{calc-highlight-selections-with-faces}
35566determines how selected sub-formulas are distinguished. 35568determines how selected sub-formulas are distinguished.
35567If @code{calc-highlight-selections-with-faces} is nil, then 35569If @code{calc-highlight-selections-with-faces} is nil, then
35568a selected sub-formula is distinguished either by changing every 35570a selected sub-formula is distinguished either by changing every
35569character not part of the sub-formula with a dot or by changing every 35571character not part of the sub-formula with a dot or by changing every
35570character in the sub-formula with a @samp{#} sign. 35572character in the sub-formula with a @samp{#} sign.
35571If @code{calc-highlight-selections-with-faces} is t, 35573If @code{calc-highlight-selections-with-faces} is t,
35572then a selected sub-formula is distinguished either by displaying the 35574then a selected sub-formula is distinguished either by displaying the
35573non-selected portion of the formula with @code{calc-nonselected-face} 35575non-selected portion of the formula with @code{calc-nonselected-face}
35574or by displaying the selected sub-formula with 35576or by displaying the selected sub-formula with
35575@code{calc-nonselected-face}. 35577@code{calc-nonselected-face}.
35576@end defvar 35578@end defvar
@@ -36649,9 +36651,9 @@ input data set. Each entry may be a single value or a vector of values.
36649 36651
36650@c 20 36652@c 20
36651@item 36653@item
36652With a prefix argument of 1, take a single 36654With a prefix argument of 1, take a single
36653@texline @var{n}@math{\times2} 36655@texline @var{n}@math{\times2}
36654@infoline @mathit{@var{N}x2} 36656@infoline @mathit{@var{N}x2}
36655matrix from the stack instead of two separate data vectors. 36657matrix from the stack instead of two separate data vectors.
36656 36658
36657@c 21 36659@c 21
@@ -36752,7 +36754,7 @@ Variable name may be a single digit or a full name.
36752 36754
36753@c 30 36755@c 30
36754@item 36756@item
36755Editing occurs in a separate buffer. Press @kbd{C-c C-c} (or 36757Editing occurs in a separate buffer. Press @kbd{C-c C-c} (or
36756@key{LFD}, or in some cases @key{RET}) to finish the edit, or kill the 36758@key{LFD}, or in some cases @key{RET}) to finish the edit, or kill the
36757buffer with @kbd{C-x k} to cancel the edit. The @key{LFD} key prevents evaluation 36759buffer with @kbd{C-x k} to cancel the edit. The @key{LFD} key prevents evaluation
36758of the result of the edit. 36760of the result of the edit.
@@ -36852,7 +36854,7 @@ to evaluate variables.
36852@item 36854@item
36853The variable is replaced by the formula shown on the right. The 36855The variable is replaced by the formula shown on the right. The
36854Inverse flag reverses the order of the operands, e.g., @kbd{I s - x} 36856Inverse flag reverses the order of the operands, e.g., @kbd{I s - x}
36855assigns 36857assigns
36856@texline @math{x \coloneq a-x}. 36858@texline @math{x \coloneq a-x}.
36857@infoline @expr{x := a-x}. 36859@infoline @expr{x := a-x}.
36858 36860
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index a9339162666..1a192123c3e 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -147,10 +147,7 @@ CC Mode
147@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 147@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
148 148
149@comment Define an index for syntactic symbols. 149@comment Define an index for syntactic symbols.
150@ifnottex @c In texi2dvi, the @defindex would create an empty cc-mode.ss
151 @c For Info, unlike tex, @syncodeindex needs a matching @defindex.
152@defindex ss 150@defindex ss
153@end ifnottex
154 151
155@comment Combine key, syntactic symbol and concept indices into one. 152@comment Combine key, syntactic symbol and concept indices into one.
156@syncodeindex ss cp 153@syncodeindex ss cp
@@ -159,7 +156,7 @@ CC Mode
159@copying 156@copying
160This manual is for CC Mode in Emacs. 157This manual is for CC Mode in Emacs.
161 158
162Copyright @copyright{} 1995-2011 Free Software Foundation, Inc. 159Copyright @copyright{} 1995-2012 Free Software Foundation, Inc.
163 160
164@quotation 161@quotation
165Permission is granted to copy, distribute and/or modify this document 162Permission is granted to copy, distribute and/or modify this document
@@ -190,7 +187,7 @@ developing GNU and promoting software freedom.''
190@titlepage 187@titlepage
191@sp 10 188@sp 10
192 189
193@center @titlefont{CC Mode 5.31} 190@center @titlefont{CC Mode 5.32}
194@sp 2 191@sp 2
195@center @subtitlefont{A GNU Emacs mode for editing C and C-like languages} 192@center @subtitlefont{A GNU Emacs mode for editing C and C-like languages}
196@sp 2 193@sp 2
@@ -287,11 +284,11 @@ Configuration Basics
287 284
288Styles 285Styles
289 286
290* Built-in Styles:: 287* Built-in Styles::
291* Choosing a Style:: 288* Choosing a Style::
292* Adding Styles:: 289* Adding Styles::
293* Guessing the Style:: 290* Guessing the Style::
294* File Styles:: 291* File Styles::
295 292
296Customizing Auto-newlines 293Customizing Auto-newlines
297 294
@@ -311,19 +308,19 @@ Indentation Engine Basics
311 308
312Syntactic Symbols 309Syntactic Symbols
313 310
314* Function Symbols:: 311* Function Symbols::
315* Class Symbols:: 312* Class Symbols::
316* Conditional Construct Symbols:: 313* Conditional Construct Symbols::
317* Switch Statement Symbols:: 314* Switch Statement Symbols::
318* Brace List Symbols:: 315* Brace List Symbols::
319* External Scope Symbols:: 316* External Scope Symbols::
320* Paren List Symbols:: 317* Paren List Symbols::
321* Literal Symbols:: 318* Literal Symbols::
322* Multiline Macro Symbols:: 319* Multiline Macro Symbols::
323* Objective-C Method Symbols:: 320* Objective-C Method Symbols::
324* Java Symbols:: 321* Java Symbols::
325* Statement Block Symbols:: 322* Statement Block Symbols::
326* K&R Symbols:: 323* K&R Symbols::
327 324
328Customizing Indentation 325Customizing Indentation
329 326
@@ -341,6 +338,11 @@ Line-Up Functions
341* Comment Line-Up:: 338* Comment Line-Up::
342* Misc Line-Up:: 339* Misc Line-Up::
343 340
341Customizing Macros
342
343* Macro Backslashes::
344* Macros with ;::
345
344@end detailmenu 346@end detailmenu
345@end menu 347@end menu
346 348
@@ -373,7 +375,7 @@ was added in version 5.30.
373 375
374This manual describes @ccmode{} 376This manual describes @ccmode{}
375@comment The following line must appear on its own, so that the 377@comment The following line must appear on its own, so that the
376version 5.31. 378version 5.32.
377@comment Release.py script can update the version number automatically 379@comment Release.py script can update the version number automatically
378 380
379@ccmode{} supports the editing of K&R and ANSI C, C++, Objective-C, 381@ccmode{} supports the editing of K&R and ANSI C, C++, Objective-C,
@@ -655,6 +657,10 @@ expression, to some statements, or perhaps to whole functions, the
655syntactic recognition can be wrong. @ccmode{} manages to figure it 657syntactic recognition can be wrong. @ccmode{} manages to figure it
656out correctly most of the time, though. 658out correctly most of the time, though.
657 659
660Some macros, when invoked, ''have their own semicolon''. To get the
661next line indented correctly, rather than as a continuation line,
662@xref{Macros with ;}.
663
658Reindenting large sections of code can take a long time. When 664Reindenting large sections of code can take a long time. When
659@ccmode{} reindents a region of code, it is essentially equivalent to 665@ccmode{} reindents a region of code, it is essentially equivalent to
660hitting @key{TAB} on every line of the region. 666hitting @key{TAB} on every line of the region.
@@ -882,6 +888,8 @@ lines.
882@itemx @kbd{C-M-e} (@code{c-end-of-defun}) 888@itemx @kbd{C-M-e} (@code{c-end-of-defun})
883@findex c-beginning-of-defun 889@findex c-beginning-of-defun
884@findex c-end-of-defun 890@findex c-end-of-defun
891@vindex c-defun-tactic
892@vindex defun-tactic (c-)
885 893
886Move to the beginning or end of the current or next function. Other 894Move to the beginning or end of the current or next function. Other
887constructs (such as a structs or classes) which have a brace block 895constructs (such as a structs or classes) which have a brace block
@@ -895,6 +903,15 @@ commands try to leave point at the beginning of a line near the actual
895start or end of the function. This occasionally causes point not to 903start or end of the function. This occasionally causes point not to
896move at all. 904move at all.
897 905
906By default, these commands will recognize functions contained within a
907@dfn{declaration scope} such as a C++ @code{class} or @code{namespace}
908construct, should the point start inside it. If @ccmode fails to find
909function beginnings or ends inside the current declaration scope, it
910will search the enclosing scopes. If you want @ccmode to recognize
911functions only at the top level@footnote{this was @ccmode{}'s
912behavior prior to version 5.32.}, set @code{c-defun-tactic} to
913@code{t}.
914
898These functions are analogous to the Emacs built-in commands 915These functions are analogous to the Emacs built-in commands
899@code{beginning-of-defun} and @code{end-of-defun}, except they 916@code{beginning-of-defun} and @code{end-of-defun}, except they
900eliminate the constraint that the top-level opening brace of the defun 917eliminate the constraint that the top-level opening brace of the defun
@@ -1153,7 +1170,7 @@ Full details on how these minor modes work are at @ref{Electric Keys},
1153and @ref{Indentation Engine Basics}. 1170and @ref{Indentation Engine Basics}.
1154 1171
1155You can toggle each of these minor modes on and off, and you can 1172You can toggle each of these minor modes on and off, and you can
1156configure @ccmode{} so that it starts up with your favourite 1173configure @ccmode{} so that it starts up with your favorite
1157combination of them (@pxref{Sample .emacs File}). By default, when 1174combination of them (@pxref{Sample .emacs File}). By default, when
1158you initialize a buffer, electric mode and syntactic-indentation mode 1175you initialize a buffer, electric mode and syntactic-indentation mode
1159are enabled but the other two modes are disabled. 1176are enabled but the other two modes are disabled.
@@ -2140,7 +2157,7 @@ A space between the function name and opening parenthesis when calling
2140a user function. The last character of the function name and the 2157a user function. The last character of the function name and the
2141opening parenthesis are highlighted. This font-locking rule will 2158opening parenthesis are highlighted. This font-locking rule will
2142spuriously highlight a valid concatenation expression where an 2159spuriously highlight a valid concatenation expression where an
2143identifier precedes a parenthesised expression. Unfortunately. 2160identifier precedes a parenthesized expression. Unfortunately.
2144 2161
2145@item 2162@item
2146Whitespace following the @samp{\} in what otherwise looks like an 2163Whitespace following the @samp{\} in what otherwise looks like an
@@ -2180,7 +2197,7 @@ method, ``Top-level commands or the customization interface''.
2180 2197
2181If you make conflicting settings in several of these ways, the way 2198If you make conflicting settings in several of these ways, the way
2182that takes precedence is the one that appears latest in this list: 2199that takes precedence is the one that appears latest in this list:
2183@itemize @asis 2200@itemize @w{}
2184@item 2201@item
2185@table @asis 2202@table @asis
2186@item Style 2203@item Style
@@ -2517,11 +2534,11 @@ As an alternative to writing a style definition yourself, you can have
2517already formatted piece of your code, @ref{Guessing the Style}. 2534already formatted piece of your code, @ref{Guessing the Style}.
2518 2535
2519@menu 2536@menu
2520* Built-in Styles:: 2537* Built-in Styles::
2521* Choosing a Style:: 2538* Choosing a Style::
2522* Adding Styles:: 2539* Adding Styles::
2523* Guessing the Style:: 2540* Guessing the Style::
2524* File Styles:: 2541* File Styles::
2525@end menu 2542@end menu
2526 2543
2527@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2544@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -4246,19 +4263,19 @@ Java. @ref{Java Symbols}.
4246@end table 4263@end table
4247 4264
4248@menu 4265@menu
4249* Function Symbols:: 4266* Function Symbols::
4250* Class Symbols:: 4267* Class Symbols::
4251* Conditional Construct Symbols:: 4268* Conditional Construct Symbols::
4252* Switch Statement Symbols:: 4269* Switch Statement Symbols::
4253* Brace List Symbols:: 4270* Brace List Symbols::
4254* External Scope Symbols:: 4271* External Scope Symbols::
4255* Paren List Symbols:: 4272* Paren List Symbols::
4256* Literal Symbols:: 4273* Literal Symbols::
4257* Multiline Macro Symbols:: 4274* Multiline Macro Symbols::
4258* Objective-C Method Symbols:: 4275* Objective-C Method Symbols::
4259* Java Symbols:: 4276* Java Symbols::
4260* Statement Block Symbols:: 4277* Statement Block Symbols::
4261* K&R Symbols:: 4278* K&R Symbols::
4262@end menu 4279@end menu
4263 4280
4264@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 4281@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -6550,6 +6567,9 @@ custom line-up function associated with it.
6550@section Other Special Indentations 6567@section Other Special Indentations
6551@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6568@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6552 6569
6570To configure macros which you invoke without a terminating @samp{;},
6571see @xref{Macros with ;}.
6572
6553Here are the remaining odds and ends regarding indentation: 6573Here are the remaining odds and ends regarding indentation:
6554 6574
6555@defopt c-label-minimum-indentation 6575@defopt c-label-minimum-indentation
@@ -6601,6 +6621,13 @@ functions to this hook, not remove them. @xref{Style Variables}.
6601@cindex preprocessor directives 6621@cindex preprocessor directives
6602@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6622@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6603 6623
6624Preprocessor macros in C, C++, and Objective C (introduced by
6625@code{#define}) have a syntax different from the main language---for
6626example, a macro declaration is not terminated by a semicolon, and if
6627it is more than a line long, line breaks in it must be escaped with
6628backslashes. @ccmode{} has some commands to manipulate these, see
6629@ref{Macro Backslashes}.
6630
6604Normally, the lines in a multi-line macro are indented relative to 6631Normally, the lines in a multi-line macro are indented relative to
6605each other as though they were code. You can suppress this behavior 6632each other as though they were code. You can suppress this behavior
6606by setting the following user option: 6633by setting the following user option:
@@ -6612,6 +6639,28 @@ is @code{nil}, all lines inside macro definitions are analyzed as
6612@code{cpp-macro-cont}. 6639@code{cpp-macro-cont}.
6613@end defopt 6640@end defopt
6614 6641
6642Because a macro can expand into anything at all, near where one is
6643invoked @ccmode{} can only indent and fontify code heuristically.
6644Sometimes it gets it wrong. Usually you should try to design your
6645macros so that they ''look like ordinary code'' when you invoke them.
6646However, one situation is so common that @ccmode{} handles it
6647specially: that is when certain macros needn't (or mustn't) be
6648followed by a @samp{;}. You need to configure @ccmode{} to handle
6649these macros properly, see @ref{Macros with ;}.
6650
6651@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6652@menu
6653* Macro Backslashes::
6654* Macros with ;::
6655@end menu
6656
6657@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6658@node Macro Backslashes, Macros with ;, Custom Macros, Custom Macros
6659@comment node-name, next, previous, up
6660@section Customizing Macro Backslashes
6661@cindex @code{#define}
6662@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6663
6615@ccmode{} provides some tools to help keep the line continuation 6664@ccmode{} provides some tools to help keep the line continuation
6616backslashes in macros neat and tidy. Their precise action is 6665backslashes in macros neat and tidy. Their precise action is
6617customized with these variables: 6666customized with these variables:
@@ -6654,6 +6703,62 @@ get aligned only when you explicitly invoke the command
6654@end defopt 6703@end defopt
6655 6704
6656@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6705@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6706@node Macros with ;, , Macro Backslashes, Custom Macros
6707@comment node-name, next, previous, up
6708@section Macros with semicolons
6709@cindex macros with semicolons
6710@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6711Macros which needn't (or mustn't) be followed by a semicolon when you
6712invoke them, @dfn{macros with semicolons}, are very common. These can
6713cause @ccmode{} to parse the next line wrongly as a
6714@code{statement-cont} (@pxref{Function Symbols}) and thus mis-indent
6715it.
6716
6717You can prevent this by specifying which macros have semicolons. It
6718doesn't matter whether or not such a macro has a parameter list:
6719
6720@defopt c-macro-names-with-semicolon
6721@vindex macro-names-with-semicolon (c-)
6722This buffer-local variable specifies which macros have semicolons.
6723After setting its value, you need to call
6724@code{c-make-macro-with-semi-re} for it to take effect. It should be
6725set to one of these values:
6726
6727@table @asis
6728@item nil
6729There are no macros with semicolons.
6730@item a list of strings
6731Each string is the name of a macro with a semicolon. Only valid
6732@code{#define} names are allowed here. For example, to set the
6733default value, you could write the following into your @file{.emacs}:
6734
6735@example
6736(setq c-macro-names-with-semicolon
6737 '("Q_OBJECT" "Q_PROPERTY" "Q_DECLARE" "Q_ENUMS"))
6738@end example
6739
6740@item a regular expression
6741This matches each symbol which is a macro with a semicolon. It must
6742not match any string which isn't a valid @code{#define} name. For
6743example:
6744
6745@example
6746(setq c-macro-names-with-semicolon
6747 "\\<\\(CLEAN_UP_AND_RETURN\\|Q_[[:upper:]]+\\)\\>")
6748@end example
6749@end table
6750@end defopt
6751
6752@defun c-make-macro-with-semi-re
6753@findex make-macro-with-semi-re (c-)
6754Call this (non-interactive) function, which sets internal variables,
6755each time you change the value of
6756@code{c-macro-names-with-semicolon}. It takes no arguments, and its
6757return value has no meaning. This function is called by @ccmode{}'s
6758initialization code.
6759@end defun
6760
6761@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6657@node Odds and Ends, Sample .emacs File, Custom Macros, Top 6762@node Odds and Ends, Sample .emacs File, Custom Macros, Top
6658@comment node-name, next, previous, up 6763@comment node-name, next, previous, up
6659@chapter Odds and Ends 6764@chapter Odds and Ends
@@ -6837,7 +6942,7 @@ circumstances, can locate the top-most opening brace much more quickly than
6837styles where these braces are hung (e.g. most JDK-derived Java styles), 6942styles where these braces are hung (e.g. most JDK-derived Java styles),
6838this hack can improve performance of the core syntax parsing routines 6943this hack can improve performance of the core syntax parsing routines
6839from 3 to 60 times. However, for styles which @emph{do} conform to 6944from 3 to 60 times. However, for styles which @emph{do} conform to
6840Emacs' recommended style of putting top-level braces in column zero, 6945Emacs's recommended style of putting top-level braces in column zero,
6841this hack can degrade performance by about as much. Thus this variable 6946this hack can degrade performance by about as much. Thus this variable
6842is set to @code{nil} by default, since the Emacs-friendly styles should 6947is set to @code{nil} by default, since the Emacs-friendly styles should
6843be more common (and encouraged!). Note that this variable has no effect 6948be more common (and encouraged!). Note that this variable has no effect
@@ -6948,7 +7053,7 @@ Set the variable @code{c-basic-offset}. @xref{Getting Started}.
6948@kindex C-j 7053@kindex C-j
6949@emph{Why doesn't the @kbd{RET} key indent the new line?} 7054@emph{Why doesn't the @kbd{RET} key indent the new line?}
6950 7055
6951Emacs' convention is that @kbd{RET} just adds a newline, and that 7056Emacs's convention is that @kbd{RET} just adds a newline, and that
6952@kbd{C-j} adds a newline and indents it. You can make @kbd{RET} do this 7057@kbd{C-j} adds a newline and indents it. You can make @kbd{RET} do this
6953too by adding this to your @code{c-initialization-hook}: 7058too by adding this to your @code{c-initialization-hook}:
6954 7059
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index ab54b99138a..d35c14acd1d 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -5,7 +5,7 @@
5@copying 5@copying
6This file documents the GNU Emacs Common Lisp emulation package. 6This file documents the GNU Emacs Common Lisp emulation package.
7 7
8Copyright @copyright{} 1993, 2001-2011 Free Software Foundation, Inc. 8Copyright @copyright{} 1993, 2001-2012 Free Software Foundation, Inc.
9 9
10@quotation 10@quotation
11Permission is granted to copy, distribute and/or modify this document 11Permission is granted to copy, distribute and/or modify this document
@@ -60,17 +60,17 @@ does assume a basic familiarity with Emacs Lisp.
60 60
61@menu 61@menu
62* Overview:: Installation, usage, etc. 62* Overview:: Installation, usage, etc.
63* Program Structure:: Arglists, `eval-when', `defalias' 63* Program Structure:: Arglists, @code{eval-when}, @code{defalias}
64* Predicates:: `typep' and `equalp' 64* Predicates:: @code{typep} and @code{equalp}
65* Control Structure:: `setf', `do', `loop', etc. 65* Control Structure:: @code{setf}, @code{do}, @code{loop}, etc.
66* Macros:: Destructuring, `define-compiler-macro' 66* Macros:: Destructuring, @code{define-compiler-macro}
67* Declarations:: `proclaim', `declare', etc. 67* Declarations:: @code{proclaim}, @code{declare}, etc.
68* Symbols:: Property lists, `gensym' 68* Symbols:: Property lists, @code{gensym}
69* Numbers:: Predicates, functions, random numbers 69* Numbers:: Predicates, functions, random numbers
70* Sequences:: Mapping, functions, searching, sorting 70* Sequences:: Mapping, functions, searching, sorting
71* Lists:: `caddr', `sublis', `member*', `assoc*', etc. 71* Lists:: @code{caddr}, @code{sublis}, @code{member*}, @code{assoc*}, etc.
72* Structures:: `defstruct' 72* Structures:: @code{defstruct}
73* Assertions:: `check-type', `assert', `ignore-errors'. 73* Assertions:: @code{check-type}, @code{assert}, @code{ignore-errors}.
74 74
75* Efficiency Concerns:: Hints and techniques 75* Efficiency Concerns:: Hints and techniques
76* Common Lisp Compatibility:: All known differences with Steele 76* Common Lisp Compatibility:: All known differences with Steele
@@ -128,7 +128,7 @@ features.
128 128
129@item 129@item
130Some features conflict with existing things in Emacs Lisp. For 130Some features conflict with existing things in Emacs Lisp. For
131example, Emacs' @code{assoc} function is incompatible with the 131example, Emacs's @code{assoc} function is incompatible with the
132Common Lisp @code{assoc}. In such cases, this package usually 132Common Lisp @code{assoc}. In such cases, this package usually
133adds the suffix @samp{*} to the function name of the Common 133adds the suffix @samp{*} to the function name of the Common
134Lisp version of the function (e.g., @code{assoc*}). 134Lisp version of the function (e.g., @code{assoc*}).
@@ -293,8 +293,8 @@ do with programs as a whole: advanced argument lists for functions,
293and the @code{eval-when} construct. 293and the @code{eval-when} construct.
294 294
295@menu 295@menu
296* Argument Lists:: `&key', `&aux', `defun*', `defmacro*'. 296* Argument Lists:: @code{&key}, @code{&aux}, @code{defun*}, @code{defmacro*}.
297* Time of Evaluation:: The `eval-when' construct. 297* Time of Evaluation:: The @code{eval-when} construct.
298@end menu 298@end menu
299 299
300@iftex 300@iftex
@@ -683,8 +683,8 @@ This section describes functions for testing whether various
683facts are true or false. 683facts are true or false.
684 684
685@menu 685@menu
686* Type Predicates:: `typep', `deftype', and `coerce' 686* Type Predicates:: @code{typep}, @code{deftype}, and @code{coerce}
687* Equality Predicates:: `equalp' 687* Equality Predicates:: @code{equalp}
688@end menu 688@end menu
689 689
690@node Type Predicates, Equality Predicates, Predicates, Predicates 690@node Type Predicates, Equality Predicates, Predicates, Predicates
@@ -858,14 +858,14 @@ various advanced control structures, including the powerful
858constructs. 858constructs.
859 859
860@menu 860@menu
861* Assignment:: The `psetq' form 861* Assignment:: The @code{psetq} form
862* Generalized Variables:: `setf', `incf', `push', etc. 862* Generalized Variables:: @code{setf}, @code{incf}, @code{push}, etc.
863* Variable Bindings:: `progv', `lexical-let', `flet', `macrolet' 863* Variable Bindings:: @code{progv}, @code{lexical-let}, @code{flet}, @code{macrolet}
864* Conditionals:: `case', `typecase' 864* Conditionals:: @code{case}, @code{typecase}
865* Blocks and Exits:: `block', `return', `return-from' 865* Blocks and Exits:: @code{block}, @code{return}, @code{return-from}
866* Iteration:: `do', `dotimes', `dolist', `do-symbols' 866* Iteration:: @code{do}, @code{dotimes}, @code{dolist}, @code{do-symbols}
867* Loop Facility:: The Common Lisp `loop' macro 867* Loop Facility:: The Common Lisp @code{loop} macro
868* Multiple Values:: `values', `multiple-value-bind', etc. 868* Multiple Values:: @code{values}, @code{multiple-value-bind}, etc.
869@end menu 869@end menu
870 870
871@node Assignment, Generalized Variables, Control Structure, Control Structure 871@node Assignment, Generalized Variables, Control Structure, Control Structure
@@ -929,9 +929,9 @@ Just as certain forms like @code{a[i]} can be lvalues in C, there
929is a set of forms that can be generalized variables in Lisp. 929is a set of forms that can be generalized variables in Lisp.
930 930
931@menu 931@menu
932* Basic Setf:: `setf' and place forms 932* Basic Setf:: @code{setf} and place forms
933* Modify Macros:: `incf', `push', `rotatef', `letf', `callf', etc. 933* Modify Macros:: @code{incf}, @code{push}, @code{rotatef}, @code{letf}, @code{callf}, etc.
934* Customizing Setf:: `define-modify-macro', `defsetf', `define-setf-method' 934* Customizing Setf:: @code{define-modify-macro}, @code{defsetf}, @code{define-setf-method}
935@end menu 935@end menu
936 936
937@node Basic Setf, Modify Macros, Generalized Variables, Generalized Variables 937@node Basic Setf, Modify Macros, Generalized Variables, Generalized Variables
@@ -1540,10 +1540,10 @@ analogous to Lisp's built-in @code{let} form.
1540are also related to variable bindings. 1540are also related to variable bindings.
1541 1541
1542@menu 1542@menu
1543* Dynamic Bindings:: The `progv' form 1543* Dynamic Bindings:: The @code{progv} form
1544* Lexical Bindings:: `lexical-let' and lexical closures 1544* Lexical Bindings:: @code{lexical-let} and lexical closures
1545* Function Bindings:: `flet' and `labels' 1545* Function Bindings:: @code{flet} and @code{labels}
1546* Macro Bindings:: `macrolet' and `symbol-macrolet' 1546* Macro Bindings:: @code{macrolet} and @code{symbol-macrolet}
1547@end menu 1547@end menu
1548 1548
1549@node Dynamic Bindings, Lexical Bindings, Variable Bindings, Variable Bindings 1549@node Dynamic Bindings, Lexical Bindings, Variable Bindings, Variable Bindings
@@ -2094,7 +2094,7 @@ of a list. @var{list} should evaluate to a list; the body @var{forms}
2094are executed with @var{var} bound to each element of the list in 2094are executed with @var{var} bound to each element of the list in
2095turn. Finally, the @var{result} form (or @code{nil}) is evaluated 2095turn. Finally, the @var{result} form (or @code{nil}) is evaluated
2096with @var{var} bound to @code{nil} to produce the result returned by 2096with @var{var} bound to @code{nil} to produce the result returned by
2097the loop. Unlike with Emacs's built in @code{dolist}, the loop is 2097the loop. Unlike with Emacs'ss built in @code{dolist}, the loop is
2098surrounded by an implicit @code{nil} block. 2098surrounded by an implicit @code{nil} block.
2099@end defspec 2099@end defspec
2100 2100
@@ -2104,7 +2104,7 @@ of times. The body is executed with @var{var} bound to the integers
2104from zero (inclusive) to @var{count} (exclusive), in turn. Then 2104from zero (inclusive) to @var{count} (exclusive), in turn. Then
2105the @code{result} form is evaluated with @var{var} bound to the total 2105the @code{result} form is evaluated with @var{var} bound to the total
2106number of iterations that were done (i.e., @code{(max 0 @var{count})}) 2106number of iterations that were done (i.e., @code{(max 0 @var{count})})
2107to get the return value for the loop form. Unlike with Emacs's built in 2107to get the return value for the loop form. Unlike with Emacs'ss built in
2108@code{dolist}, the loop is surrounded by an implicit @code{nil} block. 2108@code{dolist}, the loop is surrounded by an implicit @code{nil} block.
2109@end defspec 2109@end defspec
2110 2110
@@ -2140,12 +2140,12 @@ construct called the ``Loop Facility'' or ``@code{loop} macro,''
2140with an easy-to-use but very powerful and expressive syntax. 2140with an easy-to-use but very powerful and expressive syntax.
2141 2141
2142@menu 2142@menu
2143* Loop Basics:: `loop' macro, basic clause structure 2143* Loop Basics:: @code{loop} macro, basic clause structure
2144* Loop Examples:: Working examples of `loop' macro 2144* Loop Examples:: Working examples of @code{loop} macro
2145* For Clauses:: Clauses introduced by `for' or `as' 2145* For Clauses:: Clauses introduced by @code{for} or @code{as}
2146* Iteration Clauses:: `repeat', `while', `thereis', etc. 2146* Iteration Clauses:: @code{repeat}, @code{while}, @code{thereis}, etc.
2147* Accumulation Clauses:: `collect', `sum', `maximize', etc. 2147* Accumulation Clauses:: @code{collect}, @code{sum}, @code{maximize}, etc.
2148* Other Clauses:: `with', `if', `initially', `finally' 2148* Other Clauses:: @code{with}, @code{if}, @code{initially}, @code{finally}
2149@end menu 2149@end menu
2150 2150
2151@node Loop Basics, Loop Examples, Loop Facility, Loop Facility 2151@node Loop Basics, Loop Examples, Loop Facility, Loop Facility
@@ -2226,7 +2226,7 @@ returned by @code{buffer-list}. For each buffer @code{buf},
2226it calls @code{buffer-file-name} and collects the results into 2226it calls @code{buffer-file-name} and collects the results into
2227a list, which is then returned from the @code{loop} construct. 2227a list, which is then returned from the @code{loop} construct.
2228The result is a list of the file names of all the buffers in 2228The result is a list of the file names of all the buffers in
2229Emacs' memory. The words @code{for}, @code{in}, and @code{collect} 2229Emacs's memory. The words @code{for}, @code{in}, and @code{collect}
2230are reserved words in the @code{loop} language. 2230are reserved words in the @code{loop} language.
2231 2231
2232@example 2232@example
@@ -2586,7 +2586,14 @@ the trailing values are ignored, and if there are more variables
2586than values the trailing variables get the value @code{nil}. 2586than values the trailing variables get the value @code{nil}.
2587If @code{nil} is used as a variable name, the corresponding 2587If @code{nil} is used as a variable name, the corresponding
2588values are ignored. Destructuring may be nested, and dotted 2588values are ignored. Destructuring may be nested, and dotted
2589lists of variables like @code{(x . y)} are allowed. 2589lists of variables like @code{(x . y)} are allowed, so for example
2590to process an alist
2591
2592@example
2593(loop for (key . value) in '((a . 1) (b . 2))
2594 collect value)
2595 @result{} (1 2)
2596@end example
2590 2597
2591@node Iteration Clauses, Accumulation Clauses, For Clauses, Loop Facility 2598@node Iteration Clauses, Accumulation Clauses, For Clauses, Loop Facility
2592@subsection Iteration Clauses 2599@subsection Iteration Clauses
@@ -3177,8 +3184,8 @@ This package defines several symbol-related features that were
3177missing from Emacs Lisp. 3184missing from Emacs Lisp.
3178 3185
3179@menu 3186@menu
3180* Property Lists:: `get*', `remprop', `getf', `remf' 3187* Property Lists:: @code{get*}, @code{remprop}, @code{getf}, @code{remf}
3181* Creating Symbols:: `gensym', `gentemp' 3188* Creating Symbols:: @code{gensym}, @code{gentemp}
3182@end menu 3189@end menu
3183 3190
3184@node Property Lists, Creating Symbols, Symbols, Symbols 3191@node Property Lists, Creating Symbols, Symbols, Symbols
@@ -3323,10 +3330,10 @@ This section defines a few simple Common Lisp operations on numbers
3323which were left out of Emacs Lisp. 3330which were left out of Emacs Lisp.
3324 3331
3325@menu 3332@menu
3326* Predicates on Numbers:: `plusp', `oddp', `floatp-safe', etc. 3333* Predicates on Numbers:: @code{plusp}, @code{oddp}, @code{floatp-safe}, etc.
3327* Numerical Functions:: `abs', `floor*', etc. 3334* Numerical Functions:: @code{abs}, @code{floor*}, etc.
3328* Random Numbers:: `random*', `make-random-state' 3335* Random Numbers:: @code{random*}, @code{make-random-state}
3329* Implementation Parameters:: `most-positive-float' 3336* Implementation Parameters:: @code{most-positive-float}
3330@end menu 3337@end menu
3331 3338
3332@iftex 3339@iftex
@@ -3623,10 +3630,10 @@ Emacs Lisp includes a few of these, notably @code{elt} and
3623 3630
3624@menu 3631@menu
3625* Sequence Basics:: Arguments shared by all sequence functions 3632* Sequence Basics:: Arguments shared by all sequence functions
3626* Mapping over Sequences:: `mapcar*', `mapcan', `map', `every', etc. 3633* Mapping over Sequences:: @code{mapcar*}, @code{mapcan}, @code{map}, @code{every}, etc.
3627* Sequence Functions:: `subseq', `remove*', `substitute', etc. 3634* Sequence Functions:: @code{subseq}, @code{remove*}, @code{substitute}, etc.
3628* Searching Sequences:: `find', `position', `count', `search', etc. 3635* Searching Sequences:: @code{find}, @code{position}, @code{count}, @code{search}, etc.
3629* Sorting Sequences:: `sort*', `stable-sort', `merge' 3636* Sorting Sequences:: @code{sort*}, @code{stable-sort}, @code{merge}
3630@end menu 3637@end menu
3631 3638
3632@node Sequence Basics, Mapping over Sequences, Sequences, Sequences 3639@node Sequence Basics, Mapping over Sequences, Sequences, Sequences
@@ -3863,7 +3870,7 @@ with @var{sequence}.
3863As an extension to Common Lisp, @var{start} and/or @var{end} 3870As an extension to Common Lisp, @var{start} and/or @var{end}
3864may be negative, in which case they represent a distance back 3871may be negative, in which case they represent a distance back
3865from the end of the sequence. This is for compatibility with 3872from the end of the sequence. This is for compatibility with
3866Emacs' @code{substring} function. Note that @code{subseq} is 3873Emacs's @code{substring} function. Note that @code{subseq} is
3867the @emph{only} sequence function that allows negative 3874the @emph{only} sequence function that allows negative
3868@var{start} and @var{end}. 3875@var{start} and @var{end}.
3869 3876
@@ -4052,7 +4059,7 @@ is less than (not equal to) its second argument. For example,
4052for sorting numbers and strings, respectively; @code{>} would sort 4059for sorting numbers and strings, respectively; @code{>} would sort
4053numbers into decreasing rather than increasing order. 4060numbers into decreasing rather than increasing order.
4054 4061
4055This function differs from Emacs' built-in @code{sort} in that it 4062This function differs from Emacs's built-in @code{sort} in that it
4056can operate on any type of sequence, not just lists. Also, it 4063can operate on any type of sequence, not just lists. Also, it
4057accepts a @code{:key} argument which is used to preprocess data 4064accepts a @code{:key} argument which is used to preprocess data
4058fed to the @var{predicate} function. For example, 4065fed to the @var{predicate} function. For example,
@@ -4106,10 +4113,10 @@ a merged sequence which is (stably) sorted according to
4106The functions described here operate on lists. 4113The functions described here operate on lists.
4107 4114
4108@menu 4115@menu
4109* List Functions:: `caddr', `first', `list*', etc. 4116* List Functions:: @code{caddr}, @code{first}, @code{list*}, etc.
4110* Substitution of Expressions:: `subst', `sublis', etc. 4117* Substitution of Expressions:: @code{subst}, @code{sublis}, etc.
4111* Lists as Sets:: `member*', `adjoin', `union', etc. 4118* Lists as Sets:: @code{member*}, @code{adjoin}, @code{union}, etc.
4112* Association Lists:: `assoc*', `rassoc*', `acons', `pairlis' 4119* Association Lists:: @code{assoc*}, @code{rassoc*}, @code{acons}, @code{pairlis}
4113@end menu 4120@end menu
4114 4121
4115@node List Functions, Substitution of Expressions, Lists, Lists 4122@node List Functions, Substitution of Expressions, Lists, Lists
@@ -5179,7 +5186,7 @@ variables no collision can occur.)
5179 5186
5180@xref{Lexical Bindings}, for a description of the @code{lexical-let} 5187@xref{Lexical Bindings}, for a description of the @code{lexical-let}
5181form which establishes a Common Lisp-style lexical binding, and some 5188form which establishes a Common Lisp-style lexical binding, and some
5182examples of how it differs from Emacs' regular @code{let}. 5189examples of how it differs from Emacs's regular @code{let}.
5183 5190
5184@item 5191@item
5185Reader macros. Common Lisp includes a second type of macro that 5192Reader macros. Common Lisp includes a second type of macro that
diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi
index e6fb00d3482..204afe7056e 100644
--- a/doc/misc/dbus.texi
+++ b/doc/misc/dbus.texi
@@ -9,7 +9,7 @@
9@syncodeindex fn cp 9@syncodeindex fn cp
10 10
11@copying 11@copying
12Copyright @copyright{} 2007-2011 Free Software Foundation, Inc. 12Copyright @copyright{} 2007-2012 Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
15Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
@@ -332,7 +332,7 @@ Example:
332@code{method}, @code{signal}, and @code{property} elements. Unlike 332@code{method}, @code{signal}, and @code{property} elements. Unlike
333properties, which can change their values during lifetime of a D-Bus 333properties, which can change their values during lifetime of a D-Bus
334object, annotations are static. Often they are used for code 334object, annotations are static. Often they are used for code
335generators of D-Bus langugae bindings. Example: 335generators of D-Bus language bindings. Example:
336 336
337@example 337@example
338<annotation name="de.berlios.Pinot.GetStatistics" value="pinotDBus"/> 338<annotation name="de.berlios.Pinot.GetStatistics" value="pinotDBus"/>
@@ -553,7 +553,7 @@ data from a running system:
553@node Methods and Signal 553@node Methods and Signal
554@section Applying the functionality. 554@section Applying the functionality.
555 555
556Methods and signals are the communicatione means to D-Bus. The 556Methods and signals are the communication means to D-Bus. The
557following functions return their specifications. 557following functions return their specifications.
558 558
559@defun dbus-introspect-get-method-names bus service path interface 559@defun dbus-introspect-get-method-names bus service path interface
@@ -1606,9 +1606,10 @@ D-Bus @var{bus}.
1606 1606
1607@var{service} is the D-Bus service name used by the sending D-Bus 1607@var{service} is the D-Bus service name used by the sending D-Bus
1608object. It can be either a known name or the unique name of the D-Bus 1608object. It can be either a known name or the unique name of the D-Bus
1609object sending the signal. In case of a unique name, signals won't be 1609object sending the signal. A known name will be mapped onto the
1610received any longer once the object owning this unique name has 1610unique name of the object, owning @var{service} at registration time.
1611disappeared, and a new queued object has replaced it. 1611When the corresponding D-Bus object disappears, signals won't be
1612received any longer.
1612 1613
1613When @var{service} is @code{nil}, related signals from all D-Bus 1614When @var{service} is @code{nil}, related signals from all D-Bus
1614objects shall be accepted. 1615objects shall be accepted.
@@ -1677,7 +1678,7 @@ Establish the connection to D-Bus @var{bus}.
1677 1678
1678@var{bus} can be either the symbol @code{:system} or the symbol 1679@var{bus} can be either the symbol @code{:system} or the symbol
1679@code{:session}, or it can be a string denoting the address of the 1680@code{:session}, or it can be a string denoting the address of the
1680corresponding bus. For the system and session busses, this function 1681corresponding bus. For the system and session buses, this function
1681is called when loading @file{dbus.el}, there is no need to call it 1682is called when loading @file{dbus.el}, there is no need to call it
1682again. 1683again.
1683 1684
@@ -1816,7 +1817,7 @@ handled by a hook function.
1816@defvar dbus-event-error-hooks 1817@defvar dbus-event-error-hooks
1817This hook variable keeps a list of functions, which are called when a 1818This hook variable keeps a list of functions, which are called when a
1818D-Bus error happens in the event handler. Every function must accept 1819D-Bus error happens in the event handler. Every function must accept
1819two arguments, the event and the error variable catched in 1820two arguments, the event and the error variable caught in
1820@code{condition-case} by @code{dbus-error}. 1821@code{condition-case} by @code{dbus-error}.
1821 1822
1822Such functions can be used the adapt the error signal to be raised. 1823Such functions can be used the adapt the error signal to be raised.
diff --git a/doc/misc/dired-x.texi b/doc/misc/dired-x.texi
index 99530e6356d..95c129f411d 100644
--- a/doc/misc/dired-x.texi
+++ b/doc/misc/dired-x.texi
@@ -19,7 +19,7 @@
19@comment %**end of header (This is for running Texinfo on a region.) 19@comment %**end of header (This is for running Texinfo on a region.)
20 20
21@copying 21@copying
22Copyright @copyright{} 1994-1995, 1999, 2001-2011 22Copyright @copyright{} 1994-1995, 1999, 2001-2012
23Free Software Foundation, Inc. 23Free Software Foundation, Inc.
24 24
25@quotation 25@quotation
@@ -476,7 +476,7 @@ in your @code{dired-mode-hook}.
476This Dired-X feature is obsolete as of Emacs 24.1. The standard Emacs 476This Dired-X feature is obsolete as of Emacs 24.1. The standard Emacs
477directory local variables mechanism (@pxref{Directory 477directory local variables mechanism (@pxref{Directory
478Variables,,,emacs,The Gnu Emacs manual}) replaces it. For an example of 478Variables,,,emacs,The Gnu Emacs manual}) replaces it. For an example of
479the new mechanims, @pxref{Omitting Variables}. 479the new mechanisms, @pxref{Omitting Variables}.
480 480
481When Dired visits a directory, it looks for a file whose name is the 481When Dired visits a directory, it looks for a file whose name is the
482value of variable @code{dired-local-variables-file} (default: @file{.dired}). 482value of variable @code{dired-local-variables-file} (default: @file{.dired}).
diff --git a/doc/misc/ebrowse.texi b/doc/misc/ebrowse.texi
index 19ee9705484..6db27a38808 100644
--- a/doc/misc/ebrowse.texi
+++ b/doc/misc/ebrowse.texi
@@ -10,7 +10,7 @@
10@copying 10@copying
11This file documents Ebrowse, a C++ class browser for GNU Emacs. 11This file documents Ebrowse, a C++ class browser for GNU Emacs.
12 12
13Copyright @copyright{} 2000-2011 Free Software Foundation, Inc. 13Copyright @copyright{} 2000-2012 Free Software Foundation, Inc.
14 14
15@quotation 15@quotation
16Permission is granted to copy, distribute and/or modify this document 16Permission is granted to copy, distribute and/or modify this document
@@ -149,7 +149,7 @@ importantly you can find or view member declarations and definitions
149with a keystroke. @xref{Member Buffers}. 149with a keystroke. @xref{Member Buffers}.
150 150
151These two buffer types and the commands they provide support the 151These two buffer types and the commands they provide support the
152navigational use of the browser. The second form resembles Emacs' Tags 152navigational use of the browser. The second form resembles Emacs's Tags
153package for C and other procedural languages. Ebrowse's commands of 153package for C and other procedural languages. Ebrowse's commands of
154this type are not confined to special buffers; they are most often used 154this type are not confined to special buffers; they are most often used
155while you are editing your source code. 155while you are editing your source code.
@@ -482,7 +482,7 @@ name.
482@table @kbd 482@table @kbd
483@item SPC 483@item SPC
484This command views the class declaration if the database 484This command views the class declaration if the database
485contains informations about it. If you don't parse the entire source 485contains information about it. If you don't parse the entire source
486you are working on, some classes will only be known to exist but the 486you are working on, some classes will only be known to exist but the
487location of their declarations and definitions will not be known.@refill 487location of their declarations and definitions will not be known.@refill
488 488
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index 13b640a09fe..f7e39b6c65c 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -5,7 +5,7 @@
5@copying 5@copying
6This file describes EDE, the Emacs Development Environment. 6This file describes EDE, the Emacs Development Environment.
7 7
8Copyright @copyright{} 1998-2001, 2004-2005, 2008-2011 Free Software Foundation, Inc. 8Copyright @copyright{} 1998-2001, 2004-2005, 2008-2012 Free Software Foundation, Inc.
9 9
10@quotation 10@quotation
11Permission is granted to copy, distribute and/or modify this document 11Permission is granted to copy, distribute and/or modify this document
@@ -268,7 +268,7 @@ projects.
268 268
269Some project modes do not have a project file, but directly read a 269Some project modes do not have a project file, but directly read a
270Makefile or other existing file. Instead of directly editing the 270Makefile or other existing file. Instead of directly editing the
271object, you can edit the file by typine @kbd{C-c . e} 271object, you can edit the file by typing @kbd{C-c . e}
272(@code{ede-edit-file-target}). You should ``rescan'' the project 272(@code{ede-edit-file-target}). You should ``rescan'' the project
273afterwards (@pxref{Miscellaneous commands}). 273afterwards (@pxref{Miscellaneous commands}).
274 274
@@ -518,7 +518,7 @@ It would look like this:
518(defun MY-LOAD (dir) 518(defun MY-LOAD (dir)
519 "Load a project of type `cpp-root' for the directory DIR. 519 "Load a project of type `cpp-root' for the directory DIR.
520Return nil if there isn't one." 520Return nil if there isn't one."
521 ;; Use your preferred constructin method here. 521 ;; Use your preferred construction method here.
522 (ede-cpp-root-project "NAME" :file (expand-file-name "FILE" dir) 522 (ede-cpp-root-project "NAME" :file (expand-file-name "FILE" dir)
523 :locate-fcn 'MYFCN) 523 :locate-fcn 'MYFCN)
524 ) 524 )
@@ -705,11 +705,11 @@ A brief description of the project or target. This is currently used
705by the @samp{ede-speedbar} interface. 705by the @samp{ede-speedbar} interface.
706@item ede-want-file-p 706@item ede-want-file-p
707Return non-nil if a target will accept a given file. 707Return non-nil if a target will accept a given file.
708It is generally unecessary to override this. See the section on source 708It is generally unnecessary to override this. See the section on source
709code. 709code.
710@item ede-buffer-mine 710@item ede-buffer-mine
711Return non-nil if a buffer belongs to this target. Used during 711Return non-nil if a buffer belongs to this target. Used during
712association when a file is loaded. It is generally unecessary to 712association when a file is loaded. It is generally unnecessary to
713override this unless you keep auxiliary files. 713override this unless you keep auxiliary files.
714@end table 714@end table
715 715
@@ -1588,7 +1588,7 @@ Argument @var{PROJ} is the project to save.
1588@end deffn 1588@end deffn
1589 1589
1590@deffn Method ede-proj-configure-recreate :AFTER this 1590@deffn Method ede-proj-configure-recreate :AFTER this
1591Delete project @var{THIS}es configure script and start over. 1591Delete project @var{THIS}'s configure script and start over.
1592@end deffn 1592@end deffn
1593 1593
1594@deffn Method ede-proj-makefile-insert-user-rules :AFTER this 1594@deffn Method ede-proj-makefile-insert-user-rules :AFTER this
@@ -2483,7 +2483,7 @@ Create the make rule needed to create an archive for @var{THIS}.
2483 2483
2484@deffn Method ede-proj-makefile-insert-source-variables :PRIMARY this 2484@deffn Method ede-proj-makefile-insert-source-variables :PRIMARY this
2485Insert bin_PROGRAMS variables needed by target @var{THIS}. 2485Insert bin_PROGRAMS variables needed by target @var{THIS}.
2486We aren't acutally inserting SOURCE details, but this is used by the 2486We aren't actually inserting SOURCE details, but this is used by the
2487Makefile.am generator, so use it to add this important bin program. 2487Makefile.am generator, so use it to add this important bin program.
2488@end deffn 2488@end deffn
2489 2489
@@ -2624,7 +2624,7 @@ Return the name of the main target for @var{THIS} target.
2624 2624
2625@deffn Method ede-proj-makefile-insert-automake-pre-variables :AFTER this 2625@deffn Method ede-proj-makefile-insert-automake-pre-variables :AFTER this
2626Insert bin_PROGRAMS variables needed by target @var{THIS}. 2626Insert bin_PROGRAMS variables needed by target @var{THIS}.
2627We aren't acutally inserting SOURCE details, but this is used by the 2627We aren't actually inserting SOURCE details, but this is used by the
2628Makefile.am generator, so use it to add this important bin program. 2628Makefile.am generator, so use it to add this important bin program.
2629@end deffn 2629@end deffn
2630 2630
@@ -3273,7 +3273,7 @@ Return the default macro to 'edit' for this object type.
3273@end deffn 3273@end deffn
3274 3274
3275@deffn Method project-compile-target-command :AFTER this 3275@deffn Method project-compile-target-command :AFTER this
3276Default target t- use when compling a texinfo file. 3276Default target t- use when compiling a texinfo file.
3277@end deffn 3277@end deffn
3278 3278
3279@deffn Method ede-documentation :AFTER this 3279@deffn Method ede-documentation :AFTER this
@@ -3370,7 +3370,7 @@ Type: @code{(or null string)} @*
3370Default Value: @code{nil} 3370Default Value: @code{nil}
3371 3371
3372Emacs regex matching auxiliary source code this target accepts. 3372Emacs regex matching auxiliary source code this target accepts.
3373Aux source are source code files needed for compilation, which are not comiled 3373Aux source are source code files needed for compilation, which are not compiled
3374themselves. 3374themselves.
3375@refill 3375@refill
3376 3376
@@ -3526,7 +3526,7 @@ use the same autoconf form.
3526@item :objectextention 3526@item :objectextention
3527Type: @code{string} 3527Type: @code{string}
3528 3528
3529A string which is the extention used for object files. 3529A string which is the extension used for object files.
3530For example, C code uses .o on unix, and Emacs Lisp uses .elc. 3530For example, C code uses .o on unix, and Emacs Lisp uses .elc.
3531@refill 3531@refill
3532 3532
@@ -3634,7 +3634,7 @@ it's rule definition.
3634@item :objectextention 3634@item :objectextention
3635Type: @code{string} 3635Type: @code{string}
3636 3636
3637A string which is the extention used for object files. 3637A string which is the extension used for object files.
3638For example, C code uses .o on unix, and Emacs Lisp uses .elc. 3638For example, C code uses .o on unix, and Emacs Lisp uses .elc.
3639@refill 3639@refill
3640 3640
@@ -3782,7 +3782,7 @@ it's rule definition.
3782@item :objectextention 3782@item :objectextention
3783Type: @code{string} 3783Type: @code{string}
3784 3784
3785A string which is the extention used for object files. 3785A string which is the extension used for object files.
3786For example, C code uses .o on unix, and Emacs Lisp uses .elc. 3786For example, C code uses .o on unix, and Emacs Lisp uses .elc.
3787@refill 3787@refill
3788 3788
diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi
index 20c2ed90873..01349e31468 100644
--- a/doc/misc/ediff.texi
+++ b/doc/misc/ediff.texi
@@ -25,7 +25,7 @@
25This file documents Ediff, a comprehensive visual interface to Unix diff 25This file documents Ediff, a comprehensive visual interface to Unix diff
26and patch utilities. 26and patch utilities.
27 27
28Copyright @copyright{} 1995-2011 Free Software Foundation, Inc. 28Copyright @copyright{} 1995-2012 Free Software Foundation, Inc.
29 29
30@quotation 30@quotation
31Permission is granted to copy, distribute and/or modify this document 31Permission is granted to copy, distribute and/or modify this document
@@ -433,6 +433,8 @@ command (see @kbd{ga}, @kbd{gb}, and @kbd{gc}).
433 433
434@node Quick Help Commands,Other Session Commands,,Session Commands 434@node Quick Help Commands,Other Session Commands,,Session Commands
435@section Quick Help Commands 435@section Quick Help Commands
436@cindex command help
437@cindex important commands
436 438
437@table @kbd 439@table @kbd
438@item ? 440@item ?
@@ -1207,7 +1209,7 @@ This hook can be used to alter bindings in Ediff's keymap,
1207@code{ediff-mode-map}. These hooks are 1209@code{ediff-mode-map}. These hooks are
1208run right after the default bindings are set but before 1210run right after the default bindings are set but before
1209@code{ediff-load-hook}. The regular user needs not be concerned with this 1211@code{ediff-load-hook}. The regular user needs not be concerned with this
1210hook---it is provided for implementors of other Emacs packages built on top 1212hook---it is provided for implementers of other Emacs packages built on top
1211of Ediff. 1213of Ediff.
1212 1214
1213@item ediff-before-setup-windows-hook 1215@item ediff-before-setup-windows-hook
@@ -1731,7 +1733,7 @@ faces, you can modify them when Ediff is being loaded using
1731@end smallexample 1733@end smallexample
1732 1734
1733@strong{Please note:} to set Ediff's faces, use only @code{copy-face} 1735@strong{Please note:} to set Ediff's faces, use only @code{copy-face}
1734or @code{set/make-face-@dots{}} as shown above. Emacs' low-level 1736or @code{set/make-face-@dots{}} as shown above. Emacs's low-level
1735face-manipulation functions should be avoided. 1737face-manipulation functions should be avoided.
1736 1738
1737@node Narrowing, Refinement of Difference Regions, Highlighting Difference Regions, Customization 1739@node Narrowing, Refinement of Difference Regions, Highlighting Difference Regions, Customization
diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi
index 8f9f8fc03a2..af0069fb1bc 100644
--- a/doc/misc/edt.texi
+++ b/doc/misc/edt.texi
@@ -5,7 +5,7 @@
5@copying 5@copying
6This file documents the EDT emulation package for Emacs. 6This file documents the EDT emulation package for Emacs.
7 7
8Copyright @copyright{} 1986, 1992, 1994-1995, 1999-2011 8Copyright @copyright{} 1986, 1992, 1994-1995, 1999-2012
9Free Software Foundation, Inc. 9Free Software Foundation, Inc.
10 10
11@quotation 11@quotation
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index 8ee40288fe0..c006e635a78 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -11,7 +11,7 @@
11@copying 11@copying
12This manual documents EIEIO, an object framework for Emacs Lisp. 12This manual documents EIEIO, an object framework for Emacs Lisp.
13 13
14Copyright @copyright{} 2007-2011 Free Software Foundation, Inc. 14Copyright @copyright{} 2007-2012 Free Software Foundation, Inc.
15 15
16@quotation 16@quotation
17Permission is granted to copy, distribute and/or modify this document 17Permission is granted to copy, distribute and/or modify this document
@@ -1212,9 +1212,9 @@ This method does nothing by default, but that may change in the future.
1212This would be the best way to make your objects persistent when using 1212This would be the best way to make your objects persistent when using
1213in-place editing. 1213in-place editing.
1214 1214
1215@section Widget extention 1215@section Widget extension
1216 1216
1217When widgets are being created, one new widget extention has been added, 1217When widgets are being created, one new widget extension has been added,
1218called the @code{:slotofchoices}. When this occurs in a widget 1218called the @code{:slotofchoices}. When this occurs in a widget
1219definition, all elements after it are removed, and the slot is specifies 1219definition, all elements after it are removed, and the slot is specifies
1220is queried and converted into a series of constants. 1220is queried and converted into a series of constants.
@@ -1458,7 +1458,7 @@ Useful methods to define for your new class include:
1458 1458
1459@defmethod eieio-speedbar eieio-speedbar-derive-line-path obj depth 1459@defmethod eieio-speedbar eieio-speedbar-derive-line-path obj depth
1460Return a string representing a directory associated with an instance 1460Return a string representing a directory associated with an instance
1461of @var{obj}. @var{depth} can be used to indice how many levels of 1461of @var{obj}. @var{depth} can be used to index how many levels of
1462indentation have been opened by the user where @var{obj} is shown. 1462indentation have been opened by the user where @var{obj} is shown.
1463@end defmethod 1463@end defmethod
1464 1464
@@ -1893,7 +1893,7 @@ better in the Emacs environment.
1893 1893
1894@enumerate 1894@enumerate
1895@item 1895@item
1896Allow subclasing of Emacs built-in types, such as faces, markers, and 1896Allow subclassing of Emacs built-in types, such as faces, markers, and
1897buffers. 1897buffers.
1898@item 1898@item
1899Allow method overloading of method-like functions in Emacs. 1899Allow method overloading of method-like functions in Emacs.
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index a9d80d868b6..896eba2f1bb 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -11,7 +11,7 @@
11@copying 11@copying
12This file documents the Emacs MIME interface functionality. 12This file documents the Emacs MIME interface functionality.
13 13
14Copyright @copyright{} 1998-2011 Free Software Foundation, Inc. 14Copyright @copyright{} 1998-2012 Free Software Foundation, Inc.
15 15
16@quotation 16@quotation
17Permission is granted to copy, distribute and/or modify this document 17Permission is granted to copy, distribute and/or modify this document
@@ -417,7 +417,7 @@ called with a @acronym{MIME} handle as the argument.
417@vindex mm-inline-text-html-with-images 417@vindex mm-inline-text-html-with-images
418Some @acronym{HTML} mails might have the trick of spammers using 418Some @acronym{HTML} mails might have the trick of spammers using
419@samp{<img>} tags. It is likely to be intended to verify whether you 419@samp{<img>} tags. It is likely to be intended to verify whether you
420have read the mail. You can prevent your personal informations from 420have read the mail. You can prevent your personal information from
421leaking by setting this option to @code{nil} (which is the default). 421leaking by setting this option to @code{nil} (which is the default).
422It is currently ignored by Emacs/w3. For emacs-w3m, you may use the 422It is currently ignored by Emacs/w3. For emacs-w3m, you may use the
423command @kbd{t} on the image anchor to show an image even if it is 423command @kbd{t} on the image anchor to show an image even if it is
@@ -1048,7 +1048,7 @@ occurs.
1048 1048
1049You can customize the value of the @code{mml-enable-flowed} variable 1049You can customize the value of the @code{mml-enable-flowed} variable
1050to enable or disable the flowed encoding usage when newline 1050to enable or disable the flowed encoding usage when newline
1051characteres are present in the buffer. 1051characters are present in the buffer.
1052 1052
1053On decoding flowed text, lines with soft newline characters are filled 1053On decoding flowed text, lines with soft newline characters are filled
1054together and wrapped after the column decided by 1054together and wrapped after the column decided by
diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi
index b4137a7dac6..bb5e18f1c8b 100644
--- a/doc/misc/epa.texi
+++ b/doc/misc/epa.texi
@@ -9,7 +9,7 @@
9@copying 9@copying
10This file describes EasyPG Assistant @value{VERSION}. 10This file describes EasyPG Assistant @value{VERSION}.
11 11
12Copyright @copyright{} 2007-2011 Free Software Foundation, Inc. 12Copyright @copyright{} 2007-2012 Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
15Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi
index b46748a08f9..6d791d7c5f6 100644
--- a/doc/misc/erc.texi
+++ b/doc/misc/erc.texi
@@ -8,7 +8,7 @@
8@copying 8@copying
9This manual is for ERC version 5.3. 9This manual is for ERC version 5.3.
10 10
11Copyright @copyright{} 2005-2011 11Copyright @copyright{} 2005-2012
12Free Software Foundation, Inc. 12Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi
index 978cac6992b..6002e678ff1 100644
--- a/doc/misc/ert.texi
+++ b/doc/misc/ert.texi
@@ -10,7 +10,7 @@
10@end direntry 10@end direntry
11 11
12@copying 12@copying
13Copyright @copyright{} 2008, 2010-2011 Free Software Foundation, Inc. 13Copyright @copyright{} 2008, 2010-2012 Free Software Foundation, Inc.
14 14
15@quotation 15@quotation
16Permission is granted to copy, distribute and/or modify this document 16Permission is granted to copy, distribute and/or modify this document
@@ -48,7 +48,7 @@ traditional software development methods.
48 48
49@menu 49@menu
50* Introduction:: A simple example of an ERT test. 50* Introduction:: A simple example of an ERT test.
51* How to Run Tests:: Run tests in your Emacs or from the command line. 51* How to Run Tests:: Run tests in Emacs or from the command line.
52* How to Write Tests:: How to add tests to your Emacs Lisp code. 52* How to Write Tests:: How to add tests to your Emacs Lisp code.
53* How to Debug Tests:: What to do if a test fails. 53* How to Debug Tests:: What to do if a test fails.
54* Extending ERT:: ERT is extensible in several ways. 54* Extending ERT:: ERT is extensible in several ways.
@@ -61,13 +61,13 @@ How to Run Tests
61 61
62* Running Tests Interactively:: Run tests in your current Emacs. 62* Running Tests Interactively:: Run tests in your current Emacs.
63* Running Tests in Batch Mode:: Run tests in emacs -Q. 63* Running Tests in Batch Mode:: Run tests in emacs -Q.
64* Test Selectors:: Choose which tests to run. 64* Test Selectors:: Choose which tests to run.
65 65
66How to Write Tests 66How to Write Tests
67 67
68* The @code{should} Macro:: A powerful way to express assertions. 68* The @code{should} Macro:: A powerful way to express assertions.
69* Expected Failures:: Tests for known bugs. 69* Expected Failures:: Tests for known bugs.
70* Tests and Their Environment:: Don't depend on customizations; no side effects. 70* Tests and Their Environment:: Don't depend on customizations; no side effects.
71* Useful Techniques:: Some examples. 71* Useful Techniques:: Some examples.
72 72
73How to Debug Tests 73How to Debug Tests
@@ -82,8 +82,8 @@ Extending ERT
82 82
83Other Testing Concepts 83Other Testing Concepts
84 84
85* Mocks and Stubs:: Stubbing out code that is irrelevant to the test. 85* Mocks and Stubs:: Stubbing out code that is irrelevant to the test.
86* Fixtures and Test Suites:: How ERT differs from tools for other languages. 86* Fixtures and Test Suites:: How ERT differs from tools for other languages.
87 87
88@end detailmenu 88@end detailmenu
89@end menu 89@end menu
@@ -133,8 +133,8 @@ will pass if the three calls to @code{equal} all return true
133@code{should} is a macro with the same meaning as @code{assert} but 133@code{should} is a macro with the same meaning as @code{assert} but
134better error reporting. @xref{The @code{should} Macro}. 134better error reporting. @xref{The @code{should} Macro}.
135 135
136Each test should have a name that describes what functionality the 136Each test should have a name that describes what functionality it tests.
137test tests. Test names can be chosen arbitrarily --- they are in a 137Test names can be chosen arbitrarily --- they are in a
138namespace separate from functions and variables --- but should follow 138namespace separate from functions and variables --- but should follow
139the usual Emacs Lisp convention of having a prefix that indicates 139the usual Emacs Lisp convention of having a prefix that indicates
140which package they belong to. Test names are displayed by ERT when 140which package they belong to. Test names are displayed by ERT when
@@ -142,7 +142,7 @@ reporting failures and can be used when selecting which tests to run.
142 142
143The empty parentheses @code{()} in the first line don't currently have 143The empty parentheses @code{()} in the first line don't currently have
144any meaning and are reserved for future extension. They also make 144any meaning and are reserved for future extension. They also make
145@code{ert-deftest}'s syntax more similar to @code{defun}. 145the syntax of @code{ert-deftest} more similar to that of @code{defun}.
146 146
147The docstring describes what feature this test tests. When running 147The docstring describes what feature this test tests. When running
148tests interactively, the first line of the docstring is displayed for 148tests interactively, the first line of the docstring is displayed for
@@ -163,14 +163,14 @@ You can run tests either in the Emacs you are working in, or on the
163command line in a separate Emacs process in batch mode (i.e., with no 163command line in a separate Emacs process in batch mode (i.e., with no
164user interface). The former mode is convenient during interactive 164user interface). The former mode is convenient during interactive
165development, the latter is useful to make sure that tests pass 165development, the latter is useful to make sure that tests pass
166independently of your customizations, allows tests to be invoked from 166independently of your customizations; and it allows you to invoke
167makefiles and scripts to be written that run tests in several 167tests from makefiles, and to write scripts that run tests in several
168different Emacs versions. 168different Emacs versions.
169 169
170@menu 170@menu
171* Running Tests Interactively:: Run tests in your current Emacs. 171* Running Tests Interactively:: Run tests in your current Emacs.
172* Running Tests in Batch Mode:: Run tests in emacs -Q. 172* Running Tests in Batch Mode:: Run tests in emacs -Q.
173* Test Selectors:: Choose which tests to run. 173* Test Selectors:: Choose which tests to run.
174@end menu 174@end menu
175 175
176 176
@@ -178,7 +178,8 @@ different Emacs versions.
178@section Running Tests Interactively 178@section Running Tests Interactively
179 179
180You can run the tests that are currently defined in your Emacs with 180You can run the tests that are currently defined in your Emacs with
181the command @kbd{@kbd{M-x} ert @kbd{RET} t @kbd{RET}}. ERT will pop 181the command @kbd{@kbd{M-x} ert @kbd{RET} t @kbd{RET}}. (For an
182explanation of the @code{t} argument, @pxref{Test Selectors}.) ERT will pop
182up a new buffer, the ERT results buffer, showing the results of the 183up a new buffer, the ERT results buffer, showing the results of the
183tests run. It looks like this: 184tests run. It looks like this:
184 185
@@ -219,10 +220,10 @@ F list-test
219 (different-atoms c d)))) 220 (different-atoms c d))))
220@end example 221@end example
221 222
222At the top, there is a summary of the results: We ran all tests in the 223At the top, there is a summary of the results: we ran all tests defined
223current Emacs (@code{Selector: t}), 31 of them passed, and 2 failed 224in the current Emacs (@code{Selector: t}), 31 of them passed, and 2
224unexpectedly. @xref{Expected Failures}, for an explanation of the 225failed unexpectedly. @xref{Expected Failures}, for an explanation of
225term @emph{unexpected} in this context. 226the term @emph{unexpected} in this context.
226 227
227The line of dots and @code{F}s is a progress bar where each character 228The line of dots and @code{F}s is a progress bar where each character
228represents one test; it fills while the tests are running. A dot 229represents one test; it fills while the tests are running. A dot
@@ -261,7 +262,7 @@ scripts or makefiles. There are two functions for this purpose,
261They can be used like this: 262They can be used like this:
262 263
263@example 264@example
264emacs -batch -L /path/to/ert -l ert.el -l my-tests.el -f ert-run-tests-batch-and-exit 265emacs -batch -l ert -l my-tests.el -f ert-run-tests-batch-and-exit
265@end example 266@end example
266 267
267This command will start up Emacs in batch mode, load ERT, load 268This command will start up Emacs in batch mode, load ERT, load
@@ -270,9 +271,10 @@ with a zero exit status if all tests passed, or nonzero if any tests
270failed or if anything else went wrong. It will also print progress 271failed or if anything else went wrong. It will also print progress
271messages and error diagnostics to standard output. 272messages and error diagnostics to standard output.
272 273
273You may need additional @code{-L} flags to ensure that 274If ERT is not part of your Emacs distribution, you may need to use
274@code{my-tests.el} and all the files that it requires are on your 275@code{-L /path/to/ert/} so that Emacs can find it. You may need
275@code{load-path}. 276additional @code{-L} flags to ensure that @code{my-tests.el} and all the
277files that it requires are on your @code{load-path}.
276 278
277 279
278@node Test Selectors, , Running Tests in Batch Mode, How to Run Tests 280@node Test Selectors, , Running Tests in Batch Mode, How to Run Tests
@@ -288,23 +290,26 @@ to Common Lisp's type specifier syntax:
288@item @code{:new} selects all tests that have not been run yet. 290@item @code{:new} selects all tests that have not been run yet.
289@item @code{:failed} and @code{:passed} select tests according to their most recent result. 291@item @code{:failed} and @code{:passed} select tests according to their most recent result.
290@item @code{:expected}, @code{:unexpected} select tests according to their most recent result. 292@item @code{:expected}, @code{:unexpected} select tests according to their most recent result.
291@item A string selects all tests that have a name that matches the string, a regexp. 293@item A string is a regular expression that selects all tests with matching names.
292@item A test selects that test. 294@item A test (i.e., an object of @code{ert-test} data type) selects that test.
293@item A symbol selects the test that the symbol names. 295@item A symbol selects the test that the symbol names.
294@item @code{(member TESTS...)} selects TESTS, a list of tests or symbols naming tests. 296@item @code{(member TESTS...)} selects the elements of TESTS, a list of
297tests or symbols naming tests.
295@item @code{(eql TEST)} selects TEST, a test or a symbol naming a test. 298@item @code{(eql TEST)} selects TEST, a test or a symbol naming a test.
296@item @code{(and SELECTORS...)} selects the tests that match all SELECTORS. 299@item @code{(and SELECTORS...)} selects the tests that match all SELECTORS.
297@item @code{(or SELECTORS...)} selects the tests that match any SELECTOR. 300@item @code{(or SELECTORS...)} selects the tests that match any SELECTOR.
298@item @code{(not SELECTOR)} selects all tests that do not match SELECTOR. 301@item @code{(not SELECTOR)} selects all tests that do not match SELECTOR.
299@item @code{(tag TAG)} selects all tests that have TAG on their tags list. 302@item @code{(tag TAG)} selects all tests that have TAG on their tags list.
300@item @code{(satisfies PREDICATE)} Selects all tests that satisfy PREDICATE. 303(Tags are optional labels you can apply to tests when you define them.)
304@item @code{(satisfies PREDICATE)} selects all tests that satisfy PREDICATE,
305a function that takes a test as argument and returns non-nil if it is selected.
301@end itemize 306@end itemize
302 307
303Selectors that are frequently useful when selecting tests to run 308Selectors that are frequently useful when selecting tests to run
304include @code{t} to run all tests that are currently defined in Emacs, 309include @code{t} to run all tests that are currently defined in Emacs,
305@code{"^foo-"} to run all tests in package @code{foo} --- this assumes 310@code{"^foo-"} to run all tests in package @code{foo} (this assumes
306that package @code{foo} uses the prefix @code{foo-} for its test names 311that package @code{foo} uses the prefix @code{foo-} for its test names),
307---, result-based selectors such as @code{(or :new :unexpected)} to 312result-based selectors such as @code{(or :new :unexpected)} to
308run all tests that have either not run yet or that had an unexpected 313run all tests that have either not run yet or that had an unexpected
309result in the last run, and tag-based selectors such as @code{(not 314result in the last run, and tag-based selectors such as @code{(not
310(tag :causes-redisplay))} to run all tests that are not tagged 315(tag :causes-redisplay))} to run all tests that are not tagged
@@ -325,9 +330,9 @@ to find where a test was defined if the test was loaded from a file.
325 330
326 331
327@menu 332@menu
328* The @code{should} Macro:: A powerful way to express assertions. 333* The @code{should} Macro:: A powerful way to express assertions.
329* Expected Failures:: Tests for known bugs. 334* Expected Failures:: Tests for known bugs.
330* Tests and Their Environment:: Don't depend on customizations; no side effects. 335* Tests and Their Environment:: Don't depend on customizations; no side effects.
331* Useful Techniques:: Some examples. 336* Useful Techniques:: Some examples.
332@end menu 337@end menu
333 338
@@ -335,10 +340,12 @@ to find where a test was defined if the test was loaded from a file.
335@section The @code{should} Macro 340@section The @code{should} Macro
336 341
337Test bodies can include arbitrary code; but to be useful, they need to 342Test bodies can include arbitrary code; but to be useful, they need to
338have checks whether the code being tested (or @emph{code under test}) 343check whether the code being tested (or @emph{code under test})
339does what it is supposed to do. The macro @code{should} is similar to 344does what it is supposed to do. The macro @code{should} is similar to
340@code{assert} from the cl package, but analyzes its argument form and 345@code{assert} from the cl package
341records information that ERT can display to help debugging. 346(@pxref{Assertions,,, cl, Common Lisp Extensions}),
347but analyzes its argument form and records information that ERT can
348display to help debugging.
342 349
343This test definition 350This test definition
344 351
@@ -382,7 +389,7 @@ This checks that dividing one by zero signals an error of type
382@code{arith-error}. The @code{:type} argument to @code{should-error} 389@code{arith-error}. The @code{:type} argument to @code{should-error}
383is optional; if absent, any type of error is accepted. 390is optional; if absent, any type of error is accepted.
384@code{should-error} returns an error description of the error that was 391@code{should-error} returns an error description of the error that was
385signalled, to allow additional checks to be made. The error 392signaled, to allow additional checks to be made. The error
386description has the format @code{(ERROR-SYMBOL . DATA)}. 393description has the format @code{(ERROR-SYMBOL . DATA)}.
387 394
388There is no @code{should-not-error} macro since tests that signal an 395There is no @code{should-not-error} macro since tests that signal an
@@ -396,7 +403,7 @@ default.
396@node Expected Failures, Tests and Their Environment, The @code{should} Macro, How to Write Tests 403@node Expected Failures, Tests and Their Environment, The @code{should} Macro, How to Write Tests
397@section Expected Failures 404@section Expected Failures
398 405
399Some bugs are complicated to fix or not very important and are left as 406Some bugs are complicated to fix, or not very important, and are left as
400@emph{known bugs}. If there is a test case that triggers the bug and 407@emph{known bugs}. If there is a test case that triggers the bug and
401fails, ERT will alert you of this failure every time you run all 408fails, ERT will alert you of this failure every time you run all
402tests. For known bugs, this alert is a distraction. The way to 409tests. For known bugs, this alert is a distraction. The way to
@@ -406,7 +413,7 @@ definition:
406@lisp 413@lisp
407(ert-deftest future-bug () 414(ert-deftest future-bug ()
408 "Test `time-forward' with negative arguments. 415 "Test `time-forward' with negative arguments.
409Since this functionality isn't implemented yet, the test is known to fail." 416Since this functionality isn't implemented, the test is known to fail."
410 :expected-result :failed 417 :expected-result :failed
411 (time-forward -1)) 418 (time-forward -1))
412@end lisp 419@end lisp
@@ -427,7 +434,7 @@ makes it much easier to fix the bug, demonstrate that it is fixed, and
427prevent future regressions. 434prevent future regressions.
428 435
429ERT displays the same kind of alerts for tests that pass unexpectedly 436ERT displays the same kind of alerts for tests that pass unexpectedly
430that it displays for unexpected failures. This way, if you make code 437as it displays for unexpected failures. This way, if you make code
431changes that happen to fix a bug that you weren't aware of, you will 438changes that happen to fix a bug that you weren't aware of, you will
432know to remove the @code{:expected-result} clause of that test and 439know to remove the @code{:expected-result} clause of that test and
433close the corresponding bug report, if any. 440close the corresponding bug report, if any.
@@ -453,8 +460,8 @@ The outcome of running a test should not depend on the current state
453of the environment, and each test should leave its environment in the 460of the environment, and each test should leave its environment in the
454same state it found it in. In particular, a test should not depend on 461same state it found it in. In particular, a test should not depend on
455any Emacs customization variables or hooks, and if it has to make any 462any Emacs customization variables or hooks, and if it has to make any
456changes to Emacs' state or state external to Emacs such as the file 463changes to Emacs's state or state external to Emacs (such as the file
457system, it should undo these changes before it returns, regardless of 464system), it should undo these changes before it returns, regardless of
458whether it passed or failed. 465whether it passed or failed.
459 466
460Tests should not depend on the environment because any such 467Tests should not depend on the environment because any such
@@ -462,14 +469,14 @@ dependencies can make the test brittle or lead to failures that occur
462only under certain circumstances and are hard to reproduce. Of 469only under certain circumstances and are hard to reproduce. Of
463course, the code under test may have settings that affect its 470course, the code under test may have settings that affect its
464behavior. In that case, it is best to make the test @code{let}-bind 471behavior. In that case, it is best to make the test @code{let}-bind
465all such settings variables to set up a specific configuration for the 472all such setting variables to set up a specific configuration for the
466duration of the test. The test can also set up a number of different 473duration of the test. The test can also set up a number of different
467configurations and run the code under test with each. 474configurations and run the code under test with each.
468 475
469Tests that have side effects on their environment should restore it to 476Tests that have side effects on their environment should restore it to
470its original state because any side effects that persist after the 477its original state because any side effects that persist after the
471test can disrupt the workflow of the programmer running the tests. If 478test can disrupt the workflow of the programmer running the tests. If
472the code under test has side effects on Emacs' current state, such as 479the code under test has side effects on Emacs's current state, such as
473on the current buffer or window configuration, the test should create 480on the current buffer or window configuration, the test should create
474a temporary buffer for the code to manipulate (using 481a temporary buffer for the code to manipulate (using
475@code{with-temp-buffer}), or save and restore the window configuration 482@code{with-temp-buffer}), or save and restore the window configuration
@@ -490,13 +497,13 @@ such commands are what they want to test. The exact behavior of
490@code{auto-mode-alist}. It is difficult to write a meaningful test if 497@code{auto-mode-alist}. It is difficult to write a meaningful test if
491its behavior can be affected by so many external factors. Also, 498its behavior can be affected by so many external factors. Also,
492@code{find-file} has side effects that are hard to predict and thus 499@code{find-file} has side effects that are hard to predict and thus
493hard to undo: It may create a new buffer or may reuse an existing 500hard to undo: It may create a new buffer or reuse an existing
494buffer if one is already visiting the requested file; and it runs 501buffer if one is already visiting the requested file; and it runs
495@code{find-file-hook}, which can have arbitrary side effects. 502@code{find-file-hook}, which can have arbitrary side effects.
496 503
497Instead, it is better to use lower-level mechanisms with simple and 504Instead, it is better to use lower-level mechanisms with simple and
498predictable semantics like @code{with-temp-buffer}, @code{insert} or 505predictable semantics like @code{with-temp-buffer}, @code{insert} or
499@code{insert-file-contents-literally}, and activating the desired mode 506@code{insert-file-contents-literally}, and to activate any desired mode
500by calling the corresponding function directly --- after binding the 507by calling the corresponding function directly --- after binding the
501hook variables to nil. This avoids the above problems. 508hook variables to nil. This avoids the above problems.
502 509
@@ -534,8 +541,10 @@ Here's a more complicated test:
534 (ert--print-backtrace (ert-test-failed-backtrace result)) 541 (ert--print-backtrace (ert-test-failed-backtrace result))
535 (goto-char (point-min)) 542 (goto-char (point-min))
536 (end-of-line) 543 (end-of-line)
537 (let ((first-line (buffer-substring-no-properties (point-min) (point)))) 544 (let ((first-line (buffer-substring-no-properties
538 (should (equal first-line " signal(ert-test-failed (\"foo\"))"))))))) 545 (point-min) (point))))
546 (should (equal first-line
547 " signal(ert-test-failed (\"foo\"))")))))))
539@end lisp 548@end lisp
540 549
541This test creates a test object using @code{make-ert-test} whose body 550This test creates a test object using @code{make-ert-test} whose body
@@ -562,7 +571,7 @@ under test was structured with testing in mind.
562For example, if @code{ert-run-test} accepted only symbols that name 571For example, if @code{ert-run-test} accepted only symbols that name
563tests rather than test objects, the test would need a name for the 572tests rather than test objects, the test would need a name for the
564failing test, which would have to be a temporary symbol generated with 573failing test, which would have to be a temporary symbol generated with
565@code{make-symbol}, to avoid side effects on Emacs' state. Choosing 574@code{make-symbol}, to avoid side effects on Emacs's state. Choosing
566the right interface for @code{ert-run-tests} allows the test to be 575the right interface for @code{ert-run-tests} allows the test to be
567simpler. 576simpler.
568 577
@@ -663,7 +672,7 @@ function registered. @xref{Defining Explanation Functions}.
663@node Interactive Debugging, , Understanding Explanations, How to Debug Tests 672@node Interactive Debugging, , Understanding Explanations, How to Debug Tests
664@section Interactive Debugging 673@section Interactive Debugging
665 674
666Debugging failed tests works essentially the same way as debugging any 675Debugging failed tests essentially works the same way as debugging any
667other problems with Lisp code. Here are a few tricks specific to 676other problems with Lisp code. Here are a few tricks specific to
668tests: 677tests:
669 678
@@ -673,8 +682,8 @@ each time. It's good to find out whether the behavior is
673deterministic before spending any time looking for a cause. In the 682deterministic before spending any time looking for a cause. In the
674ERT results buffer, @kbd{r} re-runs the selected test. 683ERT results buffer, @kbd{r} re-runs the selected test.
675 684
676@item Use @kbd{.} to jump to the source code of the test to find out what 685@item Use @kbd{.} to jump to the source code of the test to find out exactly
677exactly it does. Perhaps the test is broken rather than the code 686what it does. Perhaps the test is broken rather than the code
678under test. 687under test.
679 688
680@item If the test contains a series of @code{should} forms and you can't 689@item If the test contains a series of @code{should} forms and you can't
@@ -699,8 +708,8 @@ re-run the test with @kbd{r} or @kbd{d}.
699@item If you have been editing and rearranging tests, it is possible that 708@item If you have been editing and rearranging tests, it is possible that
700ERT remembers an old test that you have since renamed or removed --- 709ERT remembers an old test that you have since renamed or removed ---
701renamings or removals of definitions in the source code leave around a 710renamings or removals of definitions in the source code leave around a
702stray definition under the old name in the running process, this is a 711stray definition under the old name in the running process (this is a
703common problem in Lisp. In such a situation, hit @kbd{D} to let ERT 712common problem in Lisp). In such a situation, hit @kbd{D} to let ERT
704forget about the obsolete test. 713forget about the obsolete test.
705@end itemize 714@end itemize
706 715
@@ -739,14 +748,13 @@ explanation function.
739 748
740Both @code{ert-run-tests-interactively} and @code{ert-run-tests-batch} 749Both @code{ert-run-tests-interactively} and @code{ert-run-tests-batch}
741are implemented on top of the lower-level test handling code in the 750are implemented on top of the lower-level test handling code in the
742sections named ``Facilities for running a single test'', ``Test 751sections of @file{ert.el} labeled ``Facilities for running a single test'',
743selectors'', and ``Facilities for running a whole set of tests''. 752``Test selectors'', and ``Facilities for running a whole set of tests''.
744 753
745If you want to write code that works with ERT tests, you should take a 754If you want to write code that works with ERT tests, you should take a
746look at this lower-level code. Symbols that start with @code{ert--} 755look at this lower-level code. Symbols that start with @code{ert--}
747are internal to ERT, those that start with @code{ert-} but not 756are internal to ERT, whereas those that start with @code{ert-} are
748@code{ert--} are meant to be usable by other code. But there is no 757meant to be usable by other code. But there is no mature API yet.
749mature API yet.
750 758
751Contributions to ERT are welcome. 759Contributions to ERT are welcome.
752 760
@@ -758,8 +766,8 @@ For information on mocks, stubs, fixtures, or test suites, see below.
758 766
759 767
760@menu 768@menu
761* Mocks and Stubs:: Stubbing out code that is irrelevant to the test. 769* Mocks and Stubs:: Stubbing out code that is irrelevant to the test.
762* Fixtures and Test Suites:: How ERT differs from tools for other languages. 770* Fixtures and Test Suites:: How ERT differs from tools for other languages.
763@end menu 771@end menu
764 772
765@node Mocks and Stubs, Fixtures and Test Suites, Other Testing Concepts, Other Testing Concepts 773@node Mocks and Stubs, Fixtures and Test Suites, Other Testing Concepts, Other Testing Concepts
@@ -782,8 +790,8 @@ In many ways, ERT is similar to frameworks for other languages like
782SUnit or JUnit. However, two features commonly found in such 790SUnit or JUnit. However, two features commonly found in such
783frameworks are notably absent from ERT: fixtures and test suites. 791frameworks are notably absent from ERT: fixtures and test suites.
784 792
785Fixtures, as used e.g. in SUnit or JUnit, are mainly used to provide 793Fixtures are mainly used (e.g., in SUnit or JUnit) to provide an
786an environment for a set of tests, and consist of set-up and tear-down 794environment for a set of tests, and consist of set-up and tear-down
787functions. 795functions.
788 796
789While fixtures are a useful syntactic simplification in other 797While fixtures are a useful syntactic simplification in other
@@ -829,13 +837,13 @@ separating module namespaces in Emacs Lisp, test selectors already
829solve this by allowing regexp matching on test names; e.g., the 837solve this by allowing regexp matching on test names; e.g., the
830selector "^ert-" selects ERT's self-tests. 838selector "^ert-" selects ERT's self-tests.
831 839
832Other uses include grouping tests by their expected execution time to 840Other uses include grouping tests by their expected execution time,
833run quick tests during interactive development and slow tests less 841e.g. to run quick tests during interactive development and slow tests less
834frequently. This can be achieved with the @code{:tag} argument to 842often. This can be achieved with the @code{:tag} argument to
835@code{ert-deftest} and @code{tag} test selectors. 843@code{ert-deftest} and @code{tag} test selectors.
836 844
837@bye 845@bye
838 846
839@c LocalWords: ERT Hagelberg Ohler JUnit namespace docstring ERT's 847@c LocalWords: ERT JUnit namespace docstring ERT's
840@c LocalWords: backtrace makefiles workflow backtraces API SUnit 848@c LocalWords: backtrace makefiles workflow backtraces API SUnit
841@c LocalWords: subexpressions 849@c LocalWords: subexpressions
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 74082bfd3b1..d322ca7c3e1 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -8,7 +8,7 @@
8@copying 8@copying
9This manual is for Eshell, the Emacs shell. 9This manual is for Eshell, the Emacs shell.
10 10
11Copyright @copyright{} 1999-2011 Free Software Foundation, Inc. 11Copyright @copyright{} 1999-2012 Free Software Foundation, Inc.
12 12
13@quotation 13@quotation
14Permission is granted to copy, distribute and/or modify this document 14Permission is granted to copy, distribute and/or modify this document
@@ -61,7 +61,7 @@ developing GNU and promoting software freedom.''
61@node Top, What is Eshell?, (dir), (dir) 61@node Top, What is Eshell?, (dir), (dir)
62@top Eshell 62@top Eshell
63 63
64Eshell is a shell-like command interpretor 64Eshell is a shell-like command interpreter
65implemented in Emacs Lisp. It invokes no external processes except for 65implemented in Emacs Lisp. It invokes no external processes except for
66those requested by the user. It is intended to be a functional 66those requested by the user. It is intended to be a functional
67replacement for command shells such as @command{bash}, @command{zsh}, 67replacement for command shells such as @command{bash}, @command{zsh},
@@ -94,7 +94,7 @@ handling the sort of tasks accomplished by those tools.
94@cindex Eshell, what it is 94@cindex Eshell, what it is
95 95
96Eshell is a @dfn{command shell} written in Emacs Lisp. Everything it 96Eshell is a @dfn{command shell} written in Emacs Lisp. Everything it
97does, it uses Emacs' facilities to do. This means that Eshell is as 97does, it uses Emacs's facilities to do. This means that Eshell is as
98portable as Emacs itself. It also means that cooperation with Lisp code 98portable as Emacs itself. It also means that cooperation with Lisp code
99is natural and seamless. 99is natural and seamless.
100 100
@@ -379,7 +379,7 @@ eshell/sudo is a compiled Lisp function in `em-unix.el'
379sudo is an alias, defined as "*sudo $*" 379sudo is an alias, defined as "*sudo $*"
380@end example 380@end example
381 381
382Some of the built-in commands have a special behaviour in Eshell: 382Some of the built-in commands have a special behavior in Eshell:
383 383
384@table @code 384@table @code
385 385
@@ -608,7 +608,7 @@ scrolls back.
608 608
609@item Using C-p and C-n with rebind gets into a locked state 609@item Using C-p and C-n with rebind gets into a locked state
610 610
611This happened a few times in Emacs 21, but has been unreproducible 611This happened a few times in Emacs 21, but has been irreproducible
612since. 612since.
613 613
614@item If an interactive process is currently running, @kbd{M-!} doesn't work 614@item If an interactive process is currently running, @kbd{M-!} doesn't work
diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi
index a68eda50025..dec178c5258 100644
--- a/doc/misc/eudc.texi
+++ b/doc/misc/eudc.texi
@@ -12,7 +12,7 @@ EUDC is the Emacs Unified Directory Client, a common interface to
12directory servers using various protocols such as LDAP or the CCSO white 12directory servers using various protocols such as LDAP or the CCSO white
13pages directory system (PH/QI) 13pages directory system (PH/QI)
14 14
15Copyright @copyright{} 1998, 2000-2011 Free Software Foundation, Inc. 15Copyright @copyright{} 1998, 2000-2012 Free Software Foundation, Inc.
16 16
17@quotation 17@quotation
18Permission is granted to copy, distribute and/or modify this document 18Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/faq.texi b/doc/misc/faq.texi
index 7528abca58d..5b7bb7ec9ce 100644
--- a/doc/misc/faq.texi
+++ b/doc/misc/faq.texi
@@ -11,7 +11,7 @@
11@c appreciate a notice if you do). 11@c appreciate a notice if you do).
12 12
13@copying 13@copying
14Copyright @copyright{} 2001-2011 Free Software Foundation, Inc.@* 14Copyright @copyright{} 2001-2012 Free Software Foundation, Inc.@*
15Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000 15Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000
16Reuven M. Lerner@* 16Reuven M. Lerner@*
17Copyright @copyright{} 1992, 1993 Steven Byrnes@* 17Copyright @copyright{} 1992, 1993 Steven Byrnes@*
@@ -80,7 +80,7 @@ Emacs, the Emacs manual is often the best starting point.
80 80
81@ifnottex 81@ifnottex
82@insertcopying 82@insertcopying
83@end ifnottex 83@end ifnottex
84 84
85@menu 85@menu
86* FAQ notation:: 86* FAQ notation::
@@ -368,7 +368,7 @@ only be known if and when a judge rules on its validity and scope.
368There has never been a copyright infringement case involving the GPL to 368There has never been a copyright infringement case involving the GPL to
369set any precedents. Although legal actions have been brought against 369set any precedents. Although legal actions have been brought against
370companies for violating the terms of the GPL, so far all have been 370companies for violating the terms of the GPL, so far all have been
371settled out of court (in favour of the plaintiffs). Please take any 371settled out of court (in favor of the plaintiffs). Please take any
372discussion regarding this issue to the newsgroup 372discussion regarding this issue to the newsgroup
373@uref{news:gnu.misc.discuss}, which was created to hold the extensive 373@uref{news:gnu.misc.discuss}, which was created to hold the extensive
374flame wars on the subject. 374flame wars on the subject.
@@ -627,7 +627,7 @@ translations of the reference card into several languages; look for
627files named @file{etc/refcards/@var{lang}-refcard.*}, where @var{lang} 627files named @file{etc/refcards/@var{lang}-refcard.*}, where @var{lang}
628is a two-letter code of the language. For example, the German version 628is a two-letter code of the language. For example, the German version
629of the reference card is in the files @file{etc/refcards/de-refcard.tex} 629of the reference card is in the files @file{etc/refcards/de-refcard.tex}
630and @file{etc/recards/de-refcard.pdf}. 630and @file{etc/refcards/de-refcard.pdf}.
631 631
632@item 632@item
633There are many other commands in Emacs for getting help and 633There are many other commands in Emacs for getting help and
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index 74cf3d630da..28fb7864f06 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -11,7 +11,7 @@
11This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}), 11This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}),
12which is a universal on-the-fly syntax checker for GNU Emacs. 12which is a universal on-the-fly syntax checker for GNU Emacs.
13 13
14Copyright @copyright{} 2004-2011 14Copyright @copyright{} 2004-2012
15Free Software Foundation, Inc. 15Free Software Foundation, Inc.
16 16
17@quotation 17@quotation
@@ -449,10 +449,10 @@ Finally, we add an entry to @code{flymake-err-line-patterns}:
449@cindex Adding support for C (gcc+make) 449@cindex Adding support for C (gcc+make)
450 450
451In this example we will add support for C files syntax checked by 451In this example we will add support for C files syntax checked by
452@code{gcc} called via @code{make}. 452@command{gcc} called via @command{make}.
453 453
454We're not required to write any new functions, as Flymake already has 454We're not required to write any new functions, as Flymake already has
455functions for @code{make}. We just add a new entry to the 455functions for @command{make}. We just add a new entry to the
456@code{flymake-allowed-file-name-masks}: 456@code{flymake-allowed-file-name-masks}:
457 457
458@lisp 458@lisp
@@ -464,7 +464,7 @@ functions for @code{make}. We just add a new entry to the
464 flymake-allowed-file-name-masks)) 464 flymake-allowed-file-name-masks))
465@end lisp 465@end lisp
466 466
467@code{flymake-simple-make-init} builds the following @code{make} 467@code{flymake-simple-make-init} builds the following @command{make}
468command line: 468command line:
469 469
470@lisp 470@lisp
@@ -483,12 +483,20 @@ our case this target might look like this:
483 483
484@verbatim 484@verbatim
485check-syntax: 485check-syntax:
486 gcc -o nul -S ${CHK_SOURCES} 486 gcc -o /dev/null -S ${CHK_SOURCES}
487@end verbatim 487@end verbatim
488 488
489The format of error messages reported by @code{gcc} is already 489@noindent
490The format of error messages reported by @command{gcc} is already
490supported by Flymake, so we don't have to add a new entry to 491supported by Flymake, so we don't have to add a new entry to
491@code{flymake-err-line-patterns}. 492@code{flymake-err-line-patterns}. Note that if you are using
493Automake, you may want to replace @code{gcc} with the standard
494Automake variable @code{COMPILE}:
495
496@verbatim
497check-syntax:
498 $(COMPILE) -o /dev/null -S ${CHK_SOURCES}
499@end verbatim
492 500
493@node Flymake Implementation 501@node Flymake Implementation
494@chapter Flymake Implementation 502@chapter Flymake Implementation
@@ -548,9 +556,9 @@ These modes are handled inside init/cleanup/getfname functions, see
548@ref{Adding support for a new syntax check tool}. 556@ref{Adding support for a new syntax check tool}.
549 557
550Flymake contains implementations of all functionality required to 558Flymake contains implementations of all functionality required to
551support different syntax check modes described above (making 559support different syntax check modes described above (making temporary
552temporary copies, finding master files, etc.), as well as some 560copies, finding master files, etc.), as well as some tool-specific
553tool-specific (routines for @code{make}, @code{Ant}, etc.) code. 561(routines for Make, Ant, etc.) code.
554 562
555 563
556@node Making a temporary copy 564@node Making a temporary copy
@@ -626,8 +634,8 @@ Therefore, a customizable variable
626way to implement the desired behavior. 634way to implement the desired behavior.
627 635
628The default implementation, @code{flymake-get-project-include-dirs-imp}, 636The default implementation, @code{flymake-get-project-include-dirs-imp},
629uses a @code{make} call. This requires a correct base directory, that is, a 637uses a @command{make} call. This requires a correct base directory, that is, a
630directory containing a correct @code{Makefile}, to be determined. 638directory containing a correct @file{Makefile}, to be determined.
631 639
632As obtaining the project include directories might be a costly operation, its 640As obtaining the project include directories might be a costly operation, its
633return value is cached in the hash table. The cache is cleared in the beginning 641return value is cached in the hash table. The cache is cleared in the beginning
@@ -641,16 +649,16 @@ of every syntax check attempt.
641 649
642Flymake can be configured to use different tools for performing syntax 650Flymake can be configured to use different tools for performing syntax
643checks. For example, it can use direct compiler call to syntax check a perl 651checks. For example, it can use direct compiler call to syntax check a perl
644script or a call to @code{make} for a more complicated case of a 652script or a call to @command{make} for a more complicated case of a
645@code{C/C++} source. The general idea is that simple files, like perl 653@code{C/C++} source. The general idea is that simple files, like perl
646scripts and html pages, can be checked by directly invoking a 654scripts and html pages, can be checked by directly invoking a
647corresponding tool. Files that are usually more complex and generally 655corresponding tool. Files that are usually more complex and generally
648used as part of larger projects, might require non-trivial options to 656used as part of larger projects, might require non-trivial options to
649be passed to the syntax check tool, like include directories for 657be passed to the syntax check tool, like include directories for
650C++. The latter files are syntax checked using some build tool, like 658C++. The latter files are syntax checked using some build tool, like
651@code{make} or @code{Ant}. 659Make or Ant.
652 660
653All @code{make} configuration data is usually stored in a file called 661All Make configuration data is usually stored in a file called
654@code{Makefile}. To allow for future extensions, flymake uses a notion of 662@code{Makefile}. To allow for future extensions, flymake uses a notion of
655buildfile to reference the 'project configuration' file. 663buildfile to reference the 'project configuration' file.
656 664
diff --git a/doc/misc/forms.texi b/doc/misc/forms.texi
index 17c1d7feaf0..34c418c14fd 100644
--- a/doc/misc/forms.texi
+++ b/doc/misc/forms.texi
@@ -18,7 +18,7 @@
18@copying 18@copying
19This file documents Forms mode, a form-editing major mode for GNU Emacs. 19This file documents Forms mode, a form-editing major mode for GNU Emacs.
20 20
21Copyright @copyright{} 1989, 1997, 2001-2011 Free Software Foundation, Inc. 21Copyright @copyright{} 1989, 1997, 2001-2012 Free Software Foundation, Inc.
22 22
23@quotation 23@quotation
24Permission is granted to copy, distribute and/or modify this document 24Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/gnus-coding.texi b/doc/misc/gnus-coding.texi
index ab9c0232d3d..bbaf2c068da 100644
--- a/doc/misc/gnus-coding.texi
+++ b/doc/misc/gnus-coding.texi
@@ -1,13 +1,13 @@
1\input texinfo 1\input texinfo
2 2
3@setfilename gnus-coding 3@setfilename gnus-coding
4@settitle Gnus Coding Style and Maintainance Guide 4@settitle Gnus Coding Style and Maintenance Guide
5@syncodeindex fn cp 5@syncodeindex fn cp
6@syncodeindex vr cp 6@syncodeindex vr cp
7@syncodeindex pg cp 7@syncodeindex pg cp
8 8
9@copying 9@copying
10Copyright @copyright{} 2004-2005, 2007-2011 Free Software 10Copyright @copyright{} 2004-2005, 2007-2012 Free Software
11Foundation, Inc. 11Foundation, Inc.
12 12
13@quotation 13@quotation
@@ -45,7 +45,7 @@ license to the document, as described in section 6 of the license.
45 45
46@ifnottex 46@ifnottex
47@node Top 47@node Top
48@top Gnus Coding Style and Maintainance Guide 48@top Gnus Coding Style and Maintenance Guide
49This manual describes @dots{} 49This manual describes @dots{}
50 50
51@insertcopying 51@insertcopying
@@ -53,7 +53,7 @@ This manual describes @dots{}
53 53
54@menu 54@menu
55* Gnus Coding Style:: Gnus Coding Style 55* Gnus Coding Style:: Gnus Coding Style
56* Gnus Maintainance Guide:: Gnus Maintainance Guide 56* Gnus Maintenance Guide:: Gnus Maintenance Guide
57@end menu 57@end menu
58 58
59@c @ref{Gnus Reference Guide, ,Gnus Reference Guide, gnus, The Gnus Newsreader} 59@c @ref{Gnus Reference Guide, ,Gnus Reference Guide, gnus, The Gnus Newsreader}
@@ -250,8 +250,8 @@ Emacs 20.7 and up.
250XEmacs 21.1 and up. 250XEmacs 21.1 and up.
251@end itemize 251@end itemize
252 252
253@node Gnus Maintainance Guide 253@node Gnus Maintenance Guide
254@chapter Gnus Maintainance Guide 254@chapter Gnus Maintenance Guide
255 255
256@section Stable and development versions 256@section Stable and development versions
257 257
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index e8e89ed2a30..9d075a8efac 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -1,7 +1,7 @@
1@c \input texinfo @c -*-texinfo-*- 1@c \input texinfo @c -*-texinfo-*-
2@c Uncomment 1st line before texing this file alone. 2@c Uncomment 1st line before texing this file alone.
3@c %**start of header 3@c %**start of header
4@c Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. 4@c Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc.
5@c 5@c
6@setfilename gnus-faq.info 6@setfilename gnus-faq.info
7@settitle Frequently Asked Questions 7@settitle Frequently Asked Questions
@@ -12,7 +12,7 @@
12@section Frequently Asked Questions 12@section Frequently Asked Questions
13 13
14@menu 14@menu
15* FAQ - Changes:: 15* FAQ - Changes::
16* FAQ - Introduction:: About Gnus and this FAQ. 16* FAQ - Introduction:: About Gnus and this FAQ.
17* FAQ 1 - Installation FAQ:: Installation of Gnus. 17* FAQ 1 - Installation FAQ:: Installation of Gnus.
18* FAQ 2 - Startup / Group buffer:: Start up questions and the 18* FAQ 2 - Startup / Group buffer:: Start up questions and the
@@ -37,7 +37,7 @@
37 37
38This is the new Gnus Frequently Asked Questions list. 38This is the new Gnus Frequently Asked Questions list.
39 39
40Please submit features and suggestions to the 40Please submit features and suggestions to the
41@email{ding@@gnus.org, ding list}. 41@email{ding@@gnus.org, ding list}.
42 42
43@node FAQ - Changes 43@node FAQ - Changes
@@ -161,12 +161,12 @@ Where and how to get Gnus?
161@subsubheading Answer 161@subsubheading Answer
162 162
163Gnus is released independent from releases of Emacs and XEmacs. 163Gnus is released independent from releases of Emacs and XEmacs.
164Therefore, the version bundled with Emacs or the version in XEmacs' 164Therefore, the version bundled with Emacs or the version in XEmacs's
165package system might not be up to date (e.g. Gnus 5.9 bundled with Emacs 165package system might not be up to date (e.g. Gnus 5.9 bundled with Emacs
16621 is outdated). 16621 is outdated).
167You can get the latest released version of Gnus from 167You can get the latest released version of Gnus from
168@uref{http://www.gnus.org/dist/gnus.tar.gz} 168@uref{http://www.gnus.org/dist/gnus.tar.gz}
169or via anonymous FTP from 169or via anonymous FTP from
170@uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}. 170@uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}.
171 171
172@node FAQ 1-4 172@node FAQ 1-4
@@ -176,7 +176,7 @@ What to do with the tarball now?
176 176
177@subsubheading Answer 177@subsubheading Answer
178 178
179Untar it via @samp{tar xvzf gnus.tar.gz} and do the common 179Untar it via @samp{tar xvzf gnus.tar.gz} and do the common
180@samp{./configure; make; make install} circle. 180@samp{./configure; make; make install} circle.
181(under MS-Windows either get the Cygwin environment from 181(under MS-Windows either get the Cygwin environment from
182@uref{http://www.cygwin.com} 182@uref{http://www.cygwin.com}
@@ -266,9 +266,9 @@ and how to prevent it?
266@subsubheading Answer 266@subsubheading Answer
267 267
268This message means that the last time you used Gnus, it 268This message means that the last time you used Gnus, it
269wasn't properly exited and therefor couldn't write its 269wasn't properly exited and therefore couldn't write its
270informations to disk (e.g. which messages you read), you 270information to disk (e.g. which messages you read), you
271are now asked if you want to restore those informations 271are now asked if you want to restore that information
272from the auto-save file. 272from the auto-save file.
273 273
274To prevent this message make sure you exit Gnus 274To prevent this message make sure you exit Gnus
@@ -344,7 +344,7 @@ hit @samp{C-y}.
344@subsection Getting Messages 344@subsection Getting Messages
345 345
346@menu 346@menu
347* FAQ 3-1:: I just installed Gnus, started it via @samp{M-x gnus} 347* FAQ 3-1:: I just installed Gnus, started it via @samp{M-x gnus}
348 but it only says "nntp (news) open error", what to do? 348 but it only says "nntp (news) open error", what to do?
349* FAQ 3-2:: I'm working under Windows and have no idea what 349* FAQ 3-2:: I'm working under Windows and have no idea what
350 ~/.gnus.el means. 350 ~/.gnus.el means.
@@ -369,8 +369,8 @@ hit @samp{C-y}.
369@node FAQ 3-1 369@node FAQ 3-1
370@subsubheading Question 3.1 370@subsubheading Question 3.1
371 371
372I just installed Gnus, started it via 372I just installed Gnus, started it via
373@samp{M-x gnus} 373@samp{M-x gnus}
374but it only says "nntp (news) open error", what to do? 374but it only says "nntp (news) open error", what to do?
375 375
376@subsubheading Answer 376@subsubheading Answer
@@ -396,14 +396,14 @@ I'm working under Windows and have no idea what ~/.gnus.el means.
396The ~/ means the home directory where Gnus and Emacs look 396The ~/ means the home directory where Gnus and Emacs look
397for the configuration files. However, you don't really 397for the configuration files. However, you don't really
398need to know what this means, it suffices that Emacs knows 398need to know what this means, it suffices that Emacs knows
399what it means :-) You can type 399what it means :-) You can type
400@samp{C-x C-f ~/.gnus.el RET } 400@samp{C-x C-f ~/.gnus.el RET }
401(yes, with the forward slash, even on Windows), and 401(yes, with the forward slash, even on Windows), and
402Emacs will open the right file for you. (It will most 402Emacs will open the right file for you. (It will most
403likely be new, and thus empty.) 403likely be new, and thus empty.)
404However, I'd discourage you from doing so, since the 404However, I'd discourage you from doing so, since the
405directory Emacs chooses will most certainly not be what 405directory Emacs chooses will most certainly not be what
406you want, so let's do it the correct way. 406you want, so let's do it the correct way.
407The first thing you've got to do is to 407The first thing you've got to do is to
408create a suitable directory (no blanks in directory name 408create a suitable directory (no blanks in directory name
409please) e.g. c:\myhome. Then you must set the environment 409please) e.g. c:\myhome. Then you must set the environment
@@ -442,7 +442,7 @@ machine news.yourprovider.net login YourUserName password YourPassword
442. 442.
443Make sure that the file isn't readable to others if you 443Make sure that the file isn't readable to others if you
444work on a OS which is capable of doing so. (Under Unix 444work on a OS which is capable of doing so. (Under Unix
445say 445say
446@example 446@example
447chmod 600 ~/.authinfo 447chmod 600 ~/.authinfo
448@end example 448@end example
@@ -477,13 +477,13 @@ post on this server as well as I am, what's that?
477 477
478Some providers allow restricted anonymous access and full 478Some providers allow restricted anonymous access and full
479access only after authorization. To make Gnus send authinfo 479access only after authorization. To make Gnus send authinfo
480to those servers append 480to those servers append
481 481
482@example 482@example
483force yes 483force yes
484@end example 484@end example
485@noindent 485@noindent
486 486
487to the line for those servers in ~/.authinfo. 487to the line for those servers in ~/.authinfo.
488 488
489@node FAQ 3-6 489@node FAQ 3-6
@@ -563,7 +563,7 @@ However, the first thing to do is to tell Gnus in which way
563it should store the mail, in Gnus terminology which back end 563it should store the mail, in Gnus terminology which back end
564to use. Gnus supports many different back ends, the most 564to use. Gnus supports many different back ends, the most
565commonly used one is nnml. It stores every mail in one file 565commonly used one is nnml. It stores every mail in one file
566and is therefor quite fast. However you might prefer a one 566and is therefore quite fast. However you might prefer a one
567file per group approach if your file system has problems with 567file per group approach if your file system has problems with
568many small files, the nnfolder back end is then probably the 568many small files, the nnfolder back end is then probably the
569choice for you. To use nnml add the following to ~/.gnus.el: 569choice for you. To use nnml add the following to ~/.gnus.el:
@@ -580,7 +580,7 @@ As you might have guessed, if you want nnfolder, it's
580@end example 580@end example
581@noindent 581@noindent
582 582
583Now we need to tell Gnus, where to get it's mail from. If 583Now we need to tell Gnus, where to get its mail from. If
584it's a POP3 server, then you need something like this: 584it's a POP3 server, then you need something like this:
585 585
586@example 586@example
@@ -774,7 +774,7 @@ When I enter a group, all read messages are gone. How to view them again?
774 774
775@subsubheading Answer 775@subsubheading Answer
776 776
777If you enter the group by saying 777If you enter the group by saying
778@samp{RET} 778@samp{RET}
779in group buffer with point over the group, only unread and ticked messages are loaded. Say 779in group buffer with point over the group, only unread and ticked messages are loaded. Say
780@samp{C-u RET} 780@samp{C-u RET}
@@ -787,13 +787,13 @@ Loading only unread messages can be annoying if you have threaded view enabled,
787(setq gnus-fetch-old-headers 'some) 787(setq gnus-fetch-old-headers 'some)
788@end example 788@end example
789@noindent 789@noindent
790 790
791in ~/.gnus.el to load enough old articles to prevent teared threads, replace 'some with t to load 791in ~/.gnus.el to load enough old articles to prevent teared threads, replace 'some with t to load
792all articles (Warning: Both settings enlarge the amount of data which is 792all articles (Warning: Both settings enlarge the amount of data which is
793fetched when you enter a group and slow down the process of entering a group). 793fetched when you enter a group and slow down the process of entering a group).
794 794
795If you already use Gnus 5.10, you can say 795If you already use Gnus 5.10, you can say
796@samp{/o N} 796@samp{/o N}
797In summary buffer to load the last N messages, this feature is not available in 5.8.8 797In summary buffer to load the last N messages, this feature is not available in 5.8.8
798 798
799If you don't want all old messages, but the parent of the message you're just reading, 799If you don't want all old messages, but the parent of the message you're just reading,
@@ -822,9 +822,9 @@ How to view the headers of a message?
822 822
823@subsubheading Answer 823@subsubheading Answer
824 824
825Say @samp{t} 825Say @samp{t}
826to show all headers, one more 826to show all headers, one more
827@samp{t} 827@samp{t}
828hides them again. 828hides them again.
829 829
830@node FAQ 4-4 830@node FAQ 4-4
@@ -834,10 +834,10 @@ How to view the raw unformatted message?
834 834
835@subsubheading Answer 835@subsubheading Answer
836 836
837Say 837Say
838@samp{C-u g} 838@samp{C-u g}
839to show the raw message 839to show the raw message
840@samp{g} 840@samp{g}
841returns to normal view. 841returns to normal view.
842 842
843@node FAQ 4-5 843@node FAQ 4-5
@@ -873,7 +873,7 @@ Say
873 873
874@example 874@example
875(eval-after-load "mm-decode" 875(eval-after-load "mm-decode"
876 '(progn 876 '(progn
877 (add-to-list 'mm-discouraged-alternatives "text/html") 877 (add-to-list 'mm-discouraged-alternatives "text/html")
878 (add-to-list 'mm-discouraged-alternatives "text/richtext"))) 878 (add-to-list 'mm-discouraged-alternatives "text/richtext")))
879@end example 879@end example
@@ -1042,7 +1042,7 @@ back ends. Gnus thinks "highest-article-number -
1042lowest-article-number = total-number-of-articles". This 1042lowest-article-number = total-number-of-articles". This
1043works OK for Usenet groups, but if you delete and move 1043works OK for Usenet groups, but if you delete and move
1044many messages in mail groups, this fails. To cure the 1044many messages in mail groups, this fails. To cure the
1045symptom, enter the group via @samp{C-u RET} 1045symptom, enter the group via @samp{C-u RET}
1046(this makes Gnus get all messages), then 1046(this makes Gnus get all messages), then
1047hit @samp{M P b} to mark all messages and 1047hit @samp{M P b} to mark all messages and
1048then say @samp{B m name.of.group} to move 1048then say @samp{B m name.of.group} to move
@@ -1104,11 +1104,11 @@ I don't like the way the Summary buffer looks, how to tweak it?
1104@subsubheading Answer 1104@subsubheading Answer
1105 1105
1106You've got to play around with the variable 1106You've got to play around with the variable
1107gnus-summary-line-format. It's value is a string of 1107gnus-summary-line-format. Its value is a string of
1108symbols which stand for things like author, date, subject 1108symbols which stand for things like author, date, subject
1109etc. A list of the available specifiers can be found in the 1109etc. A list of the available specifiers can be found in the
1110manual node "Summary Buffer Lines" and the often forgotten 1110manual node "Summary Buffer Lines" and the often forgotten
1111node "Formatting Variables" and it's sub-nodes. There 1111node "Formatting Variables" and its sub-nodes. There
1112you'll find useful things like positioning the cursor and 1112you'll find useful things like positioning the cursor and
1113tabulators which allow you a summary in table form, but 1113tabulators which allow you a summary in table form, but
1114sadly hard tabulators are broken in 5.8.8. 1114sadly hard tabulators are broken in 5.8.8.
@@ -1162,7 +1162,7 @@ general rule (regular expression .*) which denotes where
1162articles should go which don't match any other rule. If 1162articles should go which don't match any other rule. If
1163the folder doesn't exist yet, it will be created as soon 1163the folder doesn't exist yet, it will be created as soon
1164as an article lands there. By default the mail will be 1164as an article lands there. By default the mail will be
1165send to all groups whose rules match. If you 1165send to all groups whose rules match. If you
1166don't want that (you probably don't want), say 1166don't want that (you probably don't want), say
1167 1167
1168@example 1168@example
@@ -1203,7 +1203,7 @@ from using them):
1203 ("Spam" "^CC: .*azzrael@@t-online.invalid") 1203 ("Spam" "^CC: .*azzrael@@t-online.invalid")
1204 ("Spam" "^X-Mailer-Version: 1.50 BETA") 1204 ("Spam" "^X-Mailer-Version: 1.50 BETA")
1205 ("Uni" "^\\(CC:\\|To:\\).*localpart@@uni-koblenz.invalid.*") 1205 ("Uni" "^\\(CC:\\|To:\\).*localpart@@uni-koblenz.invalid.*")
1206 ("Inbox" "^\\(CC:\\|To:\\).*\\(my\ name\\|address@@one.invalid\\|adress@@two.invalid\\)") 1206 ("Inbox" "^\\(CC:\\|To:\\).*\\(my\ name\\|address@@one.invalid\\|address@@two.invalid\\)")
1207 ("Spam" ""))) 1207 ("Spam" "")))
1208@end example 1208@end example
1209@noindent 1209@noindent
@@ -1393,13 +1393,13 @@ You can use ispell.el to spell-check stuff in Emacs. So the
1393first thing to do is to make sure that you've got either 1393first thing to do is to make sure that you've got either
1394@uref{http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html, ispell} 1394@uref{http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html, ispell}
1395or @uref{http://aspell.sourceforge.net/, aspell} 1395or @uref{http://aspell.sourceforge.net/, aspell}
1396installed and in your Path. Then you need 1396installed and in your Path. Then you need
1397@uref{http://www.kdstevens.com/~stevens/ispell-page.html, ispell.el} 1397@uref{http://www.kdstevens.com/~stevens/ispell-page.html, ispell.el}
1398and for on-the-fly spell-checking 1398and for on-the-fly spell-checking
1399@uref{http://www-sop.inria.fr/members/Manuel.Serrano/flyspell/flyspell.html, flyspell.el}. 1399@uref{http://www-sop.inria.fr/members/Manuel.Serrano/flyspell/flyspell.html, flyspell.el}.
1400Ispell.el is shipped with Emacs and available through the XEmacs package system, 1400Ispell.el is shipped with Emacs and available through the XEmacs package system,
1401flyspell.el is shipped with Emacs and part of XEmacs text-modes package which is 1401flyspell.el is shipped with Emacs and part of XEmacs text-modes package which is
1402available through the package system, so there should be no need to install them 1402available through the package system, so there should be no need to install them
1403manually. 1403manually.
1404 1404
1405Ispell.el assumes you use ispell, if you choose aspell say 1405Ispell.el assumes you use ispell, if you choose aspell say
@@ -1408,7 +1408,7 @@ Ispell.el assumes you use ispell, if you choose aspell say
1408(setq ispell-program-name "aspell") 1408(setq ispell-program-name "aspell")
1409@end example 1409@end example
1410@noindent 1410@noindent
1411 1411
1412in your Emacs configuration file. 1412in your Emacs configuration file.
1413 1413
1414If you want your outgoing messages to be spell-checked, say 1414If you want your outgoing messages to be spell-checked, say
@@ -1445,7 +1445,7 @@ Yes, say something like
1445 (ispell-change-dictionary "english"))))) 1445 (ispell-change-dictionary "english")))))
1446@end example 1446@end example
1447@noindent 1447@noindent
1448 1448
1449in ~/.gnus.el. Change "^de\\." and "deutsch8" to something 1449in ~/.gnus.el. Change "^de\\." and "deutsch8" to something
1450that suits your needs. 1450that suits your needs.
1451 1451
@@ -1472,7 +1472,7 @@ cause Gnus to insert the full address for you. See the
1472node "Mail Aliases" in Message (not Gnus) manual for 1472node "Mail Aliases" in Message (not Gnus) manual for
1473details. 1473details.
1474 1474
1475However, what you really want is the Insidious Big Brother 1475However, what you really want is the Insidious Big Brother
1476Database bbdb. Get it through the XEmacs package system or from 1476Database bbdb. Get it through the XEmacs package system or from
1477@uref{http://bbdb.sourceforge.net/, bbdb's homepage}. 1477@uref{http://bbdb.sourceforge.net/, bbdb's homepage}.
1478Now place the following in ~/.gnus.el, to activate bbdb for Gnus: 1478Now place the following in ~/.gnus.el, to activate bbdb for Gnus:
@@ -1488,7 +1488,7 @@ place them in ~/.emacs:
1488 1488
1489@example 1489@example
1490(require 'bbdb) 1490(require 'bbdb)
1491;;If you don't live in Northern America, you should disable the 1491;;If you don't live in Northern America, you should disable the
1492;;syntax check for telephone numbers by saying 1492;;syntax check for telephone numbers by saying
1493(setq bbdb-north-american-phone-numbers-p nil) 1493(setq bbdb-north-american-phone-numbers-p nil)
1494;;Tell bbdb about your email address: 1494;;Tell bbdb about your email address:
@@ -1529,7 +1529,7 @@ X-Face. So fire up some image manipulation program (say
1529Gimp), open the image you want to include, cut out the 1529Gimp), open the image you want to include, cut out the
1530relevant part, reduce color depth to 1 bit, resize to 1530relevant part, reduce color depth to 1 bit, resize to
153148*48 and save as bitmap. Now you should get the compface 153148*48 and save as bitmap. Now you should get the compface
1532package from 1532package from
1533@uref{ftp://ftp.cs.indiana.edu:/pub/faces/, this site}. 1533@uref{ftp://ftp.cs.indiana.edu:/pub/faces/, this site}.
1534and create the actual X-face by saying 1534and create the actual X-face by saying
1535 1535
@@ -1539,7 +1539,7 @@ cat file.face | sed 's/\\/\\\\/g;s/\"/\\\"/g;' > file.face.quoted
1539@end example 1539@end example
1540@noindent 1540@noindent
1541 1541
1542If you can't use compface, there's an online X-face converter at 1542If you can't use compface, there's an online X-face converter at
1543@uref{http://www.dairiki.org/xface/}. 1543@uref{http://www.dairiki.org/xface/}.
1544If you use MS Windows, you could also use the WinFace program from 1544If you use MS Windows, you could also use the WinFace program from
1545@uref{http://www.xs4all.nl/~walterln/winface/}. 1545@uref{http://www.xs4all.nl/~walterln/winface/}.
@@ -1668,7 +1668,7 @@ by saying:
1668@noindent 1668@noindent
1669 1669
1670in ~/.gnus.el. If you use Gnus 5.9 or earlier, you can use this 1670in ~/.gnus.el. If you use Gnus 5.9 or earlier, you can use this
1671instead (works for newer versions as well): 1671instead (works for newer versions as well):
1672 1672
1673@example 1673@example
1674(eval-after-load "message" 1674(eval-after-load "message"
@@ -1838,7 +1838,7 @@ inconvenient since you are not displaying the found mail
1838in Gnus. Here comes nnir into action. Nnir is a front end 1838in Gnus. Here comes nnir into action. Nnir is a front end
1839to search engines like swish-e or swish++ and 1839to search engines like swish-e or swish++ and
1840others. You index your mail with one of those search 1840others. You index your mail with one of those search
1841engines and with the help of nnir you can search trough 1841engines and with the help of nnir you can search through
1842the indexed mail and generate a temporary group with all 1842the indexed mail and generate a temporary group with all
1843messages which met your search criteria. If this sound 1843messages which met your search criteria. If this sound
1844cool to you get nnir.el from 1844cool to you get nnir.el from
@@ -1961,12 +1961,12 @@ receives the mail you write from Gnus and sends them
1961when you're online. 1961when you're online.
1962 1962
1963Let's talk about Unix systems first: For the news part, 1963Let's talk about Unix systems first: For the news part,
1964the easiest solution is a small nntp server like 1964the easiest solution is a small nntp server like
1965@uref{http://www.leafnode.org/, Leafnode} or 1965@uref{http://www.leafnode.org/, Leafnode} or
1966@uref{http://infa.abo.fi/~patrik/sn/, sn}, 1966@uref{http://infa.abo.fi/~patrik/sn/, sn},
1967of course you can also install a full featured news 1967of course you can also install a full featured news
1968server like 1968server like
1969@uref{http://www.isc.org/products/INN/, inn}. 1969@uref{http://www.isc.org/products/INN/, inn}.
1970Then you want to fetch your Mail, popular choices 1970Then you want to fetch your Mail, popular choices
1971are @uref{http://www.catb.org/~esr/fetchmail/, fetchmail} 1971are @uref{http://www.catb.org/~esr/fetchmail/, fetchmail}
1972and @uref{http://pyropus.ca/software/getmail/, getmail}. 1972and @uref{http://pyropus.ca/software/getmail/, getmail}.
@@ -1978,8 +1978,8 @@ sending part: This can be done with every MTA like
1978@uref{http://www.exim.org/, exim} or 1978@uref{http://www.exim.org/, exim} or
1979@uref{http://www.qmail.org/, qmail}. 1979@uref{http://www.qmail.org/, qmail}.
1980 1980
1981On windows boxes I'd vote for 1981On windows boxes I'd vote for
1982@uref{http://www.tglsoft.de/, Hamster}, 1982@uref{http://www.tglsoft.de/, Hamster},
1983it's a small freeware, open-source program which fetches 1983it's a small freeware, open-source program which fetches
1984your mail and news from remote servers and offers them 1984your mail and news from remote servers and offers them
1985to Gnus (or any other mail and/or news reader) via nntp 1985to Gnus (or any other mail and/or news reader) via nntp
@@ -2136,7 +2136,7 @@ Which mailing lists and newsgroups are there?
2136@subsubheading Answer 2136@subsubheading Answer
2137 2137
2138There's the newsgroup gnu.emacs.gnus (also available as 2138There's the newsgroup gnu.emacs.gnus (also available as
2139@uref{http://dir.gmane.org/gmane.emacs.gnus.user, 2139@uref{http://dir.gmane.org/gmane.emacs.gnus.user,
2140gmane.emacs.gnus.user}) which deals with general Gnus 2140gmane.emacs.gnus.user}) which deals with general Gnus
2141questions. If you have questions about development versions of 2141questions. If you have questions about development versions of
2142Gnus, you should better ask on the ding mailing list, see below. 2142Gnus, you should better ask on the ding mailing list, see below.
@@ -2149,7 +2149,7 @@ de.comm.software.gnus.
2149 2149
2150The ding mailing list (ding@@gnus.org) deals with development of 2150The ding mailing list (ding@@gnus.org) deals with development of
2151Gnus. You can read the ding list via NNTP, too under the name 2151Gnus. You can read the ding list via NNTP, too under the name
2152@uref{http://dir.gmane.org/gmane.emacs.gnus.general, 2152@uref{http://dir.gmane.org/gmane.emacs.gnus.general,
2153gmane.emacs.gnus.general} from news.gmane.org. 2153gmane.emacs.gnus.general} from news.gmane.org.
2154 2154
2155@node FAQ 8-5 2155@node FAQ 8-5
@@ -2160,7 +2160,7 @@ Where to report bugs?
2160@subsubheading Answer 2160@subsubheading Answer
2161 2161
2162Say @samp{M-x gnus-bug}, this will start 2162Say @samp{M-x gnus-bug}, this will start
2163a message to the 2163a message to the
2164@email{bugs@@gnus.org, gnus bug mailing list} 2164@email{bugs@@gnus.org, gnus bug mailing list}
2165including information about your environment which make 2165including information about your environment which make
2166it easier to help you. 2166it easier to help you.
@@ -2190,7 +2190,7 @@ Starting Gnus is really slow, how to speed it up?
2190 2190
2191@subsubheading Answer 2191@subsubheading Answer
2192 2192
2193The reason for this could be the way Gnus reads it's 2193The reason for this could be the way Gnus reads its
2194active file, see the node "The Active File" in the Gnus 2194active file, see the node "The Active File" in the Gnus
2195manual for things you might try to speed the process up. 2195manual for things you might try to speed the process up.
2196An other idea would be to byte compile your ~/.gnus.el (say 2196An other idea would be to byte compile your ~/.gnus.el (say
@@ -2237,7 +2237,7 @@ building of summary say
2237 2237
2238at the bottom of your ~/.gnus.el, this will make gnus 2238at the bottom of your ~/.gnus.el, this will make gnus
2239byte-compile things like 2239byte-compile things like
2240gnus-summary-line-format. 2240gnus-summary-line-format.
2241then you could increase the value of gc-cons-threshold 2241then you could increase the value of gc-cons-threshold
2242by saying something like 2242by saying something like
2243 2243
@@ -2254,7 +2254,7 @@ recent GNU Emacs, you should say
2254(setq gnus-use-correct-string-widths nil) 2254(setq gnus-use-correct-string-widths nil)
2255@end example 2255@end example
2256@noindent 2256@noindent
2257 2257
2258in ~/.gnus.el (thanks to Jesper harder for the last 2258in ~/.gnus.el (thanks to Jesper harder for the last
2259two suggestions). Finally if you are still using 5.8.8 2259two suggestions). Finally if you are still using 5.8.8
2260or 5.9 and experience speed problems with summary 2260or 5.9 and experience speed problems with summary
diff --git a/doc/misc/gnus-news.el b/doc/misc/gnus-news.el
index 485e7ce4646..0c083c85a4d 100644
--- a/doc/misc/gnus-news.el
+++ b/doc/misc/gnus-news.el
@@ -1,5 +1,5 @@
1;;; gnus-news.el --- a hack to create GNUS-NEWS from texinfo source 1;;; gnus-news.el --- a hack to create GNUS-NEWS from texinfo source
2;; Copyright (C) 2004-2011 Free Software Foundation, Inc. 2;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
3 3
4;; Author: Reiner Steib <Reiner.Steib@gmx.de> 4;; Author: Reiner Steib <Reiner.Steib@gmx.de>
5;; Keywords: tools 5;; Keywords: tools
@@ -26,7 +26,7 @@
26(defvar gnus-news-header-disclaimer 26(defvar gnus-news-header-disclaimer
27"GNUS NEWS -- history of user-visible changes. 27"GNUS NEWS -- history of user-visible changes.
28 28
29Copyright (C) 1999-2011 Free Software Foundation, Inc. 29Copyright (C) 1999-2012 Free Software Foundation, Inc.
30See the end of the file for license conditions. 30See the end of the file for license conditions.
31 31
32Please send Gnus bug reports to bugs@gnus.org. 32Please send Gnus bug reports to bugs@gnus.org.
diff --git a/doc/misc/gnus-news.texi b/doc/misc/gnus-news.texi
index 62c1663508b..19bbe01667c 100644
--- a/doc/misc/gnus-news.texi
+++ b/doc/misc/gnus-news.texi
@@ -1,6 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2 2
3@c Copyright (C) 2004-2011 Free Software Foundation, Inc. 3@c Copyright (C) 2004-2012 Free Software Foundation, Inc.
4 4
5@c Permission is granted to anyone to make or distribute verbatim copies 5@c Permission is granted to anyone to make or distribute verbatim copies
6@c of this document as received, in any medium, provided that the 6@c of this document as received, in any medium, provided that the
@@ -44,7 +44,7 @@ for more information about nntp marks. Note that downgrading isn't
44safe in general. 44safe in general.
45 45
46@item Incompatibility when switching from Emacs 23 to Emacs 22 46@item Incompatibility when switching from Emacs 23 to Emacs 22
47In Emacs 23, Gnus uses Emacs' new internal coding system @code{utf-8-emacs} 47In Emacs 23, Gnus uses Emacs's new internal coding system @code{utf-8-emacs}
48for saving articles drafts and @file{~/.newsrc.eld}. These files may not 48for saving articles drafts and @file{~/.newsrc.eld}. These files may not
49be read correctly in Emacs 22 and below. If you want to use Gnus across 49be read correctly in Emacs 22 and below. If you want to use Gnus across
50different Emacs versions, you may set @code{mm-auto-save-coding-system} 50different Emacs versions, you may set @code{mm-auto-save-coding-system}
@@ -107,7 +107,7 @@ EasyPG is included in Emacs 23 and available separately as well.
107@itemize @bullet 107@itemize @bullet
108 108
109@item 109@item
110Symbols like @code{gcc-self} now has the same presedence rules in 110Symbols like @code{gcc-self} now have the same precedence rules in
111@code{gnus-parameters} as other ``real'' variables: The last match 111@code{gnus-parameters} as other ``real'' variables: The last match
112wins instead of the first match. 112wins instead of the first match.
113 113
@@ -333,7 +333,7 @@ in the group buffer, see the variable @code{gnus-group-update-tool-bar}.
333Its default value depends on your Emacs version. 333Its default value depends on your Emacs version.
334@c FIXME: Document this in the manual 334@c FIXME: Document this in the manual
335 335
336@item You can change the location of XEmacs' toolbars in Gnus buffers. 336@item You can change the location of XEmacs's toolbars in Gnus buffers.
337See @code{gnus-use-toolbar} and @code{message-use-toolbar}. 337See @code{gnus-use-toolbar} and @code{message-use-toolbar}.
338 338
339@end itemize 339@end itemize
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 439ff7fbc55..9e440be6585 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -11,7 +11,7 @@
11@documentencoding ISO-8859-1 11@documentencoding ISO-8859-1
12 12
13@copying 13@copying
14Copyright @copyright{} 1995-2011 Free Software Foundation, Inc. 14Copyright @copyright{} 1995-2012 Free Software Foundation, Inc.
15 15
16@quotation 16@quotation
17Permission is granted to copy, distribute and/or modify this document 17Permission is granted to copy, distribute and/or modify this document
@@ -891,7 +891,6 @@ Appendices
891History 891History
892 892
893* Gnus Versions:: What Gnus versions have been released. 893* Gnus Versions:: What Gnus versions have been released.
894* Other Gnus Versions:: Other Gnus versions that also have been released.
895* Why?:: What's the point of Gnus? 894* Why?:: What's the point of Gnus?
896* Compatibility:: Just how compatible is Gnus with @sc{gnus}? 895* Compatibility:: Just how compatible is Gnus with @sc{gnus}?
897* Conformity:: Gnus tries to conform to all standards. 896* Conformity:: Gnus tries to conform to all standards.
@@ -1002,7 +1001,7 @@ press @kbd{^} from the Group buffer to see it. In the Server buffer,
1002you can press @kbd{RET} on a defined server to see all the groups it 1001you can press @kbd{RET} on a defined server to see all the groups it
1003serves (subscribed or not!). You can also add or delete servers, edit 1002serves (subscribed or not!). You can also add or delete servers, edit
1004a foreign server's definition, agentize or de-agentize a server, and 1003a foreign server's definition, agentize or de-agentize a server, and
1005do many other neat things. @xref{Server Buffer}. 1004do many other neat things. @xref{Server Buffer}.
1006@xref{Foreign Groups}. @xref{Agent Basics}. 1005@xref{Foreign Groups}. @xref{Agent Basics}.
1007 1006
1008@vindex gnus-select-method 1007@vindex gnus-select-method
@@ -1011,7 +1010,7 @@ The @code{gnus-select-method} variable says where Gnus should look for
1011news. This variable should be a list where the first element says 1010news. This variable should be a list where the first element says
1012@dfn{how} and the second element says @dfn{where}. This method is your 1011@dfn{how} and the second element says @dfn{where}. This method is your
1013native method. All groups not fetched with this method are 1012native method. All groups not fetched with this method are
1014foreign groups. 1013secondary or foreign groups.
1015 1014
1016For instance, if the @samp{news.somewhere.edu} @acronym{NNTP} server is where 1015For instance, if the @samp{news.somewhere.edu} @acronym{NNTP} server is where
1017you want to get your daily dosage of news from, you'd say: 1016you want to get your daily dosage of news from, you'd say:
@@ -1329,7 +1328,7 @@ variable to @code{nil}.
1329 1328
1330@vindex gnus-auto-subscribed-categories 1329@vindex gnus-auto-subscribed-categories
1331As if that wasn't enough, @code{gnus-auto-subscribed-categories} also 1330As if that wasn't enough, @code{gnus-auto-subscribed-categories} also
1332allows you to specify that new groups should be subcribed based on the 1331allows you to specify that new groups should be subscribed based on the
1333category their select methods belong to. The default is @samp{(mail 1332category their select methods belong to. The default is @samp{(mail
1334post-mail)}, meaning that all new groups from mail-like backends 1333post-mail)}, meaning that all new groups from mail-like backends
1335should be subscribed automatically. 1334should be subscribed automatically.
@@ -2983,7 +2982,7 @@ The available operators are @code{not}, @code{and} and @code{or}.
2983Predicates include @code{tick}, @code{unsend}, @code{undownload}, 2982Predicates include @code{tick}, @code{unsend}, @code{undownload},
2984@code{unread}, @code{dormant}, @code{expire}, @code{reply}, 2983@code{unread}, @code{dormant}, @code{expire}, @code{reply},
2985@code{killed}, @code{bookmark}, @code{score}, @code{save}, 2984@code{killed}, @code{bookmark}, @code{score}, @code{save},
2986@code{cache}, @code{forward}, @code{unseen} and @code{recent}. 2985@code{cache}, @code{forward}, and @code{unseen}.
2987 2986
2988@end table 2987@end table
2989 2988
@@ -3181,15 +3180,20 @@ For example:
3181 (to-group . "\\1")) 3180 (to-group . "\\1"))
3182 3181
3183 ("mail\\.me" 3182 ("mail\\.me"
3184 (gnus-use-scoring t)) 3183 (gnus-use-scoring t))
3185 3184
3186 ("list\\..*" 3185 ("list\\..*"
3187 (total-expire . t) 3186 (total-expire . t)
3188 (broken-reply-to . t)))) 3187 (broken-reply-to . t))))
3189@end lisp 3188@end lisp
3190 3189
3191String value of parameters will be subjected to regexp substitution, as 3190All clauses that matches the group name will be used, but the last
3192the @code{to-group} example shows. 3191setting ``wins''. So if you have two clauses that both match the
3192group name, and both set, say @code{display}, the last setting will
3193override the first.
3194
3195Parameters that are strings will be subjected to regexp substitution,
3196as the @code{to-group} example shows.
3193 3197
3194@vindex gnus-parameters-case-fold-search 3198@vindex gnus-parameters-case-fold-search
3195By default, whether comparing the group name and one of those regexps 3199By default, whether comparing the group name and one of those regexps
@@ -3335,8 +3339,12 @@ List all groups with ticked articles (@code{gnus-group-list-ticked}).
3335@item A / 3339@item A /
3336@kindex A / (Group) 3340@kindex A / (Group)
3337@findex gnus-group-list-limit 3341@findex gnus-group-list-limit
3338List groups limited within the current selection 3342Further limit groups within the current selection
3339(@code{gnus-group-list-limit}). 3343(@code{gnus-group-list-limit}). If you've first limited to groups
3344with dormant articles with @kbd{A ?}, you can then further limit with
3345@kbd{A / c}, which will then limit to groups with cached articles,
3346giving you the groups that have both dormant articles and cached
3347articles.
3340 3348
3341@item A f 3349@item A f
3342@kindex A f (Group) 3350@kindex A f (Group)
@@ -4488,23 +4496,6 @@ news.
4488@table @kbd 4496@table @kbd
4489 4497
4490 4498
4491@item H f
4492@kindex H f (Group)
4493@findex gnus-group-fetch-faq
4494@vindex gnus-group-faq-directory
4495@cindex FAQ
4496@cindex ange-ftp
4497Try to fetch the @acronym{FAQ} for the current group
4498(@code{gnus-group-fetch-faq}). Gnus will try to get the @acronym{FAQ}
4499from @code{gnus-group-faq-directory}, which is usually a directory on
4500a remote machine. This variable can also be a list of directories.
4501In that case, giving a prefix to this command will allow you to choose
4502between the various sites. @code{ange-ftp} (or @code{efs}) will be
4503used for fetching the file.
4504
4505If fetching from the first site is unsuccessful, Gnus will attempt to go
4506through @code{gnus-group-faq-directory} and try to open them one by one.
4507
4508@item H d 4499@item H d
4509@itemx C-c C-d 4500@itemx C-c C-d
4510@c @icon{gnus-group-describe-group} 4501@c @icon{gnus-group-describe-group}
@@ -4636,7 +4627,7 @@ Sieve is a server-side mail filtering language. In Gnus you can use
4636the @code{sieve} group parameter (@pxref{Group Parameters}) to specify 4627the @code{sieve} group parameter (@pxref{Group Parameters}) to specify
4637sieve rules that should apply to each group. Gnus provides two 4628sieve rules that should apply to each group. Gnus provides two
4638commands to translate all these group parameters into a proper Sieve 4629commands to translate all these group parameters into a proper Sieve
4639script that can be transfered to the server somehow. 4630script that can be transferred to the server somehow.
4640 4631
4641@vindex gnus-sieve-file 4632@vindex gnus-sieve-file
4642@vindex gnus-sieve-region-start 4633@vindex gnus-sieve-region-start
@@ -6165,18 +6156,9 @@ religiously) are marked with an @samp{S} in the second column
6165(@code{gnus-saved-mark}). 6156(@code{gnus-saved-mark}).
6166 6157
6167@item 6158@item
6168@vindex gnus-recent-mark
6169Articles that according to the server haven't been shown to the user
6170before are marked with a @samp{N} in the second column
6171(@code{gnus-recent-mark}). Note that not all servers support this
6172mark, in which case it simply never appears. Compare with
6173@code{gnus-unseen-mark}.
6174
6175@item
6176@vindex gnus-unseen-mark 6159@vindex gnus-unseen-mark
6177Articles that haven't been seen before in Gnus by the user are marked 6160Articles that haven't been seen before in Gnus by the user are marked
6178with a @samp{.} in the second column (@code{gnus-unseen-mark}). 6161with a @samp{.} in the second column (@code{gnus-unseen-mark}).
6179Compare with @code{gnus-recent-mark}.
6180 6162
6181@item 6163@item
6182@vindex gnus-downloaded-mark 6164@vindex gnus-downloaded-mark
@@ -7671,7 +7653,7 @@ has its own article buffer.
7671This implies that it's not possible to have more than one article buffer 7653This implies that it's not possible to have more than one article buffer
7672in a group at a time. But sometimes you might want to display all the 7654in a group at a time. But sometimes you might want to display all the
7673latest emails from your mother, your father, your aunt, your uncle and 7655latest emails from your mother, your father, your aunt, your uncle and
7674your 17 cousins to coordinate the next christmas party. 7656your 17 cousins to coordinate the next Christmas party.
7675 7657
7676That's where sticky articles come in handy. A sticky article buffer 7658That's where sticky articles come in handy. A sticky article buffer
7677basically is a normal article buffer, but it won't be reused when you 7659basically is a normal article buffer, but it won't be reused when you
@@ -8355,7 +8337,7 @@ Files with name matching this regular expression won't be viewed.
8355Files with a @acronym{MIME} type matching this variable won't be viewed. 8337Files with a @acronym{MIME} type matching this variable won't be viewed.
8356Note that Gnus tries to guess what type the file is based on the name. 8338Note that Gnus tries to guess what type the file is based on the name.
8357@code{gnus-uu} is not a @acronym{MIME} package (yet), so this is slightly 8339@code{gnus-uu} is not a @acronym{MIME} package (yet), so this is slightly
8358kludgey. 8340kludgy.
8359 8341
8360@item gnus-uu-tmp-dir 8342@item gnus-uu-tmp-dir
8361@vindex gnus-uu-tmp-dir 8343@vindex gnus-uu-tmp-dir
@@ -8998,8 +8980,8 @@ apostrophe or quotation mark, then try this wash.
8998Translate many non-@acronym{ASCII} characters into their 8980Translate many non-@acronym{ASCII} characters into their
8999@acronym{ASCII} equivalents (@code{gnus-article-treat-non-ascii}). 8981@acronym{ASCII} equivalents (@code{gnus-article-treat-non-ascii}).
9000This is mostly useful if you're on a terminal that has a limited font 8982This is mostly useful if you're on a terminal that has a limited font
9001and does't show accented characters, ``advanced'' punctuation, and the 8983and doesn't show accented characters, ``advanced'' punctuation, and the
9002like. For instance, @samp{»} is tranlated into @samp{>>}, and so on. 8984like. For instance, @samp{»} is translated into @samp{>>}, and so on.
9003 8985
9004@item W Y f 8986@item W Y f
9005@kindex W Y f (Summary) 8987@kindex W Y f (Summary)
@@ -11657,7 +11639,7 @@ message/external-body @acronym{MIME} type.
11657@item r (Article) 11639@item r (Article)
11658@kindex r (Article) 11640@kindex r (Article)
11659Prompt for a file name, replace the @acronym{MIME} object with an 11641Prompt for a file name, replace the @acronym{MIME} object with an
11660external body refering to the file via the message/external-body 11642external body referring to the file via the message/external-body
11661@acronym{MIME} type. (@code{gnus-mime-replace-part}). 11643@acronym{MIME} type. (@code{gnus-mime-replace-part}).
11662 11644
11663@findex gnus-mime-delete-part 11645@findex gnus-mime-delete-part
@@ -11811,7 +11793,7 @@ fit these criteria.
11811 11793
11812To use this, make sure that you have @code{w3m} and @code{curl} 11794To use this, make sure that you have @code{w3m} and @code{curl}
11813installed. If you have, then Gnus should display @acronym{HTML} 11795installed. If you have, then Gnus should display @acronym{HTML}
11814automatically. 11796automatically.
11815 11797
11816 11798
11817 11799
@@ -12544,8 +12526,8 @@ mode buffers.
12544Gnus provides a few different methods for storing the mail and news you 12526Gnus provides a few different methods for storing the mail and news you
12545send. The default method is to use the @dfn{archive virtual server} to 12527send. The default method is to use the @dfn{archive virtual server} to
12546store the messages. If you want to disable this completely, the 12528store the messages. If you want to disable this completely, the
12547@code{gnus-message-archive-group} variable should be @code{nil}, which 12529@code{gnus-message-archive-group} variable should be @code{nil}. The
12548is the default. 12530default is "sent.%Y-%m", which gives you one archive group per month.
12549 12531
12550For archiving interesting messages in a group you read, see the 12532For archiving interesting messages in a group you read, see the
12551@kbd{B c} (@code{gnus-summary-copy-article}) command (@pxref{Mail 12533@kbd{B c} (@code{gnus-summary-copy-article}) command (@pxref{Mail
@@ -12622,7 +12604,7 @@ Messages will be saved in all those groups.
12622When a key ``matches'', the result is used. 12604When a key ``matches'', the result is used.
12623 12605
12624@item @code{nil} 12606@item @code{nil}
12625No message archiving will take place. This is the default. 12607No message archiving will take place.
12626@end table 12608@end table
12627 12609
12628Let's illustrate: 12610Let's illustrate:
@@ -12781,8 +12763,8 @@ from date id references chars lines xref extra.
12781In the case of a string value, if the @code{match} is a regular 12763In the case of a string value, if the @code{match} is a regular
12782expression, a @samp{gnus-match-substitute-replacement} is proceed on 12764expression, a @samp{gnus-match-substitute-replacement} is proceed on
12783the value to replace the positional parameters @samp{\@var{n}} by the 12765the value to replace the positional parameters @samp{\@var{n}} by the
12784corresponding parenthetical matches (see @xref{Replacing the Text that 12766corresponding parenthetical matches (see @xref{Replacing Match,,
12785Matched, , Text Replacement, elisp, The Emacs Lisp Reference Manual}.) 12767Replacing the Text that Matched, elisp, The Emacs Lisp Reference Manual}.)
12786 12768
12787@vindex message-reply-headers 12769@vindex message-reply-headers
12788 12770
@@ -13784,7 +13766,7 @@ The same as the above, but don't do automatic @acronym{STARTTLS} upgrades.
13784@findex nntp-open-tls-stream 13766@findex nntp-open-tls-stream
13785@item nntp-open-tls-stream 13767@item nntp-open-tls-stream
13786Opens a connection to a server over a @dfn{secure} channel. To use 13768Opens a connection to a server over a @dfn{secure} channel. To use
13787this you must have @uref{http://www.gnu.org/software/gnutls/, GNUTLS} 13769this you must have @uref{http://www.gnu.org/software/gnutls/, GnuTLS}
13788installed. You then define a server as follows: 13770installed. You then define a server as follows:
13789 13771
13790@lisp 13772@lisp
@@ -14245,8 +14227,9 @@ if the server supports UID EXPUNGE, but it's not done by default on
14245servers that doesn't support that command. 14227servers that doesn't support that command.
14246 14228
14247@item nnimap-streaming 14229@item nnimap-streaming
14248Virtually all @code{IMAP} server support fast streaming of data. If 14230Virtually all @acronym{IMAP} server support fast streaming of data.
14249you have problems connecting to the server, try setting this to @code{nil}. 14231If you have problems connecting to the server, try setting this to
14232@code{nil}.
14250 14233
14251@item nnimap-fetch-partial-articles 14234@item nnimap-fetch-partial-articles
14252If non-@code{nil}, fetch partial articles from the server. If set to 14235If non-@code{nil}, fetch partial articles from the server. If set to
@@ -14254,6 +14237,10 @@ a string, then it's interpreted as a regexp, and parts that have
14254matching types will be fetched. For instance, @samp{"text/"} will 14237matching types will be fetched. For instance, @samp{"text/"} will
14255fetch all textual parts, while leaving the rest on the server. 14238fetch all textual parts, while leaving the rest on the server.
14256 14239
14240@item nnimap-record-commands
14241If non-@code{nil}, record all @acronym{IMAP} commands in the
14242@samp{"*imap log*"} buffer.
14243
14257@end table 14244@end table
14258 14245
14259 14246
@@ -14769,6 +14756,18 @@ corresponding keywords.
14769A script to be run before fetching the mail. The syntax is the same as 14756A script to be run before fetching the mail. The syntax is the same as
14770the @code{:program} keyword. This can also be a function to be run. 14757the @code{:program} keyword. This can also be a function to be run.
14771 14758
14759One popular way to use this is to set up an SSH tunnel to access the
14760@acronym{POP} server. Here's an example:
14761
14762@lisp
14763(pop :server "127.0.0.1"
14764 :port 1234
14765 :user "foo"
14766 :password "secret"
14767 :prescript
14768 "nohup ssh -f -L 1234:pop.server:110 remote.host sleep 3600 &")
14769@end lisp
14770
14772@item :postscript 14771@item :postscript
14773A script to be run after fetching the mail. The syntax is the same as 14772A script to be run after fetching the mail. The syntax is the same as
14774the @code{:program} keyword. This can also be a function to be run. 14773the @code{:program} keyword. This can also be a function to be run.
@@ -15056,7 +15055,7 @@ number.
15056 15055
15057@item mail-source-default-file-modes 15056@item mail-source-default-file-modes
15058@vindex mail-source-default-file-modes 15057@vindex mail-source-default-file-modes
15059All new mail files will get this file mode. The default is 384. 15058All new mail files will get this file mode. The default is @code{#o600}.
15060 15059
15061@item mail-source-movemail-program 15060@item mail-source-movemail-program
15062@vindex mail-source-movemail-program 15061@vindex mail-source-movemail-program
@@ -15146,10 +15145,10 @@ default file modes the new mail files get:
15146 15145
15147@lisp 15146@lisp
15148(add-hook 'nnmail-pre-get-new-mail-hook 15147(add-hook 'nnmail-pre-get-new-mail-hook
15149 (lambda () (set-default-file-modes 511))) 15148 (lambda () (set-default-file-modes #o700)))
15150 15149
15151(add-hook 'nnmail-post-get-new-mail-hook 15150(add-hook 'nnmail-post-get-new-mail-hook
15152 (lambda () (set-default-file-modes 551))) 15151 (lambda () (set-default-file-modes #o775)))
15153@end lisp 15152@end lisp
15154 15153
15155@item nnmail-use-long-file-names 15154@item nnmail-use-long-file-names
@@ -16697,7 +16696,7 @@ was used for mail landing on the system, but Babyl had its own internal
16697format to which mail was converted, primarily involving creating a 16696format to which mail was converted, primarily involving creating a
16698spool-file-like entity with a scheme for inserting Babyl-specific 16697spool-file-like entity with a scheme for inserting Babyl-specific
16699headers and status bits above the top of each message in the file. 16698headers and status bits above the top of each message in the file.
16700Rmail was Emacs' first mail reader, it was written by Richard Stallman, 16699Rmail was Emacs's first mail reader, it was written by Richard Stallman,
16701and Stallman came out of that TOPS/Babyl environment, so he wrote Rmail 16700and Stallman came out of that TOPS/Babyl environment, so he wrote Rmail
16702to understand the mail files folks already had in existence. Gnus (and 16701to understand the mail files folks already had in existence. Gnus (and
16703VM, for that matter) continue to support this format because it's 16702VM, for that matter) continue to support this format because it's
@@ -18007,7 +18006,7 @@ see the event's date.
18007 @code{gnus-diary} provides two supplemental user formats to be used in 18006 @code{gnus-diary} provides two supplemental user formats to be used in
18008summary line formats. @code{D} corresponds to a formatted time string 18007summary line formats. @code{D} corresponds to a formatted time string
18009for the next occurrence of the event (e.g. ``Sat, Sep 22 01, 12:00''), 18008for the next occurrence of the event (e.g. ``Sat, Sep 22 01, 12:00''),
18010while @code{d} corresponds to an approximative remaining time until the 18009while @code{d} corresponds to an approximate remaining time until the
18011next occurrence of the event (e.g. ``in 6 months, 1 week''). 18010next occurrence of the event (e.g. ``in 6 months, 1 week'').
18012 18011
18013 For example, here's how Joe's birthday is displayed in my 18012 For example, here's how Joe's birthday is displayed in my
@@ -18111,7 +18110,7 @@ mail sending with @code{nndiary}:
18111@itemize @bullet 18110@itemize @bullet
18112@item 18111@item
18113@code{nndiary} is a @emph{real} mail back end. You really send real diary 18112@code{nndiary} is a @emph{real} mail back end. You really send real diary
18114messsages for real. This means for instance that you can give 18113messages for real. This means for instance that you can give
18115appointments to anybody (provided they use Gnus and @code{nndiary}) by 18114appointments to anybody (provided they use Gnus and @code{nndiary}) by
18116sending the diary message to them as well. 18115sending the diary message to them as well.
18117@item 18116@item
@@ -18254,8 +18253,7 @@ Agent. Go to the server buffer (@kbd{^} in the group buffer) and press
18254@kbd{J a} on the server (or servers) that you wish to have covered by the 18253@kbd{J a} on the server (or servers) that you wish to have covered by the
18255Agent (@pxref{Server Agent Commands}), or @kbd{J r} on automatically 18254Agent (@pxref{Server Agent Commands}), or @kbd{J r} on automatically
18256added servers you do not wish to have covered by the Agent. By default, 18255added servers you do not wish to have covered by the Agent. By default,
18257all @code{nntp} and @code{nnimap} servers in @code{gnus-select-method} and 18256no servers are agentized.
18258@code{gnus-secondary-select-methods} are agentized.
18259 18257
18260@item 18258@item
18261Decide on download policy. It's fairly simple once you decide whether 18259Decide on download policy. It's fairly simple once you decide whether
@@ -19281,7 +19279,7 @@ to agentize remote back ends. The auto-agentizing has the same effect
19281as running @kbd{J a} on the servers (@pxref{Server Agent Commands}). 19279as running @kbd{J a} on the servers (@pxref{Server Agent Commands}).
19282If the file exist, you must manage the servers manually by adding or 19280If the file exist, you must manage the servers manually by adding or
19283removing them, this variable is only applicable the first time you 19281removing them, this variable is only applicable the first time you
19284start Gnus. The default is @samp{(nntp nnimap)}. 19282start Gnus. The default is @samp{nil}.
19285 19283
19286@end table 19284@end table
19287 19285
@@ -20066,7 +20064,7 @@ matches will use the @code{Message-ID}s of these matching articles.)
20066This will ensure that you can raise/lower the score of an entire thread, 20064This will ensure that you can raise/lower the score of an entire thread,
20067even though some articles in the thread may not have complete 20065even though some articles in the thread may not have complete
20068@code{References} headers. Note that using this may lead to 20066@code{References} headers. Note that using this may lead to
20069undeterministic scores of the articles in the thread. (Using this match 20067nondeterministic scores of the articles in the thread. (Using this match
20070key will lead to creation of @file{ADAPT} files.) 20068key will lead to creation of @file{ADAPT} files.)
20071@end table 20069@end table
20072@end enumerate 20070@end enumerate
@@ -21042,7 +21040,7 @@ and `gnus-score-decay-scale'."
21042 (* (abs score) 21040 (* (abs score)
21043 gnus-score-decay-scale))))))) 21041 gnus-score-decay-scale)))))))
21044 (if (and (featurep 'xemacs) 21042 (if (and (featurep 'xemacs)
21045 ;; XEmacs' floor can handle only the floating point 21043 ;; XEmacs's floor can handle only the floating point
21046 ;; number below the half of the maximum integer. 21044 ;; number below the half of the maximum integer.
21047 (> (abs n) (lsh -1 -2))) 21045 (> (abs n) (lsh -1 -2)))
21048 (string-to-number 21046 (string-to-number
@@ -21084,8 +21082,8 @@ as well.
21084 21082
21085This chapter describes tools for searching groups and servers for 21083This chapter describes tools for searching groups and servers for
21086articles matching a query and then retrieving those articles. Gnus 21084articles matching a query and then retrieving those articles. Gnus
21087provides a simpler mechanism for searching through articles in a summary buffer 21085provides a simpler mechanism for searching through articles in a summary buffer
21088to find those matching a pattern. @xref{Searching for Articles}. 21086to find those matching a pattern. @xref{Searching for Articles}.
21089 21087
21090@menu 21088@menu
21091* nnir:: Searching with various engines. 21089* nnir:: Searching with various engines.
@@ -21116,7 +21114,7 @@ interface.
21116 21114
21117The @code{nnimap} and @code{gmane} search engines should work with no 21115The @code{nnimap} and @code{gmane} search engines should work with no
21118configuration. Other engines require a local index that needs to be 21116configuration. Other engines require a local index that needs to be
21119created and maintained outside of Gnus. 21117created and maintained outside of Gnus.
21120 21118
21121 21119
21122@node Basic Usage 21120@node Basic Usage
@@ -21156,7 +21154,7 @@ One more thing: individual search engines may have special search
21156features. You can access these special features by giving a prefix-arg 21154features. You can access these special features by giving a prefix-arg
21157to @code{gnus-group-make-nnir-group}. If you are searching multiple 21155to @code{gnus-group-make-nnir-group}. If you are searching multiple
21158groups with different search engines you will be prompted for the 21156groups with different search engines you will be prompted for the
21159special search features for each engine separately. 21157special search features for each engine separately.
21160 21158
21161 21159
21162@node Setting up nnir 21160@node Setting up nnir
@@ -21197,7 +21195,7 @@ named @code{home} you can use
21197 21195
21198@lisp 21196@lisp
21199(setq gnus-secondary-select-methods 21197(setq gnus-secondary-select-methods
21200 '((nnml "home" 21198 '((nnml "home"
21201 (nnimap-address "localhost") 21199 (nnimap-address "localhost")
21202 (nnir-search-engine namazu)))) 21200 (nnir-search-engine namazu))))
21203@end lisp 21201@end lisp
@@ -21222,9 +21220,9 @@ could change this to
21222@node The imap Engine 21220@node The imap Engine
21223@subsubsection The imap Engine 21221@subsubsection The imap Engine
21224 21222
21225The @code{imap} engine requires no configuration. 21223The @code{imap} engine requires no configuration.
21226 21224
21227Queries using the @code{imap} engine follow a simple query language. 21225Queries using the @code{imap} engine follow a simple query language.
21228The search is always case-insensitive and supports the following 21226The search is always case-insensitive and supports the following
21229features (inspired by the Google search input language): 21227features (inspired by the Google search input language):
21230 21228
@@ -21234,10 +21232,10 @@ features (inspired by the Google search input language):
21234AND, OR, and NOT are supported, and parentheses can be used to control 21232AND, OR, and NOT are supported, and parentheses can be used to control
21235operator precedence, e.g. (emacs OR xemacs) AND linux. Note that 21233operator precedence, e.g. (emacs OR xemacs) AND linux. Note that
21236operators must be written with all capital letters to be 21234operators must be written with all capital letters to be
21237recognised. Also preceding a term with a - sign is equivalent to NOT 21235recognized. Also preceding a term with a - sign is equivalent to NOT
21238term. 21236term.
21239 21237
21240@item Automatic AND queries 21238@item Automatic AND queries
21241If you specify multiple words then they will be treated as an AND 21239If you specify multiple words then they will be treated as an AND
21242expression intended to match all components. 21240expression intended to match all components.
21243 21241
@@ -21270,7 +21268,7 @@ customize @code{nnir-imap-default-search-key}. For example to use
21270@node The gmane Engine 21268@node The gmane Engine
21271@subsubsection The gmane Engine 21269@subsubsection The gmane Engine
21272 21270
21273The @code{gmane} engine requires no configuration. 21271The @code{gmane} engine requires no configuration.
21274 21272
21275Gmane queries follow a simple query language: 21273Gmane queries follow a simple query language:
21276 21274
@@ -21279,16 +21277,16 @@ Gmane queries follow a simple query language:
21279AND, OR, NOT (or AND NOT), and XOR are supported, and brackets can be 21277AND, OR, NOT (or AND NOT), and XOR are supported, and brackets can be
21280used to control operator precedence, e.g. (emacs OR xemacs) AND linux. 21278used to control operator precedence, e.g. (emacs OR xemacs) AND linux.
21281Note that operators must be written with all capital letters to be 21279Note that operators must be written with all capital letters to be
21282recognised. 21280recognized.
21283 21281
21284@item Required and excluded terms 21282@item Required and excluded terms
21285+ and - can be used to require or exclude terms, e.g. football -american 21283+ and - can be used to require or exclude terms, e.g. football -american
21286 21284
21287@item Unicode handling 21285@item Unicode handling
21288The search engine converts all text to utf-8, so searching should work 21286The search engine converts all text to utf-8, so searching should work
21289in any language. 21287in any language.
21290 21288
21291@item Stopwords 21289@item Stopwords
21292Common English words (like 'the' and 'a') are ignored by default. You 21290Common English words (like 'the' and 'a') are ignored by default. You
21293can override this by prefixing such words with a + (e.g. +the) or 21291can override this by prefixing such words with a + (e.g. +the) or
21294enclosing the word in quotes (e.g. "the"). 21292enclosing the word in quotes (e.g. "the").
@@ -21302,7 +21300,7 @@ name (or part of a name) to match.
21302@node The swish++ Engine 21300@node The swish++ Engine
21303@subsubsection The swish++ Engine 21301@subsubsection The swish++ Engine
21304 21302
21305FIXEM: Say something more here. 21303FIXME: Say something more here.
21306 21304
21307Documentation for swish++ may be found at the swish++ sourceforge page: 21305Documentation for swish++ may be found at the swish++ sourceforge page:
21308@uref{http://swishplusplus.sourceforge.net} 21306@uref{http://swishplusplus.sourceforge.net}
@@ -21325,7 +21323,7 @@ to get a group name. By default this is @code{$HOME/Mail}.
21325@node The swish-e Engine 21323@node The swish-e Engine
21326@subsubsection The swish-e Engine 21324@subsubsection The swish-e Engine
21327 21325
21328FIXEM: Say something more here. 21326FIXME: Say something more here.
21329 21327
21330Documentation for swish-e may be found at the swish-e homepage 21328Documentation for swish-e may be found at the swish-e homepage
21331@uref{http://swish-e.org} 21329@uref{http://swish-e.org}
@@ -21351,7 +21349,7 @@ to get a group name. By default this is @code{$HOME/Mail}.
21351Using the namazu engine requires creating and maintaining index files. 21349Using the namazu engine requires creating and maintaining index files.
21352One directory should contain all the index files, and nnir must be told 21350One directory should contain all the index files, and nnir must be told
21353where to find them by setting the @code{nnir-namazu-index-directory} 21351where to find them by setting the @code{nnir-namazu-index-directory}
21354variable. 21352variable.
21355 21353
21356To work correctly the @code{nnir-namazu-remove-prefix} variable must 21354To work correctly the @code{nnir-namazu-remove-prefix} variable must
21357also be correct. This is the prefix to remove from each file name 21355also be correct. This is the prefix to remove from each file name
@@ -21414,7 +21412,7 @@ this command periodically, say every four hours.
21414This engine is obsolete. 21412This engine is obsolete.
21415 21413
21416@node Customizations 21414@node Customizations
21417@subsubsection Custimozations 21415@subsubsection Customizations
21418 21416
21419@table @code 21417@table @code
21420 21418
@@ -21918,7 +21916,7 @@ Clearly, the easiest way would be if marks could somehow be
21918automatically set for the original article. This is exactly what 21916automatically set for the original article. This is exactly what
21919@emph{marks propagation} is about. 21917@emph{marks propagation} is about.
21920 21918
21921Marks propagation is deactivated by default. You can activate it for a 21919Marks propagation is inactive by default. You can activate it for a
21922certain @code{nnmairix} group with 21920certain @code{nnmairix} group with
21923@code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b 21921@code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b
21924p}). This function will warn you if you try to use it with your default 21922p}). This function will warn you if you try to use it with your default
@@ -22070,7 +22068,7 @@ an example server definition:
22070(nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil)) 22068(nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil))
22071@end lisp 22069@end lisp
22072 22070
22073(The @code{nnmaildir} back end also has a server variabe 22071(The @code{nnmaildir} back end also has a server variable
22074@code{get-new-mail}, but its default value is @code{nil}, so you don't 22072@code{get-new-mail}, but its default value is @code{nil}, so you don't
22075have to explicitly set it if you use a @code{nnmaildir} server just for 22073have to explicitly set it if you use a @code{nnmaildir} server just for
22076mairix.) 22074mairix.)
@@ -22265,8 +22263,9 @@ is @code{t} by default.
22265 22263
22266@item gnus-interactive-exit 22264@item gnus-interactive-exit
22267@vindex gnus-interactive-exit 22265@vindex gnus-interactive-exit
22268Require confirmation before exiting Gnus. This variable is @code{t} by 22266If non-@code{nil}, require a confirmation when exiting Gnus. If
22269default. 22267@code{quiet}, update any active summary buffers automatically without
22268querying. The default value is @code{t}.
22270@end table 22269@end table
22271 22270
22272 22271
@@ -25476,7 +25475,7 @@ Write @code{spam-check-blackbox} if Blackbox can check incoming mail.
25476 25475
25477Write @code{spam-blackbox-register-routine} and 25476Write @code{spam-blackbox-register-routine} and
25478@code{spam-blackbox-unregister-routine} using the bogofilter 25477@code{spam-blackbox-unregister-routine} using the bogofilter
25479register/unregister routines as a start, or other restister/unregister 25478register/unregister routines as a start, or other register/unregister
25480routines more appropriate to Blackbox, if Blackbox can 25479routines more appropriate to Blackbox, if Blackbox can
25481register/unregister spam and ham. 25480register/unregister spam and ham.
25482 25481
@@ -26386,7 +26385,6 @@ renamed it back again to ``Gnus''. But in mixed case. ``Gnus'' vs.
26386 26385
26387@menu 26386@menu
26388* Gnus Versions:: What Gnus versions have been released. 26387* Gnus Versions:: What Gnus versions have been released.
26389* Other Gnus Versions:: Other Gnus versions that also have been released.
26390* Why?:: What's the point of Gnus? 26388* Why?:: What's the point of Gnus?
26391* Compatibility:: Just how compatible is Gnus with @sc{gnus}? 26389* Compatibility:: Just how compatible is Gnus with @sc{gnus}?
26392* Conformity:: Gnus tries to conform to all standards. 26390* Conformity:: Gnus tries to conform to all standards.
@@ -26442,22 +26440,6 @@ you do, don't run. Walk away, calmly, until you're out of its reach.
26442Find a proper released version of Gnus and snuggle up to that instead. 26440Find a proper released version of Gnus and snuggle up to that instead.
26443 26441
26444 26442
26445@node Other Gnus Versions
26446@subsection Other Gnus Versions
26447@cindex Semi-gnus
26448
26449In addition to the versions of Gnus which have had their releases
26450coordinated by Lars, one major development has been Semi-gnus from
26451Japan. It's based on a library called @acronym{SEMI}, which provides
26452@acronym{MIME} capabilities.
26453
26454These Gnusae are based mainly on Gnus 5.6 and Pterodactyl Gnus.
26455Collectively, they are called ``Semi-gnus'', and different strains are
26456called T-gnus, ET-gnus, Nana-gnus and Chaos. These provide powerful
26457@acronym{MIME} and multilingualization things, especially important for
26458Japanese users.
26459
26460
26461@node Why? 26443@node Why?
26462@subsection Why? 26444@subsection Why?
26463 26445
@@ -26778,7 +26760,7 @@ Sudish Joseph---innumerable bug fixes.
26778Ilja Weis---@file{gnus-topic.el}. 26760Ilja Weis---@file{gnus-topic.el}.
26779 26761
26780@item 26762@item
26781Steven L. Baur---lots and lots and lots of bugs detections and fixes. 26763Steven L. Baur---lots and lots and lots of bug detection and fixes.
26782 26764
26783@item 26765@item
26784Vladimir Alexiev---the refcard and reference booklets. 26766Vladimir Alexiev---the refcard and reference booklets.
@@ -27447,7 +27429,7 @@ considered home score and adapt files (@pxref{Home Score File}) have
27447been added. 27429been added.
27448 27430
27449@item 27431@item
27450@code{nndoc} was rewritten to be easily extendable (@pxref{Document 27432@code{nndoc} was rewritten to be easily extensible (@pxref{Document
27451Server Internals}). 27433Server Internals}).
27452 27434
27453@item 27435@item
@@ -27840,7 +27822,7 @@ The revised Gnus @acronym{FAQ} is included in the manual,
27840@acronym{TLS} wrapper shipped with Gnus 27822@acronym{TLS} wrapper shipped with Gnus
27841 27823
27842@acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and 27824@acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and
27843@acronym{NNTP} via @file{tls.el} and GNUTLS. 27825@acronym{NNTP} via @file{tls.el} and GnuTLS.
27844 27826
27845@item 27827@item
27846Improved anti-spam features. 27828Improved anti-spam features.
@@ -27993,10 +27975,6 @@ non-@code{nil}, the summary buffer is shown and updated as it's being
27993built. 27975built.
27994 27976
27995@item 27977@item
27996The new @code{recent} mark @samp{.} indicates newly arrived messages (as
27997opposed to old but unread messages).
27998
27999@item
28000Gnus supports RFC 2369 mailing list headers, and adds a number of 27978Gnus supports RFC 2369 mailing list headers, and adds a number of
28001related commands in mailing list groups. @xref{Mailing List}. 27979related commands in mailing list groups. @xref{Mailing List}.
28002 27980
@@ -28584,18 +28562,21 @@ confusing.
28584@item native 28562@item native
28585@cindex native 28563@cindex native
28586Gnus will always use one method (and back end) as the @dfn{native}, or 28564Gnus will always use one method (and back end) as the @dfn{native}, or
28587default, way of getting news. 28565default, way of getting news. Groups from the native select method
28566have names like @samp{gnu.emacs.gnus}.
28588 28567
28589@item foreign 28568@item foreign
28590@cindex foreign 28569@cindex foreign
28591You can also have any number of foreign groups active at the same time. 28570You can also have any number of foreign groups active at the same
28592These are groups that use non-native non-secondary back ends for getting 28571time. These are groups that use non-native non-secondary back ends
28593news. 28572for getting news. Foreign groups have names like
28573@samp{nntp+news.gmane.org:gmane.emacs.gnus.devel}.
28594 28574
28595@item secondary 28575@item secondary
28596@cindex secondary 28576@cindex secondary
28597Secondary back ends are somewhere half-way between being native and being 28577Secondary back ends are somewhere half-way between being native and
28598foreign, but they mostly act like they are native. 28578being foreign, but they mostly act like they are native, but they, too
28579have names like @samp{nntp+news.gmane.org:gmane.emacs.gnus.devel}.
28599 28580
28600@item article 28581@item article
28601@cindex article 28582@cindex article
@@ -29098,7 +29079,7 @@ Takes an unprefixed group name and a select method, and returns the full
29098 29079
29099@item gnus-get-info 29080@item gnus-get-info
29100@findex gnus-get-info 29081@findex gnus-get-info
29101Returns the group info list for @var{group}. 29082Returns the group info list for @var{group} (@pxref{Group Info}).
29102 29083
29103@item gnus-group-unread 29084@item gnus-group-unread
29104@findex gnus-group-unread 29085@findex gnus-group-unread
@@ -29107,7 +29088,8 @@ unknown.
29107 29088
29108@item gnus-active 29089@item gnus-active
29109@findex gnus-active 29090@findex gnus-active
29110The active entry for @var{group}. 29091The active entry (i.e., a cons cell containing the lowest and highest
29092article numbers) for @var{group}.
29111 29093
29112@item gnus-set-active 29094@item gnus-set-active
29113@findex gnus-set-active 29095@findex gnus-set-active
@@ -29142,7 +29124,9 @@ Returns the select method corresponding to @var{server}.
29142 29124
29143@item gnus-server-equal 29125@item gnus-server-equal
29144@findex gnus-server-equal 29126@findex gnus-server-equal
29145Says whether two virtual servers are equal. 29127Says whether two virtual servers are essentially equal. For instance,
29128two virtual servers may have server parameters in different order, but
29129this function will consider them equal.
29146 29130
29147@item gnus-group-native-p 29131@item gnus-group-native-p
29148@findex gnus-group-native-p 29132@findex gnus-group-native-p
@@ -29158,8 +29142,9 @@ Says whether @var{group} is foreign or not.
29158 29142
29159@item gnus-group-find-parameter 29143@item gnus-group-find-parameter
29160@findex gnus-group-find-parameter 29144@findex gnus-group-find-parameter
29161Returns the parameter list of @var{group}. If given a second parameter, 29145Returns the parameter list of @var{group} (@pxref{Group Parameters}).
29162returns the value of that parameter for @var{group}. 29146If given a second parameter, returns the value of that parameter for
29147@var{group}.
29163 29148
29164@item gnus-group-set-parameter 29149@item gnus-group-set-parameter
29165@findex gnus-group-set-parameter 29150@findex gnus-group-set-parameter
@@ -29572,9 +29557,9 @@ propagate the mark information to the server.
29572marks (preserving all marks not mentioned). @var{mark} is a list of 29557marks (preserving all marks not mentioned). @var{mark} is a list of
29573marks; where each mark is a symbol. Currently used marks are 29558marks; where each mark is a symbol. Currently used marks are
29574@code{read}, @code{tick}, @code{reply}, @code{expire}, @code{killed}, 29559@code{read}, @code{tick}, @code{reply}, @code{expire}, @code{killed},
29575@code{dormant}, @code{save}, @code{download}, @code{unsend}, 29560@code{dormant}, @code{save}, @code{download}, @code{unsend}, and
29576@code{forward} and @code{recent}, but your back end should, if 29561@code{forward}, but your back end should, if possible, not limit
29577possible, not limit itself to these. 29562itself to these.
29578 29563
29579Given contradictory actions, the last action in the list should be the 29564Given contradictory actions, the last action in the list should be the
29580effective one. That is, if your action contains a request to add the 29565effective one. That is, if your action contains a request to add the
@@ -30048,8 +30033,8 @@ this:
30048@node Score File Syntax 30033@node Score File Syntax
30049@subsection Score File Syntax 30034@subsection Score File Syntax
30050 30035
30051Score files are meant to be easily parseable, but yet extremely 30036Score files are meant to be easily parsable, but yet extremely
30052mallable. It was decided that something that had the same read syntax 30037malleable. It was decided that something that had the same read syntax
30053as an Emacs Lisp list would fit that spec. 30038as an Emacs Lisp list would fit that spec.
30054 30039
30055Here's a typical score file: 30040Here's a typical score file:
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi
index 8e172301915..736c6ce7f91 100644
--- a/doc/misc/idlwave.texi
+++ b/doc/misc/idlwave.texi
@@ -22,7 +22,7 @@ Emacs, and interacting with an IDL shell run as a subprocess.
22This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE 22This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE
23@value{VERSION}. 23@value{VERSION}.
24 24
25Copyright @copyright{} 1999-2011 Free Software Foundation, Inc. 25Copyright @copyright{} 1999-2012 Free Software Foundation, Inc.
26 26
27@quotation 27@quotation
28Permission is granted to copy, distribute and/or modify this document 28Permission is granted to copy, distribute and/or modify this document
@@ -62,7 +62,7 @@ developing GNU and promoting software freedom.''
62IDLWAVE is a package which supports editing source code written in the 62IDLWAVE is a package which supports editing source code written in the
63Interactive Data Language (IDL), and running IDL as an inferior shell. 63Interactive Data Language (IDL), and running IDL as an inferior shell.
64 64
65@insertcopying 65@insertcopying
66@end ifnottex 66@end ifnottex
67 67
68@menu 68@menu
@@ -72,8 +72,8 @@ Interactive Data Language (IDL), and running IDL as an inferior shell.
72* The IDLWAVE Major Mode:: The mode for editing IDL programs 72* The IDLWAVE Major Mode:: The mode for editing IDL programs
73* The IDLWAVE Shell:: The mode for running IDL as an inferior program 73* The IDLWAVE Shell:: The mode for running IDL as an inferior program
74* Acknowledgements:: Who did what 74* Acknowledgements:: Who did what
75* Sources of Routine Info:: How does IDLWAVE know about routine XYZ 75* Sources of Routine Info:: How does IDLWAVE know about routine XYZ
76* HTML Help Browser Tips:: 76* HTML Help Browser Tips::
77* Configuration Examples:: The user is king 77* Configuration Examples:: The user is king
78* Windows and MacOS:: What still works, and how 78* Windows and MacOS:: What still works, and how
79* Troubleshooting:: When good computers turn bad 79* Troubleshooting:: When good computers turn bad
@@ -85,9 +85,9 @@ Interactive Data Language (IDL), and running IDL as an inferior shell.
85 85
86Getting Started (Tutorial) 86Getting Started (Tutorial)
87 87
88* Lesson I -- Development Cycle:: 88* Lesson I -- Development Cycle::
89* Lesson II -- Customization:: 89* Lesson II -- Customization::
90* Lesson III -- User Catalog:: 90* Lesson III -- User Catalog::
91 91
92The IDLWAVE Major Mode 92The IDLWAVE Major Mode
93 93
@@ -107,7 +107,7 @@ The IDLWAVE Major Mode
107Code Formatting 107Code Formatting
108 108
109* Code Indentation:: Reflecting the logical structure 109* Code Indentation:: Reflecting the logical structure
110* Continued Statement Indentation:: 110* Continued Statement Indentation::
111* Comment Indentation:: Special indentation for comment lines 111* Comment Indentation:: Special indentation for comment lines
112* Continuation Lines:: Splitting statements over lines 112* Continuation Lines:: Splitting statements over lines
113* Syntax Highlighting:: Font-lock support 113* Syntax Highlighting:: Font-lock support
@@ -115,14 +115,14 @@ Code Formatting
115 115
116Online Help 116Online Help
117 117
118* Help with HTML Documentation:: 118* Help with HTML Documentation::
119* Help with Source:: 119* Help with Source::
120 120
121Completion 121Completion
122 122
123* Case of Completed Words:: CaseOFcomPletedWords 123* Case of Completed Words:: CaseOFcomPletedWords
124* Object Method Completion and Class Ambiguity:: obj->Method, what? 124* Object Method Completion and Class Ambiguity:: obj->Method, what?
125* Object Method Completion in the Shell:: 125* Object Method Completion in the Shell::
126* Class and Keyword Inheritance:: obj->Method, _EXTRA=e 126* Class and Keyword Inheritance:: obj->Method, _EXTRA=e
127* Structure Tag Completion:: Completing state.Tag 127* Structure Tag Completion:: Completing state.Tag
128 128
@@ -136,32 +136,32 @@ The IDLWAVE Shell
136 136
137* Starting the Shell:: How to launch IDL as a subprocess 137* Starting the Shell:: How to launch IDL as a subprocess
138* Using the Shell:: Interactively working with the Shell 138* Using the Shell:: Interactively working with the Shell
139* Commands Sent to the Shell:: 139* Commands Sent to the Shell::
140* Debugging IDL Programs:: 140* Debugging IDL Programs::
141* Examining Variables:: 141* Examining Variables::
142* Custom Expression Examination:: 142* Custom Expression Examination::
143 143
144Debugging IDL Programs 144Debugging IDL Programs
145 145
146* A Tale of Two Modes:: 146* A Tale of Two Modes::
147* Debug Key Bindings:: 147* Debug Key Bindings::
148* Breakpoints and Stepping:: 148* Breakpoints and Stepping::
149* Compiling Programs:: 149* Compiling Programs::
150* Walking the Calling Stack:: 150* Walking the Calling Stack::
151* Electric Debug Mode:: 151* Electric Debug Mode::
152 152
153Sources of Routine Info 153Sources of Routine Info
154 154
155* Routine Definitions:: Where IDL Routines are defined. 155* Routine Definitions:: Where IDL Routines are defined.
156* Routine Information Sources:: So how does IDLWAVE know about... 156* Routine Information Sources:: So how does IDLWAVE know about...
157* Catalogs:: 157* Catalogs::
158* Load-Path Shadows:: Routines defined in several places 158* Load-Path Shadows:: Routines defined in several places
159* Documentation Scan:: Scanning the IDL Manuals 159* Documentation Scan:: Scanning the IDL Manuals
160 160
161Catalogs 161Catalogs
162 162
163* Library Catalogs:: 163* Library Catalogs::
164* User Catalog:: 164* User Catalog::
165 165
166@end detailmenu 166@end detailmenu
167@end menu 167@end menu
@@ -193,13 +193,13 @@ form a complete development environment. Here is a brief summary of
193what IDLWAVE does: 193what IDLWAVE does:
194 194
195@itemize @bullet 195@itemize @bullet
196@item 196@item
197Smart code indentation and automatic-formatting. 197Smart code indentation and automatic-formatting.
198@item 198@item
199Three level syntax highlighting support. 199Three level syntax highlighting support.
200@item 200@item
201Context-sensitive display of calling sequences and keywords for more 201Context-sensitive display of calling sequences and keywords for more
202than 1000 native IDL routines, extendible to any additional number of 202than 1000 native IDL routines, extensible to any additional number of
203local routines, and already available with many pre-scanned libraries. 203local routines, and already available with many pre-scanned libraries.
204@item 204@item
205Fast, context-sensitive online HTML help, or source-header help for 205Fast, context-sensitive online HTML help, or source-header help for
@@ -373,9 +373,9 @@ at point.
373@cindex Getting Started 373@cindex Getting Started
374 374
375@menu 375@menu
376* Lesson I -- Development Cycle:: 376* Lesson I -- Development Cycle::
377* Lesson II -- Customization:: 377* Lesson II -- Customization::
378* Lesson III -- User Catalog:: 378* Lesson III -- User Catalog::
379@end menu 379@end menu
380 380
381@node Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started 381@node Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started
@@ -418,13 +418,13 @@ function daynr,d,m,y
418 y1 = y * delta 418 y1 = y * delta
419 return, d + floor(m1*30.6)+floor(y1*365.25)+5 419 return, d + floor(m1*30.6)+floor(y1*365.25)+5
420end 420end
421 421
422function weekday,day,month,year 422function weekday,day,month,year
423 ;; compute weekday number for date 423 ;; compute weekday number for date
424 nr = daynr(day,month,year) 424 nr = daynr(day,month,year)
425 return, nr mod 7 425 return, nr mod 7
426end 426end
427 427
428pro plot_wday,day,month 428pro plot_wday,day,month
429 ;; Plot the weekday of a date in the first 10 years of this century. 429 ;; Plot the weekday of a date in the first 10 years of this century.
430 years = 2000,+indgen(10) 430 years = 2000,+indgen(10)
@@ -669,7 +669,7 @@ We have already used the routine info display in the first part of this
669tutorial. This was the invoked using @kbd{C-c ?}, and displays 669tutorial. This was the invoked using @kbd{C-c ?}, and displays
670information about the IDL routine near the cursor position. Wouldn't it 670information about the IDL routine near the cursor position. Wouldn't it
671be nice to have the same kind of information available for your own 671be nice to have the same kind of information available for your own
672routines and for the huge amount of code in major libraries like JHUPL 672routines and for the huge amount of code in major libraries like JHUAPL
673or the IDL-Astro library? In many cases, you may already have this 673or the IDL-Astro library? In many cases, you may already have this
674information. Files named @file{.idlwave_catalog} in library directories 674information. Files named @file{.idlwave_catalog} in library directories
675contain scanned information on the routines in that directory; many 675contain scanned information on the routines in that directory; many
@@ -753,7 +753,7 @@ them.
753 753
754@menu 754@menu
755* Code Indentation:: Reflecting the logical structure 755* Code Indentation:: Reflecting the logical structure
756* Continued Statement Indentation:: 756* Continued Statement Indentation::
757* Comment Indentation:: Special indentation for comment lines 757* Comment Indentation:: Special indentation for comment lines
758* Continuation Lines:: Splitting statements over lines 758* Continuation Lines:: Splitting statements over lines
759* Syntax Highlighting:: Font-lock support 759* Syntax Highlighting:: Font-lock support
@@ -797,7 +797,7 @@ subprogram). The command @kbd{C-M-q} reindents the entire current
797routine. @xref{Actions}, for information how to impose additional 797routine. @xref{Actions}, for information how to impose additional
798formatting conventions on foreign code. 798formatting conventions on foreign code.
799 799
800@defopt idlwave-main-block-indent (@code{2}) 800@defopt idlwave-main-block-indent (@code{2})
801Extra indentation for the main block of code. That is the block between 801Extra indentation for the main block of code. That is the block between
802the FUNCTION/PRO statement and the END statement for that program 802the FUNCTION/PRO statement and the END statement for that program
803unit. 803unit.
@@ -998,7 +998,7 @@ in the first line of a comment paragraph.
998 998
999@defopt idlwave-use-last-hang-indent (@code{nil}) 999@defopt idlwave-use-last-hang-indent (@code{nil})
1000Non-@code{nil} means use last match on line for 1000Non-@code{nil} means use last match on line for
1001@code{idlwave-indent-regexp}. 1001@code{idlwave-indent-regexp}.
1002@end defopt 1002@end defopt
1003 1003
1004@node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting 1004@node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting
@@ -1026,7 +1026,7 @@ for highlighting using the variable
1026 1026
1027@defopt idlwave-default-font-lock-items 1027@defopt idlwave-default-font-lock-items
1028Items which should be fontified on the default fontification level 1028Items which should be fontified on the default fontification level
10292. 10292.
1030@end defopt 1030@end defopt
1031 1031
1032@node Octals and Highlighting, , Syntax Highlighting, Code Formatting 1032@node Octals and Highlighting, , Syntax Highlighting, Code Formatting
@@ -1104,7 +1104,7 @@ plot,x,alog(x+5*sin(x) + 2),
1104On positions 1,2 and 8, information about the @samp{plot} procedure will 1104On positions 1,2 and 8, information about the @samp{plot} procedure will
1105be shown. On positions 3,4, and 7, the @samp{alog} function will be 1105be shown. On positions 3,4, and 7, the @samp{alog} function will be
1106described, while positions 5 and 6 will investigate the @samp{sin} 1106described, while positions 5 and 6 will investigate the @samp{sin}
1107function. 1107function.
1108 1108
1109When you ask for routine information about an object method, and the 1109When you ask for routine information about an object method, and the
1110method exists in several classes, IDLWAVE queries for the class of the 1110method exists in several classes, IDLWAVE queries for the class of the
@@ -1162,7 +1162,7 @@ will automatically split into the next two.
1162@item @i{Other} 1162@item @i{Other}
1163@tab Any other routine with a file not known to be on the search path. 1163@tab Any other routine with a file not known to be on the search path.
1164@item @i{Unresolved} 1164@item @i{Unresolved}
1165@tab An otherwise unknown routine the shell lists as unresolved 1165@tab An otherwise unknown routine the shell lists as unresolved
1166(referenced, but not compiled). 1166(referenced, but not compiled).
1167@end multitable 1167@end multitable
1168 1168
@@ -1198,7 +1198,7 @@ with the middle mouse button inserts keywords or visits files:
1198@item @i{Usage} 1198@item @i{Usage}
1199@tab If online help is installed, a click with the @emph{right} mouse 1199@tab If online help is installed, a click with the @emph{right} mouse
1200button on the @i{Usage:} line will access the help for the 1200button on the @i{Usage:} line will access the help for the
1201routine (@pxref{Online Help}). 1201routine (@pxref{Online Help}).
1202@item @i{Keyword} 1202@item @i{Keyword}
1203@tab Online help about keywords is also available with the 1203@tab Online help about keywords is also available with the
1204@emph{right} mouse button. Clicking on a keyword with the @emph{middle} 1204@emph{right} mouse button. Clicking on a keyword with the @emph{middle}
@@ -1340,8 +1340,8 @@ directly in the originating source file.
1340 1340
1341 1341
1342@menu 1342@menu
1343* Help with HTML Documentation:: 1343* Help with HTML Documentation::
1344* Help with Source:: 1344* Help with Source::
1345@end menu 1345@end menu
1346 1346
1347@node Help with HTML Documentation, Help with Source, Online Help, Online Help 1347@node Help with HTML Documentation, Help with Source, Online Help, Online Help
@@ -1393,7 +1393,7 @@ configuring a browser for use with IDL's HTML help system.
1393Relative directory of the system-supplied HTML help directory, 1393Relative directory of the system-supplied HTML help directory,
1394considered with respect to @code{idlwave-system-directory}. Relevant 1394considered with respect to @code{idlwave-system-directory}. Relevant
1395for IDL 6.2 and greater. Should not change. 1395for IDL 6.2 and greater. Should not change.
1396@end defopt 1396@end defopt
1397 1397
1398@defopt idlwave-html-help-location @file{/usr/local/etc/} 1398@defopt idlwave-html-help-location @file{/usr/local/etc/}
1399The directory where the @file{idl_html_help} HTML directory live. 1399The directory where the @file{idl_html_help} HTML directory live.
@@ -1580,8 +1580,8 @@ available will be emphasized (e.g. colored blue). For other items, the
1580corresponding source code or DocLib header will be used as the help 1580corresponding source code or DocLib header will be used as the help
1581text. 1581text.
1582 1582
1583@cindex Completion, cancelling 1583@cindex Completion, canceling
1584@cindex Cancelling completion 1584@cindex Canceling completion
1585Completion is not a blocking operation --- you are free to continue 1585Completion is not a blocking operation --- you are free to continue
1586editing, enter commands, or simply ignore the @file{*Completions*} 1586editing, enter commands, or simply ignore the @file{*Completions*}
1587buffer during a completion operation. If, however, the most recent 1587buffer during a completion operation. If, however, the most recent
@@ -1613,7 +1613,7 @@ available.
1613@menu 1613@menu
1614* Case of Completed Words:: CaseOFcomPletedWords 1614* Case of Completed Words:: CaseOFcomPletedWords
1615* Object Method Completion and Class Ambiguity:: obj->Method, what? 1615* Object Method Completion and Class Ambiguity:: obj->Method, what?
1616* Object Method Completion in the Shell:: 1616* Object Method Completion in the Shell::
1617* Class and Keyword Inheritance:: obj->Method, _EXTRA=e 1617* Class and Keyword Inheritance:: obj->Method, _EXTRA=e
1618* Structure Tag Completion:: Completing state.Tag 1618* Structure Tag Completion:: Completing state.Tag
1619@end menu 1619@end menu
@@ -1681,7 +1681,7 @@ narrow down the number of possible completions. The variable
1681@code{idlwave-query-class} can be configured to make such prompting the 1681@code{idlwave-query-class} can be configured to make such prompting the
1682default for all methods (not recommended), or selectively for very 1682default for all methods (not recommended), or selectively for very
1683common methods for which the number of completing keywords would be too 1683common methods for which the number of completing keywords would be too
1684large (e.g. @code{Init,SetProperty,GetProperty}). 1684large (e.g. @code{Init,SetProperty,GetProperty}).
1685 1685
1686@cindex Saving object class on @code{->} 1686@cindex Saving object class on @code{->}
1687@cindex @code{->} 1687@cindex @code{->}
@@ -1729,7 +1729,7 @@ routine info, or online help within a method routine, a query is sent to
1729determine the class of the object. If this query is successful, the 1729determine the class of the object. If this query is successful, the
1730class found will be used to select appropriate completions, routine 1730class found will be used to select appropriate completions, routine
1731info, or help. If unsuccessful, information from all known classes will 1731info, or help. If unsuccessful, information from all known classes will
1732be used (as in the buffer). 1732be used (as in the buffer).
1733 1733
1734@node Class and Keyword Inheritance, Structure Tag Completion, Object Method Completion in the Shell, Completion 1734@node Class and Keyword Inheritance, Structure Tag Completion, Object Method Completion in the Shell, Completion
1735@subsection Class and Keyword Inheritance 1735@subsection Class and Keyword Inheritance
@@ -1772,7 +1772,7 @@ keywords based on their originating class.
1772Non-@code{nil} means consider inheritance during completion, online help etc. 1772Non-@code{nil} means consider inheritance during completion, online help etc.
1773@end defopt 1773@end defopt
1774 1774
1775@defopt idlwave-keyword-class-inheritance 1775@defopt idlwave-keyword-class-inheritance
1776A list of regular expressions to match methods for which simple 1776A list of regular expressions to match methods for which simple
1777class-driven keyword inheritance will be used for Completion. 1777class-driven keyword inheritance will be used for Completion.
1778@end defopt 1778@end defopt
@@ -1802,7 +1802,7 @@ Structure tag completion is not enabled by default. To enable it,
1802simply add the following to your @file{.emacs}: 1802simply add the following to your @file{.emacs}:
1803 1803
1804@lisp 1804@lisp
1805 (add-hook 'idlwave-load-hook 1805 (add-hook 'idlwave-load-hook
1806 (lambda () (require 'idlw-complete-structtag))) 1806 (lambda () (require 'idlw-complete-structtag)))
1807@end lisp 1807@end lisp
1808 1808
@@ -2226,7 +2226,7 @@ your @file{.emacs} file:
2226 (idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<" 2226 (idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<"
2227 '(capitalize-word 1) t) 2227 '(capitalize-word 1) t)
2228 ;; Capitalize common block name 2228 ;; Capitalize common block name
2229 (idlwave-action-and-binding "\\<common\\>[ \t]+\\<" 2229 (idlwave-action-and-binding "\\<common\\>[ \t]+\\<"
2230 '(capitalize-word 1) t))) 2230 '(capitalize-word 1) t)))
2231@end lisp 2231@end lisp
2232 2232
@@ -2384,10 +2384,10 @@ currently only works under Unix and MacOSX.
2384@menu 2384@menu
2385* Starting the Shell:: How to launch IDL as a subprocess 2385* Starting the Shell:: How to launch IDL as a subprocess
2386* Using the Shell:: Interactively working with the Shell 2386* Using the Shell:: Interactively working with the Shell
2387* Commands Sent to the Shell:: 2387* Commands Sent to the Shell::
2388* Debugging IDL Programs:: 2388* Debugging IDL Programs::
2389* Examining Variables:: 2389* Examining Variables::
2390* Custom Expression Examination:: 2390* Custom Expression Examination::
2391@end menu 2391@end menu
2392 2392
2393@node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell 2393@node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell
@@ -2414,7 +2414,7 @@ In order to create a separate frame for the IDLWAVE shell buffer, call
2414@code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or 2414@code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or
2415@kbd{C-u C-c C-l}. If you always want a dedicated frame for the shell 2415@kbd{C-u C-c C-l}. If you always want a dedicated frame for the shell
2416window, configure the variable 2416window, configure the variable
2417@code{idlwave-shell-use-dedicated-frame}. 2417@code{idlwave-shell-use-dedicated-frame}.
2418 2418
2419To launch a quick IDLWAVE shell directly from a shell prompt without 2419To launch a quick IDLWAVE shell directly from a shell prompt without
2420an IDLWAVE buffer (e.g., as a replacement for running inside an 2420an IDLWAVE buffer (e.g., as a replacement for running inside an
@@ -2471,7 +2471,7 @@ The file in which the command history of the idlwave shell is saved.
2471Unless it's an absolute path, it goes in 2471Unless it's an absolute path, it goes in
2472@code{idlwave-config-directory}. 2472@code{idlwave-config-directory}.
2473@end defopt 2473@end defopt
2474 2474
2475@defopt idlwave-shell-use-dedicated-frame (@code{nil}) 2475@defopt idlwave-shell-use-dedicated-frame (@code{nil})
2476Non-@code{nil} means IDLWAVE should use a special frame to display the 2476Non-@code{nil} means IDLWAVE should use a special frame to display the
2477shell buffer. 2477shell buffer.
@@ -2574,7 +2574,7 @@ keywords, system variables, system variable tags etc.
2574@item @kbd{C-c C-v} 2574@item @kbd{C-c C-v}
2575@tab Find the source file of a routine (@code{idlwave-find-module}) 2575@tab Find the source file of a routine (@code{idlwave-find-module})
2576@item @kbd{C-c C-t} 2576@item @kbd{C-c C-t}
2577@tab Find the source file of a routine in the currently visited file 2577@tab Find the source file of a routine in the currently visited file
2578(@code{idlwave-find-module-this-file}). 2578(@code{idlwave-find-module-this-file}).
2579@item @kbd{C-c =} 2579@item @kbd{C-c =}
2580@tab Compile a library routine (@code{idlwave-resolve}) 2580@tab Compile a library routine (@code{idlwave-resolve})
@@ -2697,12 +2697,12 @@ buffers.
2697@end defopt 2697@end defopt
2698 2698
2699@menu 2699@menu
2700* A Tale of Two Modes:: 2700* A Tale of Two Modes::
2701* Debug Key Bindings:: 2701* Debug Key Bindings::
2702* Breakpoints and Stepping:: 2702* Breakpoints and Stepping::
2703* Compiling Programs:: 2703* Compiling Programs::
2704* Walking the Calling Stack:: 2704* Walking the Calling Stack::
2705* Electric Debug Mode:: 2705* Electric Debug Mode::
2706@end menu 2706@end menu
2707 2707
2708 2708
@@ -2795,7 +2795,7 @@ executed from the shell window, the breakpoint where IDL is currently
2795stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d 2795stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d
2796C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled 2796C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled
2797and re-enabled: @kbd{C-c C-d C-\} 2797and re-enabled: @kbd{C-c C-d C-\}
2798(@code{idlwave-shell-toggle-enable-current-bp}). 2798(@code{idlwave-shell-toggle-enable-current-bp}).
2799 2799
2800Breakpoint lines are highlighted or indicated with an icon in the source 2800Breakpoint lines are highlighted or indicated with an icon in the source
2801code (different icons for conditional, after, and other break types). 2801code (different icons for conditional, after, and other break types).
@@ -2804,7 +2804,7 @@ places breakpoints as close as possible on or after the line you
2804specify. IDLWAVE queries the shell for the actual breakpoint location 2804specify. IDLWAVE queries the shell for the actual breakpoint location
2805which was set, so the exact line you specify may not be marked. You can 2805which was set, so the exact line you specify may not be marked. You can
2806re-sync the breakpoint list and update the display at any time (e.g., if 2806re-sync the breakpoint list and update the display at any time (e.g., if
2807you add or remove some on the command line) using @kbd{C-c C-d C-l}. 2807you add or remove some on the command line) using @kbd{C-c C-d C-l}.
2808 2808
2809In recent IDLWAVE versions, the breakpoint line is highlighted when the 2809In recent IDLWAVE versions, the breakpoint line is highlighted when the
2810mouse is moved over it, and a tooltip pops up describing the break 2810mouse is moved over it, and a tooltip pops up describing the break
@@ -2914,8 +2914,8 @@ configured in @code{idlwave-shell-mark-stop-line}.
2914@kindex C-c C-d C-c 2914@kindex C-c C-d C-c
2915In order to compile the current buffer under the IDLWAVE shell, press 2915In order to compile the current buffer under the IDLWAVE shell, press
2916@kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the 2916@kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the
2917current buffer and then sends the command @samp{.run path/to/file} to the 2917current buffer and then sends the command @samp{.run path/to/file} to the
2918shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in 2918shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in
2919which case the most recently compiled buffer will be saved and 2919which case the most recently compiled buffer will be saved and
2920re-compiled. 2920re-compiled.
2921 2921
@@ -3080,9 +3080,9 @@ halts.
3080 3080
3081@defopt idlwave-shell-electric-stop-color (Violet) 3081@defopt idlwave-shell-electric-stop-color (Violet)
3082Default color of the stopped line overlay when in electric debug mode. 3082Default color of the stopped line overlay when in electric debug mode.
3083@end defopt 3083@end defopt
3084 3084
3085@defopt idlwave-shell-electric-stop-line-face 3085@defopt idlwave-shell-electric-stop-line-face
3086The face to use for the stopped line. Defaults to a face similar to the 3086The face to use for the stopped line. Defaults to a face similar to the
3087modeline, with color @code{idlwave-shell-electric-stop-color}. 3087modeline, with color @code{idlwave-shell-electric-stop-color}.
3088@end defopt 3088@end defopt
@@ -3188,14 +3188,14 @@ the expression printed by IDL.
3188@end defopt 3188@end defopt
3189 3189
3190@defopt idlwave-shell-output-face 3190@defopt idlwave-shell-output-face
3191The face for @code{idlwave-shell-output-overlay}. 3191The face for @code{idlwave-shell-output-overlay}.
3192Allows to choose the font, color and other properties for the most 3192Allows to choose the font, color and other properties for the most
3193recent output of IDL when examining an expression." 3193recent output of IDL when examining an expression."
3194@end defopt 3194@end defopt
3195 3195
3196@defopt idlwave-shell-separate-examine-output (@code{t}) 3196@defopt idlwave-shell-separate-examine-output (@code{t})
3197If non-@code{nil}, re-direct the output of examine commands to a special 3197If non-@code{nil}, re-direct the output of examine commands to a special
3198@file{*Examine*} buffer, instead of in the shell itself. 3198@file{*Examine*} buffer, instead of in the shell itself.
3199@end defopt 3199@end defopt
3200 3200
3201@defopt idlwave-shell-max-print-length (200) 3201@defopt idlwave-shell-max-print-length (200)
@@ -3249,17 +3249,17 @@ Both functions take a single string argument sharing the syntax of the
3249@lisp 3249@lisp
3250(add-hook 'idlwave-shell-mode-hook 3250(add-hook 'idlwave-shell-mode-hook
3251 (lambda () 3251 (lambda ()
3252 (idlwave-shell-define-key-both [s-down-mouse-2] 3252 (idlwave-shell-define-key-both [s-down-mouse-2]
3253 (idlwave-shell-mouse-examine 3253 (idlwave-shell-mouse-examine
3254 "print, size(___,/DIMENSIONS)")) 3254 "print, size(___,/DIMENSIONS)"))
3255 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine 3255 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine
3256 "print, size(___,/DIMENSIONS)")) 3256 "print, size(___,/DIMENSIONS)"))
3257 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine 3257 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
3258 "print,size(___,/TNAME)")) 3258 "print,size(___,/TNAME)"))
3259 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine 3259 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
3260 "help,___,/STRUCTURE")))) 3260 "help,___,/STRUCTURE"))))
3261@end lisp 3261@end lisp
3262 3262
3263@noindent Now pressing @key{f9}, or middle-mouse dragging with the 3263@noindent Now pressing @key{f9}, or middle-mouse dragging with the
3264@key{SUPER} key depressed, will print the dimensions of the nearby or 3264@key{SUPER} key depressed, will print the dimensions of the nearby or
3265highlighted expression. Pressing @key{f10} will give the type string, 3265highlighted expression. Pressing @key{f10} will give the type string,
@@ -3297,7 +3297,7 @@ of the package from version 3.0, during which time he overhauled almost
3297everything, modernized IDLWAVE with many new features, and developed the 3297everything, modernized IDLWAVE with many new features, and developed the
3298manual. 3298manual.
3299 3299
3300@item 3300@item
3301@uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current 3301@uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current
3302maintainer, as of version 4.10, helped shape object method completion 3302maintainer, as of version 4.10, helped shape object method completion
3303and most new features introduced in versions 4.x, and introduced many 3303and most new features introduced in versions 4.x, and introduced many
@@ -3364,7 +3364,7 @@ know about the accessible routines.
3364@menu 3364@menu
3365* Routine Definitions:: Where IDL Routines are defined. 3365* Routine Definitions:: Where IDL Routines are defined.
3366* Routine Information Sources:: So how does IDLWAVE know about... 3366* Routine Information Sources:: So how does IDLWAVE know about...
3367* Catalogs:: 3367* Catalogs::
3368* Load-Path Shadows:: Routines defined in several places 3368* Load-Path Shadows:: Routines defined in several places
3369* Documentation Scan:: Scanning the IDL Manuals 3369* Documentation Scan:: Scanning the IDL Manuals
3370@end menu 3370@end menu
@@ -3382,7 +3382,7 @@ know about the accessible routines.
3382several places: 3382several places:
3383 3383
3384@enumerate 3384@enumerate
3385@item 3385@item
3386@emph{Builtin routines} are defined inside IDL itself. The source code 3386@emph{Builtin routines} are defined inside IDL itself. The source code
3387of such routines is not available, but instead are learned about through 3387of such routines is not available, but instead are learned about through
3388the IDL documentation. 3388the IDL documentation.
@@ -3390,7 +3390,7 @@ the IDL documentation.
3390Routines which are @emph{part of the current program}, are defined in a 3390Routines which are @emph{part of the current program}, are defined in a
3391file explicitly compiled by the user. This file may or may not be 3391file explicitly compiled by the user. This file may or may not be
3392located on the IDL search path. 3392located on the IDL search path.
3393@item 3393@item
3394@emph{Library routines} are defined in files located on IDL's search 3394@emph{Library routines} are defined in files located on IDL's search
3395path. When a library routine is called for the first time, IDL will 3395path. When a library routine is called for the first time, IDL will
3396find the source file and compile it dynamically. A special sub-category 3396find the source file and compile it dynamically. A special sub-category
@@ -3428,7 +3428,7 @@ directly with IDL in the form of an XML catalog which IDLWAVE scans.
3428Formerly, this list was created by scanning the IDL manuals to produce 3428Formerly, this list was created by scanning the IDL manuals to produce
3429the file @file{idlw-rinfo.el}. 3429the file @file{idlw-rinfo.el}.
3430 3430
3431@item 3431@item
3432IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session 3432IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session
3433for routine definitions. This is done automatically when routine 3433for routine definitions. This is done automatically when routine
3434information or completion is first requested by the user. Each new 3434information or completion is first requested by the user. Each new
@@ -3547,8 +3547,8 @@ later).
3547@end defopt 3547@end defopt
3548 3548
3549@menu 3549@menu
3550* Library Catalogs:: 3550* Library Catalogs::
3551* User Catalog:: 3551* User Catalog::
3552@end menu 3552@end menu
3553 3553
3554@html 3554@html
@@ -3636,7 +3636,7 @@ instead, including:
3636@itemize @bullet 3636@itemize @bullet
3637@item The scan is internal to Emacs, so you don't need a working Perl 3637@item The scan is internal to Emacs, so you don't need a working Perl
3638installation, as you do for library catalogs. 3638installation, as you do for library catalogs.
3639@item Can be used to scan directories for which the user has no write 3639@item Can be used to scan directories for which the user has no write
3640privileges. 3640privileges.
3641@item Easy widget-based path selection. 3641@item Easy widget-based path selection.
3642@end itemize 3642@end itemize
@@ -3752,7 +3752,7 @@ Another way to find out if a specific routine has multiple definitions
3752on the load path is routine info display (@pxref{Routine Info}). 3752on the load path is routine info display (@pxref{Routine Info}).
3753 3753
3754@node Documentation Scan, , Load-Path Shadows, Sources of Routine Info 3754@node Documentation Scan, , Load-Path Shadows, Sources of Routine Info
3755@appendixsec Documentation Scan 3755@appendixsec Documentation Scan
3756@cindex @file{get_html_rinfo} 3756@cindex @file{get_html_rinfo}
3757@cindex @file{idlw-rinfo.el} 3757@cindex @file{idlw-rinfo.el}
3758@cindex Scanning the documentation 3758@cindex Scanning the documentation
@@ -3920,7 +3920,7 @@ user is King!
3920(setq idlwave-main-block-indent 3) 3920(setq idlwave-main-block-indent 3)
3921(setq idlwave-end-offset -3) 3921(setq idlwave-end-offset -3)
3922(setq idlwave-continuation-indent 1) 3922(setq idlwave-continuation-indent 1)
3923(setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;" 3923(setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;"
3924 ; anchored at start of line. 3924 ; anchored at start of line.
3925(setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,> 3925(setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,>
3926(setq idlwave-pad-keyword nil) ; Remove spaces for keyword '=' 3926(setq idlwave-pad-keyword nil) ; Remove spaces for keyword '='
@@ -3987,10 +3987,10 @@ user is King!
3987 ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference. 3987 ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference.
3988 3988
3989 ;; Some personal abbreviations 3989 ;; Some personal abbreviations
3990 (define-abbrev idlwave-mode-abbrev-table 3990 (define-abbrev idlwave-mode-abbrev-table
3991 (concat idlwave-abbrev-start-char "wb") "widget_base()" 3991 (concat idlwave-abbrev-start-char "wb") "widget_base()"
3992 (idlwave-keyword-abbrev 1)) 3992 (idlwave-keyword-abbrev 1))
3993 (define-abbrev idlwave-mode-abbrev-table 3993 (define-abbrev idlwave-mode-abbrev-table
3994 (concat idlwave-abbrev-start-char "on") "obj_new()" 3994 (concat idlwave-abbrev-start-char "on") "obj_new()"
3995 (idlwave-keyword-abbrev 1)) 3995 (idlwave-keyword-abbrev 1))
3996 )) 3996 ))
@@ -4008,12 +4008,12 @@ user is King!
4008(add-hook 'idlwave-shell-mode-hook 4008(add-hook 'idlwave-shell-mode-hook
4009 (lambda () 4009 (lambda ()
4010 ;; Set up some custom key and mouse examine commands 4010 ;; Set up some custom key and mouse examine commands
4011 (idlwave-shell-define-key-both [s-down-mouse-2] 4011 (idlwave-shell-define-key-both [s-down-mouse-2]
4012 (idlwave-shell-mouse-examine 4012 (idlwave-shell-mouse-examine
4013 "print, size(___,/DIMENSIONS)")) 4013 "print, size(___,/DIMENSIONS)"))
4014 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine 4014 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine
4015 "print, size(___,/DIMENSIONS)")) 4015 "print, size(___,/DIMENSIONS)"))
4016 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine 4016 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
4017 "print,size(___,/TNAME)")) 4017 "print,size(___,/TNAME)"))
4018 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine 4018 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
4019 "help,___,/STRUCTURE")))) 4019 "help,___,/STRUCTURE"))))
@@ -4066,7 +4066,7 @@ system. I am assuming that IDLWAVE has been installed in
4066sure you check the following things: 4066sure you check the following things:
4067 4067
4068@itemize @bullet 4068@itemize @bullet
4069@item When you download the IDLWAVE distribution, make sure you save the 4069@item When you download the IDLWAVE distribution, make sure you save the
4070file under the names @file{idlwave.tar.gz}. 4070file under the names @file{idlwave.tar.gz}.
4071@item M-TAB switches among running programs --- use Esc-TAB 4071@item M-TAB switches among running programs --- use Esc-TAB
4072instead. 4072instead.
@@ -4102,7 +4102,7 @@ customize the variable @code{idlwave-shell-automatic-electric-debug}
4102if you prefer not to enter electric debug on breakpoints@dots{} but 4102if you prefer not to enter electric debug on breakpoints@dots{} but
4103you really should try it before you disable it! You can also 4103you really should try it before you disable it! You can also
4104customize this variable to enter debug mode when errors are 4104customize this variable to enter debug mode when errors are
4105encountered. 4105encountered.
4106 4106
4107@item @strong{I get errors like @samp{Searching for program: no such 4107@item @strong{I get errors like @samp{Searching for program: no such
4108file or directory, idl} when attempting to start the IDL shell.} 4108file or directory, idl} when attempting to start the IDL shell.}
@@ -4141,7 +4141,7 @@ in compiled lisp files. Presumably, you kept the original .elc files in
4141place, and this is the source of the error. If you recompile (or just 4141place, and this is the source of the error. If you recompile (or just
4142"make; make install") from source, it should resolve this problem. 4142"make; make install") from source, it should resolve this problem.
4143Another option is to recompile the @file{idlw*.el} files by hand using 4143Another option is to recompile the @file{idlw*.el} files by hand using
4144@kbd{M-x byte-compile-file}. 4144@kbd{M-x byte-compile-file}.
4145 4145
4146@item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches 4146@item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches
4147windows on my desktop.} 4147windows on my desktop.}
@@ -4193,7 +4193,7 @@ installed. Many Emacsen come with an older bundled copy of IDLWAVE
4193(e.g. v4.7 for Emacs 21.x), which is likely what's being used instead. 4193(e.g. v4.7 for Emacs 21.x), which is likely what's being used instead.
4194You need to make sure your Emacs @emph{load-path} contains the directory 4194You need to make sure your Emacs @emph{load-path} contains the directory
4195where IDLWAVE is installed (@file{/usr/local/share/emacs/site-lisp}, by 4195where IDLWAVE is installed (@file{/usr/local/share/emacs/site-lisp}, by
4196default), @emph{before} Emacs' default search directories. You can 4196default), @emph{before} Emacs's default search directories. You can
4197accomplish this by putting the following in your @file{.emacs}: 4197accomplish this by putting the following in your @file{.emacs}:
4198 4198
4199@lisp 4199@lisp
@@ -4266,7 +4266,7 @@ You have a mismatch between your help index and the HTML help package
4266you downloaded. You need to ensure you download a ``downgrade kit'' if 4266you downloaded. You need to ensure you download a ``downgrade kit'' if
4267you are using anything older than the latest HTML help package. A new 4267you are using anything older than the latest HTML help package. A new
4268help package appears with each IDL release (assuming the documentation 4268help package appears with each IDL release (assuming the documentation
4269is updated). 4269is updated).
4270Starting with IDL 6.2, the HTML help and its catalog are 4270Starting with IDL 6.2, the HTML help and its catalog are
4271distributed with IDL, and so should never be inconsistent. 4271distributed with IDL, and so should never be inconsistent.
4272 4272
diff --git a/doc/misc/info.texi b/doc/misc/info.texi
index 68390a2f0cc..8952bfb9122 100644
--- a/doc/misc/info.texi
+++ b/doc/misc/info.texi
@@ -14,8 +14,7 @@
14This file describes how to use Info, the on-line, menu-driven GNU 14This file describes how to use Info, the on-line, menu-driven GNU
15documentation system. 15documentation system.
16 16
17Copyright @copyright{} 1989, 1992, 1996-2011 17Copyright @copyright{} 1989, 1992, 1996-2012 Free Software Foundation, Inc.
18Free Software Foundation, Inc.
19 18
20@quotation 19@quotation
21Permission is granted to copy, distribute and/or modify this document 20Permission is granted to copy, distribute and/or modify this document
@@ -1108,7 +1107,7 @@ In the stand-alone reader, @kbd{0} goes through the last menu item;
1108this is so you need not count how many entries are there. 1107this is so you need not count how many entries are there.
1109 1108
1110 If your display supports multiple fonts, colors or underlining, and 1109 If your display supports multiple fonts, colors or underlining, and
1111you are using Emacs' Info mode to read Info files, the third, sixth 1110you are using Emacs's Info mode to read Info files, the third, sixth
1112and ninth menu items have a @samp{*} that stands out, either in color 1111and ninth menu items have a @samp{*} that stands out, either in color
1113or in some other attribute, such as underline; this makes it easy to 1112or in some other attribute, such as underline; this makes it easy to
1114see at a glance which number to use for an item. 1113see at a glance which number to use for an item.
@@ -1142,6 +1141,12 @@ prefix argument for the @kbd{C-h i} command (@code{info}) which
1142switches to the Info buffer with that number. Thus, @kbd{C-u 2 C-h i} 1141switches to the Info buffer with that number. Thus, @kbd{C-u 2 C-h i}
1143switches to the buffer @samp{*info*<2>}, creating it if necessary. 1142switches to the buffer @samp{*info*<2>}, creating it if necessary.
1144 1143
1144@findex info-display-manual
1145 If you have created many Info buffers in Emacs, you might find it
1146difficult to remember which buffer is showing which manual. You can
1147use the command @kbd{M-x info-display-manual} to show an Info manual
1148by name, reusing an existing buffer if there is one.
1149
1145@node Emacs Info Variables, , Create Info buffer, Advanced 1150@node Emacs Info Variables, , Create Info buffer, Advanced
1146@comment node-name, next, previous, up 1151@comment node-name, next, previous, up
1147@section Emacs Info-mode Variables 1152@section Emacs Info-mode Variables
@@ -1230,6 +1235,7 @@ this:
1230 1235
1231@node Expert Info 1236@node Expert Info
1232@chapter Info for Experts 1237@chapter Info for Experts
1238@cindex Texinfo
1233 1239
1234 This chapter explains how to write an Info file by hand. However, 1240 This chapter explains how to write an Info file by hand. However,
1235in most cases, writing a Texinfo file is better, since you can use it 1241in most cases, writing a Texinfo file is better, since you can use it
diff --git a/doc/misc/mairix-el.texi b/doc/misc/mairix-el.texi
index d64f316cb7b..468283ffd93 100644
--- a/doc/misc/mairix-el.texi
+++ b/doc/misc/mairix-el.texi
@@ -6,7 +6,7 @@
6@documentencoding ISO-8859-1 6@documentencoding ISO-8859-1
7 7
8@copying 8@copying
9Copyright @copyright{} 2008-2011 Free Software Foundation, Inc. 9Copyright @copyright{} 2008-2012 Free Software Foundation, Inc.
10 10
11@quotation 11@quotation
12Permission is granted to copy, distribute and/or modify this document 12Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/makefile.w32-in b/doc/misc/makefile.w32-in
index 1e497fe309f..6e4a65c292c 100644
--- a/doc/misc/makefile.w32-in
+++ b/doc/misc/makefile.w32-in
@@ -1,6 +1,6 @@
1#### -*- Makefile -*- for documentation other than the Emacs manual. 1#### -*- Makefile -*- for documentation other than the Emacs manual.
2 2
3# Copyright (C) 2003-2011 Free Software Foundation, Inc. 3# Copyright (C) 2003-2012 Free Software Foundation, Inc.
4 4
5# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
6 6
@@ -100,123 +100,127 @@ info.dvi: $(INFOSOURCES)
100 $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi 100 $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi
101 101
102 102
103$(infodir)/ccmode: cc-mode.texi 103$(infodir)/ccmode: cc-mode.texi doclicense.texi
104 $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi 104 $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi
105cc-mode.dvi: cc-mode.texi 105cc-mode.dvi: cc-mode.texi doclicense.texi
106 $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi 106 $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi
107 107
108$(infodir)/ada-mode: ada-mode.texi 108$(infodir)/ada-mode: ada-mode.texi doclicense.texi
109 $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi 109 $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi
110ada-mode.dvi: ada-mode.texi 110ada-mode.dvi: ada-mode.texi doclicense.texi
111 $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi 111 $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi
112 112
113$(infodir)/pcl-cvs: pcl-cvs.texi 113$(infodir)/pcl-cvs: pcl-cvs.texi doclicense.texi
114 $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi 114 $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi
115pcl-cvs.dvi: pcl-cvs.texi 115pcl-cvs.dvi: pcl-cvs.texi doclicense.texi
116 $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi 116 $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi
117 117
118$(infodir)/eshell: eshell.texi 118$(infodir)/eshell: eshell.texi doclicense.texi
119 $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi 119 $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi
120eshell.dvi: eshell.texi 120eshell.dvi: eshell.texi doclicense.texi
121 $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi 121 $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi
122 122
123$(infodir)/cl: cl.texi 123$(infodir)/cl: cl.texi doclicense.texi
124 $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi 124 $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi
125cl.dvi: cl.texi 125cl.dvi: cl.texi doclicense.texi
126 $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi 126 $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi
127 127
128$(infodir)/dbus: dbus.texi 128$(infodir)/dbus: dbus.texi doclicense.texi
129 $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi 129 $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi
130dbus.dvi: dbus.texi 130dbus.dvi: dbus.texi doclicense.texi
131 $(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi 131 $(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi
132 132
133$(infodir)/dired-x: dired-x.texi 133$(infodir)/dired-x: dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi
134 $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi 134 $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi
135dired-x.dvi: dired-x.texi 135dired-x.dvi: dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi
136 $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi 136 $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi
137 137
138$(infodir)/ediff: ediff.texi 138$(infodir)/ediff: ediff.texi doclicense.texi
139 $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi 139 $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi
140ediff.dvi: ediff.texi 140ediff.dvi: ediff.texi doclicense.texi
141 $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi 141 $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi
142 142
143$(infodir)/flymake: flymake.texi 143$(infodir)/flymake: flymake.texi doclicense.texi
144 $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi 144 $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi
145flymake.dvi: flymake.texi 145flymake.dvi: flymake.texi doclicense.texi
146 $(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi 146 $(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi
147 147
148$(infodir)/forms: forms.texi 148$(infodir)/forms: forms.texi doclicense.texi
149 $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi 149 $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi
150forms.dvi: forms.texi 150forms.dvi: forms.texi doclicense.texi
151 $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi 151 $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi
152 152
153# gnus/message/emacs-mime/sieve/pgg are part of Gnus: 153# gnus/message/emacs-mime/sieve/pgg are part of Gnus:
154$(infodir)/gnus: gnus.texi 154$(infodir)/gnus: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \
155 sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi \
156 doclicense.texi
155 $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi 157 $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi
156gnus.dvi: gnus.texi 158gnus.dvi: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \
159 sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi \
160 doclicense.texi
157 sed -e "/@iflatex/,/@end iflatex/d" $(srcdir)/gnus.texi > gnustmp.texi 161 sed -e "/@iflatex/,/@end iflatex/d" $(srcdir)/gnus.texi > gnustmp.texi
158 $(ENVADD) $(TEXI2DVI) gnustmp.texi 162 $(ENVADD) $(TEXI2DVI) gnustmp.texi
159 cp gnustmp.dvi $*.dvi 163 cp gnustmp.dvi $*.dvi
160 rm gnustmp.* 164 rm gnustmp.*
161# 165#
162$(infodir)/message: message.texi 166$(infodir)/message: message.texi gnus-overrides.texi doclicense.texi
163 $(MAKEINFO) $(MAKEINFO_OPTS) message.texi 167 $(MAKEINFO) $(MAKEINFO_OPTS) message.texi
164message.dvi: message.texi 168message.dvi: message.texi gnus-overrides.texi doclicense.texi
165 $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi 169 $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi
166# 170#
167$(infodir)/emacs-mime: emacs-mime.texi 171$(infodir)/emacs-mime: emacs-mime.texi gnus-overrides.texi doclicense.texi
168 $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi 172 $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi
169emacs-mime.dvi: emacs-mime.texi 173emacs-mime.dvi: emacs-mime.texi gnus-overrides.texi doclicense.texi
170 $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi 174 $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi
171# 175#
172$(infodir)/sieve: sieve.texi 176$(infodir)/sieve: sieve.texi gnus-overrides.texi doclicense.texi
173 $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi 177 $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi
174sieve.dvi: sieve.texi 178sieve.dvi: sieve.texi gnus-overrides.texi doclicense.texi
175 $(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi 179 $(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi
176# 180#
177$(infodir)/pgg: pgg.texi 181$(infodir)/pgg: pgg.texi gnus-overrides.texi doclicense.texi
178 $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi 182 $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi
179pgg.dvi: pgg.texi 183pgg.dvi: pgg.texi gnus-overrides.texi doclicense.texi
180 $(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi 184 $(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi
181 185
182$(infodir)/mh-e: mh-e.texi 186$(infodir)/mh-e: mh-e.texi doclicense.texi gpl.texi
183 $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi 187 $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi
184mh-e.dvi: mh-e.texi 188mh-e.dvi: mh-e.texi doclicense.texi gpl.texi
185 $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi 189 $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi
186 190
187$(infodir)/reftex: reftex.texi 191$(infodir)/reftex: reftex.texi doclicense.texi
188 $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi 192 $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi
189reftex.dvi: reftex.texi 193reftex.dvi: reftex.texi doclicense.texi
190 $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi 194 $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi
191 195
192$(infodir)/remember: remember.texi 196$(infodir)/remember: remember.texi doclicense.texi
193 $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi 197 $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi
194remember.dvi: remember.texi 198remember.dvi: remember.texi doclicense.texix
195 $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi 199 $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi
196 200
197$(infodir)/sasl: sasl.texi 201$(infodir)/sasl: sasl.texi gnus-overrides.texi
198 $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi 202 $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi
199sasl.dvi: sasl.texi 203sasl.dvi: sasl.texi gnus-overrides.texi
200 $(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi 204 $(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi
201 205
202$(infodir)/sc: sc.texi 206$(infodir)/sc: sc.texi doclicense.texi
203 $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi 207 $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi
204sc.dvi: sc.texi 208sc.dvi: sc.texi doclicense.texi
205 $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi 209 $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi
206 210
207$(infodir)/vip: vip.texi 211$(infodir)/vip: vip.texi doclicense.texi
208 $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi 212 $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi
209vip.dvi: vip.texi 213vip.dvi: vip.texi doclicense.texi
210 $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi 214 $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi
211 215
212$(infodir)/viper: viper.texi 216$(infodir)/viper: viper.texi doclicense.texi
213 $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi 217 $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi
214viper.dvi: viper.texi 218viper.dvi: viper.texi doclicense.texi
215 $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi 219 $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi
216 220
217$(infodir)/widget: widget.texi 221$(infodir)/widget: widget.texi doclicense.texi
218 $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi 222 $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi
219widget.dvi: widget.texi 223widget.dvi: widget.texi doclicense.texi
220 $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi 224 $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi
221 225
222$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi 226$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
@@ -224,57 +228,56 @@ $(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
224faq.dvi: faq.texi $(emacsdir)/emacsver.texi 228faq.dvi: faq.texi $(emacsdir)/emacsver.texi
225 $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi 229 $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi
226 230
227$(infodir)/autotype: autotype.texi 231$(infodir)/autotype: autotype.texi doclicense.texi
228 $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi 232 $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi
229autotype.dvi: autotype.texi 233autotype.dvi: autotype.texi doclicense.texi
230 $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi 234 $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi
231 235
232$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi 236$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi
233 $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi 237 $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi
234 238calc.dvi: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi
235calc.dvi: calc.texi $(emacsdir)/emacsver.texi
236 $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi 239 $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi
237 240
238# This is produced with --no-split to avoid making files whose 241# This is produced with --no-split to avoid making files whose
239# names clash on DOS 8+3 filesystems 242# names clash on DOS 8+3 filesystems
240$(infodir)/idlwave: idlwave.texi 243$(infodir)/idlwave: idlwave.texi doclicense.texi
241 $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi 244 $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi
242idlwave.dvi: idlwave.texi 245idlwave.dvi: idlwave.texi doclicense.texi
243 $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi 246 $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi
244 247
245$(infodir)/eudc: eudc.texi 248$(infodir)/eudc: eudc.texi doclicense.texi
246 $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi 249 $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi
247eudc.dvi: eudc.texi 250eudc.dvi: eudc.texi doclicense.texi
248 $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi 251 $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi
249 252
250$(infodir)/ebrowse: ebrowse.texi 253$(infodir)/ebrowse: ebrowse.texi doclicense.texi
251 $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi 254 $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi
252ebrowse.dvi: ebrowse.texi 255ebrowse.dvi: ebrowse.texi doclicense.texi
253 $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi 256 $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi
254 257
255$(infodir)/woman: woman.texi 258$(infodir)/woman: woman.texi doclicense.texi
256 $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi 259 $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi
257woman.dvi: woman.texi 260woman.dvi: woman.texi doclicense.texi
258 $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi 261 $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi
259 262
260$(infodir)/speedbar: speedbar.texi 263$(infodir)/speedbar: speedbar.texi doclicense.texi
261 $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi 264 $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi
262speedbar.dvi: speedbar.texi 265speedbar.dvi: speedbar.texi doclicense.texi
263 $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi 266 $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi
264 267
265$(infodir)/tramp: tramp.texi 268$(infodir)/tramp: tramp.texi trampver.texi doclicense.texi
266 $(MAKEINFO) $(MAKEINFO_OPTS) tramp.texi 269 $(MAKEINFO) $(MAKEINFO_OPTS) tramp.texi
267tramp.dvi: tramp.texi 270tramp.dvi: tramp.texi trampver.texi doclicense.texi
268 $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi 271 $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi
269 272
270$(infodir)/ses: ses.texi 273$(infodir)/ses: ses.texi doclicense.texi
271 $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi 274 $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi
272ses.dvi: ses.texi 275ses.dvi: ses.texi doclicense.texi
273 $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi 276 $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi
274 277
275$(infodir)/smtpmail: smtpmail.texi 278$(infodir)/smtpmail: smtpmail.texi doclicense.texi
276 $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi 279 $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi
277smtpmail.dvi: smtpmail.texi 280smtpmail.dvi: smtpmail.texi doclicense.texi
278 $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi 281 $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi
279 282
280$(infodir)/org: org.texi 283$(infodir)/org: org.texi
@@ -282,14 +285,14 @@ $(infodir)/org: org.texi
282org.dvi: org.texi 285org.dvi: org.texi
283 $(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi 286 $(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi
284 287
285$(infodir)/url: url.texi 288$(infodir)/url: url.texi doclicense.texi
286 $(MAKEINFO) $(MAKEINFO_OPTS) url.texi 289 $(MAKEINFO) $(MAKEINFO_OPTS) url.texi
287url.dvi: url.texi 290url.dvi: url.texi doclicense.texi
288 $(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi 291 $(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi
289 292
290$(infodir)/newsticker: newsticker.texi 293$(infodir)/newsticker: newsticker.texi doclicense.texi
291 $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi 294 $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi
292newsticker.dvi: newsticker.texi 295newsticker.dvi: newsticker.texi doclicense.texi
293 $(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi 296 $(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi
294 297
295$(infodir)/nxml-mode: nxml-mode.texi 298$(infodir)/nxml-mode: nxml-mode.texi
@@ -297,14 +300,14 @@ $(infodir)/nxml-mode: nxml-mode.texi
297nxml-mod.dvi: nxml-mode.texi 300nxml-mod.dvi: nxml-mode.texi
298 $(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi 301 $(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi
299 302
300$(infodir)/rcirc: rcirc.texi 303$(infodir)/rcirc: rcirc.texi doclicense.texi
301 $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi 304 $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi
302rcirc.dvi: rcirc.texi 305rcirc.dvi: rcirc.texi doclicense.texi
303 $(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi 306 $(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi
304 307
305$(infodir)/erc: erc.texi 308$(infodir)/erc: erc.texi gpl.texi doclicense.texi
306 $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi 309 $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi
307erc.dvi: erc.texi 310erc.dvi: erc.texi gpl.texi doclicense.texi
308 $(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi 311 $(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi
309 312
310$(infodir)/ert: ert.texi 313$(infodir)/ert: ert.texi
@@ -322,9 +325,9 @@ $(infodir)/mairix-el: mairix-el.texi
322mairix-el.dvi: mairix-el.texi 325mairix-el.dvi: mairix-el.texi
323 $(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi 326 $(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi
324 327
325$(infodir)/auth: auth.texi 328$(infodir)/auth: auth.texi gnus-overrides.texi
326 $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi 329 $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi
327auth.dvi: auth.texi 330auth.dvi: auth.texi gnus-overrides.texi
328 $(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi 331 $(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi
329 332
330$(infodir)/eieio: eieio.texi 333$(infodir)/eieio: eieio.texi
@@ -337,14 +340,14 @@ $(infodir)/ede: ede.texi
337ede.dvi: ede.texi 340ede.dvi: ede.texi
338 $(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi 341 $(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi
339 342
340$(infodir)/semantic: semantic.texi 343$(infodir)/semantic: semantic.texi sem-user.texi doclicense.texi
341 $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi 344 $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi
342semantic.dvi: semantic.texi 345semantic.dvi: semantic.texi sem-user.texi doclicense.texi
343 $(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi 346 $(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi
344 347
345$(infodir)/edt: edt.texi 348$(infodir)/edt: edt.texi doclicense.texi
346 $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi 349 $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi
347edt.dvi: edt.texi 350edt.dvi: edt.texi doclicense.texi
348 $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi 351 $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi
349 352
350mostlyclean: 353mostlyclean:
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 48d0028e452..7ed5f6a92a5 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -10,7 +10,7 @@
10@copying 10@copying
11This file documents Message, the Emacs message composition mode. 11This file documents Message, the Emacs message composition mode.
12 12
13Copyright @copyright{} 1996-2011 Free Software Foundation, Inc. 13Copyright @copyright{} 1996-2012 Free Software Foundation, Inc.
14 14
15@quotation 15@quotation
16Permission is granted to copy, distribute and/or modify this document 16Permission is granted to copy, distribute and/or modify this document
@@ -904,7 +904,7 @@ happen---Message will encode non-@acronym{ASCII} domain names in @code{From},
904Until @acronym{IDNA} becomes more well known, Message queries you 904Until @acronym{IDNA} becomes more well known, Message queries you
905whether @acronym{IDNA} encoding of the domain name really should 905whether @acronym{IDNA} encoding of the domain name really should
906occur. Some users might not be aware that domain names can contain 906occur. Some users might not be aware that domain names can contain
907non-@acronym{ASCII} now, so this gives them a safety net if they accidently 907non-@acronym{ASCII} now, so this gives them a safety net if they accidentally
908typed a non-@acronym{ASCII} domain name. 908typed a non-@acronym{ASCII} domain name.
909 909
910@vindex message-use-idna 910@vindex message-use-idna
@@ -1974,7 +1974,7 @@ that look like:
1974Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes: 1974Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes:
1975@end example 1975@end example
1976 1976
1977@c FIXME: Add `message-insert-formated-citation-line' and 1977@c FIXME: Add `message-insert-formatted-citation-line' and
1978@c `message-citation-line-format' 1978@c `message-citation-line-format'
1979 1979
1980Point will be at the beginning of the body of the message when this 1980Point will be at the beginning of the body of the message when this
@@ -2120,7 +2120,7 @@ follows this line--} by default.
2120 2120
2121@item message-directory 2121@item message-directory
2122@vindex message-directory 2122@vindex message-directory
2123Directory used by many mailey things. The default is @file{~/Mail/}. 2123Directory used by many mailish things. The default is @file{~/Mail/}.
2124All other mail file variables are derived from @code{message-directory}. 2124All other mail file variables are derived from @code{message-directory}.
2125 2125
2126@item message-auto-save-directory 2126@item message-auto-save-directory
diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi
index 43d7bc74553..538c3f1ba82 100644
--- a/doc/misc/mh-e.texi
+++ b/doc/misc/mh-e.texi
@@ -8,12 +8,12 @@
8@c %**end of header 8@c %**end of header
9 9
10@c Version of the software and manual. 10@c Version of the software and manual.
11@set VERSION 8.2 11@set VERSION 8.3
12@c Edition of the manual. It is either empty for the first edition or 12@c Edition of the manual. It is either empty for the first edition or
13@c has the form ", nth Edition" (without the quotes). 13@c has the form ", nth Edition" (without the quotes).
14@set EDITION 14@set EDITION
15@set UPDATED 2009-06-13 15@set UPDATED 2011-09-20
16@set UPDATE-MONTH June, 2009 16@set UPDATE-MONTH September, 2011
17 17
18@c Other variables. 18@c Other variables.
19@set MH-BOOK-HOME http://rand-mh.sourceforge.net/book/mh 19@set MH-BOOK-HOME http://rand-mh.sourceforge.net/book/mh
@@ -24,7 +24,7 @@
24This is version @value{VERSION}@value{EDITION} of @cite{The MH-E 24This is version @value{VERSION}@value{EDITION} of @cite{The MH-E
25Manual}, last updated @value{UPDATED}. 25Manual}, last updated @value{UPDATED}.
26 26
27Copyright @copyright{} 1995, 2001-2003, 2005-2011 Free Software Foundation, Inc. 27Copyright @copyright{} 1995, 2001-2003, 2005-2012 Free Software Foundation, Inc.
28 28
29@c This dual license has been agreed upon by the FSF. 29@c This dual license has been agreed upon by the FSF.
30 30
@@ -212,10 +212,11 @@ more niceties about GNU Emacs and MH@. Now I'm fully hooked on both of
212them. 212them.
213 213
214The MH-E package is distributed with Emacs@footnote{Version 214The MH-E package is distributed with Emacs@footnote{Version
215@value{VERSION} of MH-E appeared in Emacs 23.1. It is supported 215@value{VERSION} of MH-E appeared in Emacs 24.1. It is supported in GNU
216in Emacs 21 and 22, as well as XEmacs 21 (except for versions 216Emacs 23 and higher, as well as XEmacs 21.4.22 and 21.5.31. MH-E is
21721.5.9-21.5.16). It is compatible with MH versions 6.8.4 and higher, 217known not to work with GNU Emacs versions 20 and below, and XEmacs
218all versions of nmh, and GNU mailutils 1.0 and higher.}, so you 218version 21.5.9 - 21.5.16. It is compatible with MH versions 6.8.4 and
219higher, all versions of nmh, and GNU mailutils 1.0 and higher}, so you
219shouldn't have to do anything special to use it. Gnus is also 220shouldn't have to do anything special to use it. Gnus is also
220required; version 5.10 or higher is recommended. This manual covers 221required; version 5.10 or higher is recommended. This manual covers
221MH-E version @value{VERSION}. To help you decide which version you 222MH-E version @value{VERSION}. To help you decide which version you
@@ -8950,8 +8951,8 @@ files that were already part of Emacs) and the software was completely
8950reorganized to push back two decades of entropy. Version 8 appeared in 8951reorganized to push back two decades of entropy. Version 8 appeared in
8951Emacs 22.1 in 2006. 8952Emacs 22.1 in 2006.
8952 8953
8953Development was then quiet for a couple of years. Emacs 23.1, released 8954Development was then quiet for a couple of years. Emacs 23.1, which is
8954in June 2009, contains version 8.2. This version includes a few 8955due out in 2009, will contain version 8.1. This version includes a few
8955new features and several bug fixes. 8956new features and several bug fixes.
8956 8957
8957Bill Wohler, August 2008 8958Bill Wohler, August 2008
diff --git a/doc/misc/newsticker.texi b/doc/misc/newsticker.texi
index c7d82245973..919ca21cc3e 100644
--- a/doc/misc/newsticker.texi
+++ b/doc/misc/newsticker.texi
@@ -13,8 +13,7 @@
13This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}). 13This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}).
14 14
15@noindent 15@noindent
16Copyright @copyright{} 2004-2011 16Copyright @copyright{} 2004-2012 Free Software Foundation, Inc.
17Free Software Foundation, Inc.
18 17
19@quotation 18@quotation
20Permission is granted to copy, distribute and/or modify this document 19Permission is granted to copy, distribute and/or modify this document
@@ -52,7 +51,7 @@ developing GNU and promoting software freedom.''
52@node Top 51@node Top
53@top Newsticker 52@top Newsticker
54 53
55@insertcopying 54@insertcopying
56 55
57@end ifnottex 56@end ifnottex
58 57
@@ -112,9 +111,9 @@ enclosed files (as delivered by podcasts, e.g.).
112Here are screen shots of the @uref{newsticker-1.7.png, version 1.7 111Here are screen shots of the @uref{newsticker-1.7.png, version 1.7
113(current version)} and some older screen shots: 112(current version)} and some older screen shots:
114@uref{newsticker-1.6.png, version 1.6}, 113@uref{newsticker-1.6.png, version 1.6},
115@uref{newsticker-1.5.png, version 1.5}, 114@uref{newsticker-1.5.png, version 1.5},
116@uref{newsticker-1.4.png, version 1.4} 115@uref{newsticker-1.4.png, version 1.4}
117@uref{newsticker-1.3.png, version 1.3}, 116@uref{newsticker-1.3.png, version 1.3},
118@uref{newsticker-1.0.png, version 1.0}. 117@uref{newsticker-1.0.png, version 1.0}.
119@end ifhtml 118@end ifhtml
120 119
@@ -128,7 +127,7 @@ requires an XML-parser (@file{xml.el}) which is part of GNU Emacs. If
128you are using XEmacs you want to get the @file{net-utils} package 127you are using XEmacs you want to get the @file{net-utils} package
129which contains @file{xml.el} for XEmacs. 128which contains @file{xml.el} for XEmacs.
130 129
131Newsticker retrieves headlines either via Emacs' built-in retrieval 130Newsticker retrieves headlines either via Emacs's built-in retrieval
132functions, by an arbitrary external program that retrieves files via 131functions, by an arbitrary external program that retrieves files via
133http and prints them to stdout (like 132http and prints them to stdout (like
134@uref{http://www.gnu.org/software/wget/wget.html, wget}, or -- on a 133@uref{http://www.gnu.org/software/wget/wget.html, wget}, or -- on a
@@ -163,7 +162,7 @@ You can choose between two different frontends for reading headlines:
163@item Newsticker's @emph{treeview} uses separate windows for the 162@item Newsticker's @emph{treeview} uses separate windows for the
164feeds (in tree form), a list of headlines for the current feed, and 163feeds (in tree form), a list of headlines for the current feed, and
165the content of the current headline. Feeds can be placed into groups 164the content of the current headline. Feeds can be placed into groups
166which itself can be placed in groups and so on. 165which itself can be placed in groups and so on.
167@item Newsticker's @emph{plainview} displays all headlines in a 166@item Newsticker's @emph{plainview} displays all headlines in a
168single buffer, called @samp{*newsticker*}. The modeline in the 167single buffer, called @samp{*newsticker*}. The modeline in the
169@samp{*newsticker*} buffer informs whenever new headlines have 168@samp{*newsticker*} buffer informs whenever new headlines have
@@ -171,7 +170,7 @@ arrived.
171@end itemize 170@end itemize
172In both views clicking mouse-button 2 or pressing RET on a headline 171In both views clicking mouse-button 2 or pressing RET on a headline
173will call @code{browse-url} to load the corresponding news story in 172will call @code{browse-url} to load the corresponding news story in
174your favourite web browser. 173your favorite web browser.
175 174
176@findex newsticker-start-ticker 175@findex newsticker-start-ticker
177@findex newsticker-stop-ticker 176@findex newsticker-stop-ticker
@@ -205,7 +204,7 @@ and some of the most important options.
205 204
206@item 205@item
207@code{newsticker-retrieval} contains options that define which news 206@code{newsticker-retrieval} contains options that define which news
208feeds are retrieved and how this is done. 207feeds are retrieved and how this is done.
209 208
210@itemize 209@itemize
211@item 210@item
@@ -215,7 +214,7 @@ retrieved.
215@item 214@item
216@vindex newsticker-retrieval-method 215@vindex newsticker-retrieval-method
217@code{newsticker-retrieval-method} defines how headlines are 216@code{newsticker-retrieval-method} defines how headlines are
218retrieved. This is either done using Emacs' built-in download 217retrieved. This is either done using Emacs's built-in download
219capabilities or using an external tool. 218capabilities or using an external tool.
220@item 219@item
221@vindex newsticker-retrieval-interval 220@vindex newsticker-retrieval-interval
@@ -241,7 +240,7 @@ automatically mark headlines as immortal or old.
241 240
242@item 241@item
243@code{newsticker-hooks} contains options for hooking other Emacs 242@code{newsticker-hooks} contains options for hooking other Emacs
244commands to newsticker functions. 243commands to newsticker functions.
245@itemize 244@itemize
246@item 245@item
247@vindex newsticker-new-item-functions 246@vindex newsticker-new-item-functions
@@ -313,5 +312,3 @@ Byte-compiling newsticker.el is recommended.
313@printindex cp 312@printindex cp
314 313
315@bye 314@bye
316
317
diff --git a/doc/misc/nxml-mode.texi b/doc/misc/nxml-mode.texi
index 27603440413..73af1ace245 100644
--- a/doc/misc/nxml-mode.texi
+++ b/doc/misc/nxml-mode.texi
@@ -8,8 +8,7 @@
8This manual documents nxml-mode, an Emacs major mode for editing 8This manual documents nxml-mode, an Emacs major mode for editing
9XML with RELAX NG support. 9XML with RELAX NG support.
10 10
11Copyright @copyright{} 2007-2011 11Copyright @copyright{} 2007-2012 Free Software Foundation, Inc.
12Free Software Foundation, Inc.
13 12
14@quotation 13@quotation
15Permission is granted to copy, distribute and/or modify this document 14Permission is granted to copy, distribute and/or modify this document
@@ -355,7 +354,7 @@ Otherwise, it is a paragraph boundary.
355@chapter Outlining 354@chapter Outlining
356 355
357nXML mode allows you to display all or part of a buffer as an 356nXML mode allows you to display all or part of a buffer as an
358outline, in a similar way to Emacs' outline mode. An outline in nXML 357outline, in a similar way to Emacs's outline mode. An outline in nXML
359mode is based on recognizing two kinds of element: sections and 358mode is based on recognizing two kinds of element: sections and
360headings. There is one heading for every section and one section for 359headings. There is one heading for every section and one section for
361every heading. A section contains its heading as or within its first 360every heading. A section contains its heading as or within its first
@@ -878,7 +877,7 @@ the document in different ways, since the XML Recommendation does not
878require XML parsers to read the DTD. With DTDs, it was impractical to 877require XML parsers to read the DTD. With DTDs, it was impractical to
879get validation without using an external DTD or reference to an 878get validation without using an external DTD or reference to an
880parameter entity. With RELAX NG and other schema languages, you can 879parameter entity. With RELAX NG and other schema languages, you can
881simulataneously get the benefits of validation and standalone XML 880simultaneously get the benefits of validation and standalone XML
882documents. Therefore, I recommend that you do not reference an 881documents. Therefore, I recommend that you do not reference an
883external DOCTYPE in your XML documents. 882external DOCTYPE in your XML documents.
884 883
@@ -908,4 +907,3 @@ specification are not enforced.
908@end itemize 907@end itemize
909 908
910@bye 909@bye
911
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index a0ec20c4034..2a41d6b9301 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -4,8 +4,8 @@
4@setfilename ../../info/org 4@setfilename ../../info/org
5@settitle The Org Manual 5@settitle The Org Manual
6 6
7@set VERSION 7.4 7@set VERSION 7.8.03
8@set DATE December 2010 8@set DATE January 2012
9 9
10@c Use proper quote and backtick for code sections in PDF output 10@c Use proper quote and backtick for code sections in PDF output
11@c Cf. Texinfo manual 14.2 11@c Cf. Texinfo manual 14.2
@@ -34,9 +34,9 @@
34 34
35@c Below we define the following macros for Org key tables: 35@c Below we define the following macros for Org key tables:
36 36
37@c orgkey{key} A key item 37@c orgkey{key} A key item
38@c orgcmd{key,cmd} Key with command name 38@c orgcmd{key,cmd} Key with command name
39@c xorgcmd{key,cmmand} Key with command name as @itemx 39@c xorgcmd{key,cmd} Key with command name as @itemx
40@c orgcmdnki{key,cmd} Like orgcmd, but do not index the key 40@c orgcmdnki{key,cmd} Like orgcmd, but do not index the key
41@c orgcmdtkc{text,key,cmd} Like orgcmd,special text instead of key 41@c orgcmdtkc{text,key,cmd} Like orgcmd,special text instead of key
42@c orgcmdkkc{key1,key2,cmd} Two keys with one command name, use "or" 42@c orgcmdkkc{key1,key2,cmd} Two keys with one command name, use "or"
@@ -265,7 +265,7 @@
265@copying 265@copying
266This manual is for Org version @value{VERSION}. 266This manual is for Org version @value{VERSION}.
267 267
268Copyright @copyright{} 2004-2011 Free Software Foundation, Inc. 268Copyright @copyright{} 2004-2012 Free Software Foundation, Inc.
269 269
270@quotation 270@quotation
271Permission is granted to copy, distribute and/or modify this document 271Permission is granted to copy, distribute and/or modify this document
@@ -286,7 +286,7 @@ license to the document, as described in section 6 of the license.
286@end quotation 286@end quotation
287@end copying 287@end copying
288 288
289@dircategory Emacs editing modes 289@dircategory Emacs
290@direntry 290@direntry
291* Org Mode: (org). Outline-based notes management and organizer 291* Org Mode: (org). Outline-based notes management and organizer
292@end direntry 292@end direntry
@@ -296,7 +296,7 @@ license to the document, as described in section 6 of the license.
296 296
297@subtitle Release @value{VERSION} 297@subtitle Release @value{VERSION}
298@author by Carsten Dominik 298@author by Carsten Dominik
299with contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison, Eric Schulte, and Thomas Dye 299with contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison, Eric Schulte, Thomas Dye and Jambunathan K.
300 300
301@c The following two commands start the copyright page. 301@c The following two commands start the copyright page.
302@page 302@page
@@ -377,11 +377,12 @@ The spreadsheet
377* References:: How to refer to another field or range 377* References:: How to refer to another field or range
378* Formula syntax for Calc:: Using Calc to compute stuff 378* Formula syntax for Calc:: Using Calc to compute stuff
379* Formula syntax for Lisp:: Writing formulas in Emacs Lisp 379* Formula syntax for Lisp:: Writing formulas in Emacs Lisp
380* Field formulas:: Formulas valid for a single field 380* Durations and time values:: How to compute durations and time values
381* Field and range formulas:: Formula for specific (ranges of) fields
381* Column formulas:: Formulas valid for an entire column 382* Column formulas:: Formulas valid for an entire column
382* Editing and debugging formulas:: Fixing formulas 383* Editing and debugging formulas:: Fixing formulas
383* Updating the table:: Recomputing all dependent fields 384* Updating the table:: Recomputing all dependent fields
384* Advanced features:: Field names, parameters and automatic recalc 385* Advanced features:: Field and column names, parameters and automatic recalc
385 386
386Hyperlinks 387Hyperlinks
387 388
@@ -432,7 +433,7 @@ Tags
432Properties and columns 433Properties and columns
433 434
434* Property syntax:: How properties are spelled out 435* Property syntax:: How properties are spelled out
435* Special properties:: Access to other Org-mode features 436* Special properties:: Access to other Org mode features
436* Property searches:: Matching property values 437* Property searches:: Matching property values
437* Property inheritance:: Passing values down the tree 438* Property inheritance:: Passing values down the tree
438* Column view:: Tabular viewing and editing 439* Column view:: Tabular viewing and editing
@@ -461,7 +462,7 @@ Dates and times
461 462
462Creating timestamps 463Creating timestamps
463 464
464* The date/time prompt:: How Org-mode helps you entering date and time 465* The date/time prompt:: How Org mode helps you entering date and time
465* Custom time format:: Making dates look different 466* Custom time format:: Making dates look different
466 467
467Deadlines and scheduling 468Deadlines and scheduling
@@ -480,7 +481,7 @@ Capture - Refile - Archive
480* Capture:: Capturing new stuff 481* Capture:: Capturing new stuff
481* Attachments:: Add files to tasks 482* Attachments:: Add files to tasks
482* RSS Feeds:: Getting input from RSS feeds 483* RSS Feeds:: Getting input from RSS feeds
483* Protocols:: External (e.g. Browser) access to Emacs and Org 484* Protocols:: External (e.g.@: Browser) access to Emacs and Org
484* Refiling notes:: Moving a tree from one place to another 485* Refiling notes:: Moving a tree from one place to another
485* Archiving:: What to do with finished projects 486* Archiving:: What to do with finished projects
486 487
@@ -540,7 +541,7 @@ Markup for rich export
540* Include files:: Include additional files into a document 541* Include files:: Include additional files into a document
541* Index entries:: Making an index 542* Index entries:: Making an index
542* Macro replacement:: Use macros to create complex output 543* Macro replacement:: Use macros to create complex output
543* Embedded LaTeX:: LaTeX can be freely used inside Org documents 544* Embedded @LaTeX{}:: LaTeX can be freely used inside Org documents
544 545
545Structural markup elements 546Structural markup elements
546 547
@@ -559,8 +560,8 @@ Embedded @LaTeX{}
559 560
560* Special symbols:: Greek letters and other symbols 561* Special symbols:: Greek letters and other symbols
561* Subscripts and superscripts:: Simple syntax for raising/lowering text 562* Subscripts and superscripts:: Simple syntax for raising/lowering text
562* LaTeX fragments:: Complex formulas made easy 563* @LaTeX{} fragments:: Complex formulas made easy
563* Previewing LaTeX fragments:: What will this snippet look like? 564* Previewing @LaTeX{} fragments:: What will this snippet look like?
564* CDLaTeX mode:: Speed up entering of formulas 565* CDLaTeX mode:: Speed up entering of formulas
565 566
566Exporting 567Exporting
@@ -570,8 +571,9 @@ Exporting
570* The export dispatcher:: How to access exporter commands 571* The export dispatcher:: How to access exporter commands
571* ASCII/Latin-1/UTF-8 export:: Exporting to flat files with encoding 572* ASCII/Latin-1/UTF-8 export:: Exporting to flat files with encoding
572* HTML export:: Exporting to HTML 573* HTML export:: Exporting to HTML
573* LaTeX and PDF export:: Exporting to @LaTeX{}, and processing to PDF 574* @LaTeX{} and PDF export:: Exporting to @LaTeX{}, and processing to PDF
574* DocBook export:: Exporting to DocBook 575* DocBook export:: Exporting to DocBook
576* OpenDocument Text export:: Exporting to OpenDocument Text
575* TaskJuggler export:: Exporting to TaskJuggler 577* TaskJuggler export:: Exporting to TaskJuggler
576* Freemind export:: Exporting to Freemind mind maps 578* Freemind export:: Exporting to Freemind mind maps
577* XOXO export:: Exporting to XOXO 579* XOXO export:: Exporting to XOXO
@@ -580,7 +582,8 @@ Exporting
580HTML export 582HTML export
581 583
582* HTML Export commands:: How to invoke HTML export 584* HTML Export commands:: How to invoke HTML export
583* Quoting HTML tags:: Using direct HTML in Org-mode 585* HTML preamble and postamble:: How to insert a preamble and a postamble
586* Quoting HTML tags:: Using direct HTML in Org mode
584* Links in HTML export:: How links will be interpreted and formatted 587* Links in HTML export:: How links will be interpreted and formatted
585* Tables in HTML export:: How to modify the formatting of tables 588* Tables in HTML export:: How to modify the formatting of tables
586* Images in HTML export:: How to insert figures into HTML output 589* Images in HTML export:: How to insert figures into HTML output
@@ -591,11 +594,11 @@ HTML export
591 594
592@LaTeX{} and PDF export 595@LaTeX{} and PDF export
593 596
594* LaTeX/PDF export commands:: Which key invokes which commands 597* @LaTeX{}/PDF export commands::
595* Header and sectioning:: Setting up the export file structure 598* Header and sectioning:: Setting up the export file structure
596* Quoting LaTeX code:: Incorporating literal @LaTeX{} code 599* Quoting @LaTeX{} code:: Incorporating literal @LaTeX{} code
597* Tables in LaTeX export:: Options for exporting tables to @LaTeX{} 600* Tables in @LaTeX{} export:: Options for exporting tables to @LaTeX{}
598* Images in LaTeX export:: How to insert figures into @LaTeX{} output 601* Images in @LaTeX{} export:: How to insert figures into @LaTeX{} output
599* Beamer class export:: Turning the file into a presentation 602* Beamer class export:: Turning the file into a presentation
600 603
601DocBook export 604DocBook export
@@ -607,6 +610,31 @@ DocBook export
607* Images in DocBook export:: How to insert figures into DocBook output 610* Images in DocBook export:: How to insert figures into DocBook output
608* Special characters:: How to handle special characters 611* Special characters:: How to handle special characters
609 612
613OpenDocument Text export
614
615* Pre-requisites for @acronym{ODT} export:: What packages @acronym{ODT} exporter relies on
616* @acronym{ODT} export commands:: How to invoke @acronym{ODT} export
617* Applying custom styles:: How to apply custom styles to the output
618* Links in @acronym{ODT} export:: How links will be interpreted and formatted
619* Tables in @acronym{ODT} export:: How Tables are exported
620* Images in @acronym{ODT} export:: How to insert images
621* Math formatting in @acronym{ODT} export:: How @LaTeX{} fragments are formatted
622* Literal examples in @acronym{ODT} export:: How source and example blocks are formatted
623* Advanced topics in @acronym{ODT} export:: Read this if you are a power user
624
625Math formatting in @acronym{ODT} export
626
627* Working with @LaTeX{} math snippets:: How to embed @LaTeX{} math fragments
628* Working with MathML or OpenDocument formula files:: How to embed equations in native format
629
630Advanced topics in @acronym{ODT} export
631
632* Exporting and converting to other formats:: How to produce @samp{pdf} and other formats
633* Working with OpenDocument style files:: Explore the internals
634* Creating one-off styles:: How to produce custom highlighting etc
635* Customizing tables in @acronym{ODT} export:: How to define and use Table templates
636* Validating OpenDocument XML:: How to debug corrupt OpenDocument files
637
610Publishing 638Publishing
611 639
612* Configuration:: Defining projects 640* Configuration:: Defining projects
@@ -620,7 +648,7 @@ Configuration
620* Sources and destinations:: From here to there 648* Sources and destinations:: From here to there
621* Selecting files:: What files are part of the project? 649* Selecting files:: What files are part of the project?
622* Publishing action:: Setting the function doing the publishing 650* Publishing action:: Setting the function doing the publishing
623* Publishing options:: Tweaking HTML export 651* Publishing options:: Tweaking HTML/@LaTeX{} export
624* Publishing links:: Which links keep working after publishing? 652* Publishing links:: Which links keep working after publishing?
625* Sitemap:: Generating a list of all pages 653* Sitemap:: Generating a list of all pages
626* Generating an index:: An index that reaches across pages 654* Generating an index:: An index that reaches across pages
@@ -636,12 +664,12 @@ Working with source code
636* Editing source code:: Language major-mode editing 664* Editing source code:: Language major-mode editing
637* Exporting code blocks:: Export contents and/or results 665* Exporting code blocks:: Export contents and/or results
638* Extracting source code:: Create pure source code files 666* Extracting source code:: Create pure source code files
639* Evaluating code blocks:: Place results of evaluation in the Org-mode buffer 667* Evaluating code blocks:: Place results of evaluation in the Org mode buffer
640* Library of Babel:: Use and contribute to a library of useful code blocks 668* Library of Babel:: Use and contribute to a library of useful code blocks
641* Languages:: List of supported code block languages 669* Languages:: List of supported code block languages
642* Header arguments:: Configure code block functionality 670* Header arguments:: Configure code block functionality
643* Results of evaluation:: How evaluation results are handled 671* Results of evaluation:: How evaluation results are handled
644* Noweb reference syntax:: Literate programming in Org-mode 672* Noweb reference syntax:: Literate programming in Org mode
645* Key bindings and useful functions:: Work quickly with code blocks 673* Key bindings and useful functions:: Work quickly with code blocks
646* Batch execution:: Call functions from the command line 674* Batch execution:: Call functions from the command line
647 675
@@ -655,7 +683,7 @@ Using header arguments
655* System-wide header arguments:: Set global default values 683* System-wide header arguments:: Set global default values
656* Language-specific header arguments:: Set default values by language 684* Language-specific header arguments:: Set default values by language
657* Buffer-wide header arguments:: Set default values for a specific buffer 685* Buffer-wide header arguments:: Set default values for a specific buffer
658* Header arguments in Org-mode properties:: Set default values for a buffer or heading 686* Header arguments in Org mode properties:: Set default values for a buffer or heading
659* Code block specific header arguments:: The most common way to set values 687* Code block specific header arguments:: The most common way to set values
660* Header arguments in function calls:: The most specific level 688* Header arguments in function calls:: The most specific level
661 689
@@ -669,13 +697,19 @@ Specific header arguments
669 directory for code block execution 697 directory for code block execution
670* exports:: Export code and/or results 698* exports:: Export code and/or results
671* tangle:: Toggle tangling and specify file name 699* tangle:: Toggle tangling and specify file name
700* mkdirp:: Toggle creation of parent directories of target
701 files during tangling
672* comments:: Toggle insertion of comments in tangled 702* comments:: Toggle insertion of comments in tangled
673 code files 703 code files
704* padline:: Control insertion of padding lines in tangled
705 code files
674* no-expand:: Turn off variable assignment and noweb 706* no-expand:: Turn off variable assignment and noweb
675 expansion during tangling 707 expansion during tangling
676* session:: Preserve the state of code evaluation 708* session:: Preserve the state of code evaluation
677* noweb:: Toggle expansion of noweb references 709* noweb:: Toggle expansion of noweb references
710* noweb-ref:: Specify block's noweb reference resolution target
678* cache:: Avoid re-evaluating unchanged code blocks 711* cache:: Avoid re-evaluating unchanged code blocks
712* sep:: Delimiter for writing tabular results outside Org
679* hlines:: Handle horizontal lines in tables 713* hlines:: Handle horizontal lines in tables
680* colnames:: Handle column names in tables 714* colnames:: Handle column names in tables
681* rownames:: Handle row names in tables 715* rownames:: Handle row names in tables
@@ -694,6 +728,7 @@ Miscellaneous
694* Clean view:: Getting rid of leading stars in the outline 728* Clean view:: Getting rid of leading stars in the outline
695* TTY keys:: Using Org on a tty 729* TTY keys:: Using Org on a tty
696* Interaction:: Other Emacs packages 730* Interaction:: Other Emacs packages
731* org-crypt.el:: Encrypting Org files
697 732
698Interaction with other packages 733Interaction with other packages
699 734
@@ -716,7 +751,7 @@ Hacking
716Tables and lists in arbitrary syntax 751Tables and lists in arbitrary syntax
717 752
718* Radio tables:: Sending and receiving radio tables 753* Radio tables:: Sending and receiving radio tables
719* A LaTeX example:: Step by step, almost a tutorial 754* A @LaTeX{} example:: Step by step, almost a tutorial
720* Translator functions:: Copy and modify 755* Translator functions:: Copy and modify
721* Radio lists:: Doing the same for lists 756* Radio lists:: Doing the same for lists
722 757
@@ -769,7 +804,7 @@ create dynamic @i{agenda views}.
769 804
770Org mode contains the Org Babel environment which allows you to work with 805Org mode contains the Org Babel environment which allows you to work with
771embedded source code blocks in a file, to facilitate code evaluation, 806embedded source code blocks in a file, to facilitate code evaluation,
772documentation, and tangling. 807documentation, and literate programming techniques.
773 808
774Org's automatic, context-sensitive table editor with spreadsheet 809Org's automatic, context-sensitive table editor with spreadsheet
775capabilities can be integrated into any major mode by activating the 810capabilities can be integrated into any major mode by activating the
@@ -803,6 +838,11 @@ version of Org, as well as additional information, frequently asked
803questions (FAQ), links to tutorials, etc@. This page is located at 838questions (FAQ), links to tutorials, etc@. This page is located at
804@uref{http://orgmode.org}. 839@uref{http://orgmode.org}.
805 840
841@cindex print edition
842The version 7.3 of this manual is available as a
843@uref{http://www.network-theory.co.uk/org/manual/, paperback book from Network
844Theory Ltd.}
845
806@page 846@page
807 847
808 848
@@ -813,7 +853,9 @@ questions (FAQ), links to tutorials, etc@. This page is located at
813 853
814@b{Important:} @i{If you are using a version of Org that is part of the Emacs 854@b{Important:} @i{If you are using a version of Org that is part of the Emacs
815distribution or an XEmacs package, please skip this section and go directly 855distribution or an XEmacs package, please skip this section and go directly
816to @ref{Activation}.} 856to @ref{Activation}. To see what version of Org (if any) is part of your
857Emacs distribution, type @kbd{M-x load-library RET org} and then @kbd{M-x
858org-version}.}
817 859
818If you have downloaded Org from the Web, either as a distribution @file{.zip} 860If you have downloaded Org from the Web, either as a distribution @file{.zip}
819or @file{.tar} file, or as a Git archive, you must take the following steps 861or @file{.tar} file, or as a Git archive, you must take the following steps
@@ -852,20 +894,26 @@ make install
852@end example 894@end example
853 895
854Installing Info files is system dependent, because of differences in the 896Installing Info files is system dependent, because of differences in the
855@file{install-info} program. In Debian it copies the info files into the 897@file{install-info} program. The following should correctly install the Info
856correct directory and modifies the info directory file. In many other 898files on most systems, please send a bug report if not@footnote{The output
857systems, the files need to be copied to the correct directory separately, and 899from install-info (if any) is also system dependent. In particular Debian
858@file{install-info} then only modifies the directory file. Check your system 900and its derivatives use two different versions of install-info and you may
859documentation to find out which of the following commands you need: 901see the message:
902
903@example
904This is not dpkg install-info anymore, but GNU install-info
905See the man page for ginstall-info for command line arguments
906@end example
907
908@noindent which can be safely ignored.}.
860 909
861@example 910@example
862make install-info 911make install-info
863make install-info-debian
864@end example 912@end example
865 913
866Then add the following line to @file{.emacs}. It is needed so that 914Then add the following line to @file{.emacs}. It is needed so that
867Emacs can autoload functions that are located in files not immediately loaded 915Emacs can autoload functions that are located in files not immediately loaded
868when Org-mode starts. 916when Org mode starts.
869@lisp 917@lisp
870(require 'org-install) 918(require 'org-install)
871@end lisp 919@end lisp
@@ -880,31 +928,30 @@ Do not forget to activate Org as described in the following section.
880@cindex global key bindings 928@cindex global key bindings
881@cindex key bindings, global 929@cindex key bindings, global
882 930
883Add the following lines to your @file{.emacs} file. The last three lines 931To make sure files with extension @file{.org} use Org mode, add the following
884define @emph{global} keys for the commands @command{org-store-link}, 932line to your @file{.emacs} file.
885@command{org-agenda}, and @command{org-iswitchb}---please choose suitable
886keys yourself.
887
888@lisp 933@lisp
889;; The following lines are always needed. Choose your own keys.
890(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) 934(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
935@end lisp
936@noindent Org mode buffers need font-lock to be turned on - this is the
937default in Emacs@footnote{If you don't use font-lock globally, turn it on in
938Org buffer with @code{(add-hook 'org-mode-hook 'turn-on-font-lock)}}.
939
940The four Org commands @command{org-store-link}, @command{org-capture},
941@command{org-agenda}, and @command{org-iswitchb} should be accessible through
942global keys (i.e.@: anywhere in Emacs, not just in Org buffers). Here are
943suggested bindings for these keys, please modify the keys to your own
944liking.
945@lisp
891(global-set-key "\C-cl" 'org-store-link) 946(global-set-key "\C-cl" 'org-store-link)
947(global-set-key "\C-cc" 'org-capture)
892(global-set-key "\C-ca" 'org-agenda) 948(global-set-key "\C-ca" 'org-agenda)
893(global-set-key "\C-cb" 'org-iswitchb) 949(global-set-key "\C-cb" 'org-iswitchb)
894@end lisp 950@end lisp
895 951
896Furthermore, you must activate @code{font-lock-mode} in Org 952@cindex Org mode, turning on
897buffers, because significant functionality depends on font-locking being
898active. You can do this with either one of the following two lines
899(XEmacs users must use the second option):
900@lisp
901(global-font-lock-mode 1) ; for all buffers
902(add-hook 'org-mode-hook 'turn-on-font-lock) ; Org buffers only
903@end lisp
904
905@cindex Org-mode, turning on
906With this setup, all files with extension @samp{.org} will be put 953With this setup, all files with extension @samp{.org} will be put
907into Org-mode. As an alternative, make the first line of a file look 954into Org mode. As an alternative, make the first line of a file look
908like this: 955like this:
909 956
910@example 957@example
@@ -912,7 +959,7 @@ MY PROJECTS -*- mode: org; -*-
912@end example 959@end example
913 960
914@vindex org-insert-mode-line-in-empty-file 961@vindex org-insert-mode-line-in-empty-file
915@noindent which will select Org-mode for this buffer no matter what 962@noindent which will select Org mode for this buffer no matter what
916the file's name is. See also the variable 963the file's name is. See also the variable
917@code{org-insert-mode-line-in-empty-file}. 964@code{org-insert-mode-line-in-empty-file}.
918 965
@@ -955,6 +1002,36 @@ version information of Emacs (@kbd{M-x emacs-version @key{RET}}) and Org
955that you only need to add your description. If you re not sending the Email 1002that you only need to add your description. If you re not sending the Email
956from within Emacs, please copy and paste the content into your Email program. 1003from within Emacs, please copy and paste the content into your Email program.
957 1004
1005Sometimes you might face a problem due to an error in your Emacs or Org mode
1006setup. Before reporting a bug, it is very helpful to start Emacs with minimal
1007customizations and reproduce the problem. Doing so often helps you determine
1008if the problem is with your customization or with Org mode itself. You can
1009start a typical minimal session with a command like the example below.
1010
1011@example
1012$ emacs -Q -l /path/to/minimal-org.el
1013@end example
1014
1015However if you are using Org mode as distributed with Emacs, a minimal setup
1016is not necessary. In that case it is sufficient to start Emacs as @code{emacs
1017-Q}. The @code{minimal-org.el} setup file can have contents as shown below.
1018
1019@example
1020;;; Minimal setup to load latest `org-mode'
1021
1022;; activate debugging
1023(setq debug-on-error t
1024 debug-on-signal nil
1025 debug-on-quit nil)
1026
1027;; add latest org-mode to load path
1028(add-to-list 'load-path (expand-file-name "/path/to/org-mode/lisp"))
1029(add-to-list 'load-path (expand-file-name "/path/to/org-mode/contrib/lisp"))
1030
1031;; activate org
1032(require 'org-install)
1033@end example
1034
958If an error occurs, a backtrace can be very useful (see below on how to 1035If an error occurs, a backtrace can be very useful (see below on how to
959create one). Often a small example file helps, along with clear information 1036create one). Often a small example file helps, along with clear information
960about: 1037about:
@@ -977,7 +1054,7 @@ error occurred. Here is how to produce a useful backtrace:
977 1054
978@enumerate 1055@enumerate
979@item 1056@item
980Reload uncompiled versions of all Org-mode Lisp files. The backtrace 1057Reload uncompiled versions of all Org mode Lisp files. The backtrace
981contains much more information if it is produced with uncompiled code. 1058contains much more information if it is produced with uncompiled code.
982To do this, use 1059To do this, use
983@example 1060@example
@@ -1164,8 +1241,8 @@ Reveal context around point, showing the current entry, the following heading
1164and the hierarchy above. Useful for working near a location that has been 1241and the hierarchy above. Useful for working near a location that has been
1165exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda command 1242exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda command
1166(@pxref{Agenda commands}). With a prefix argument show, on each 1243(@pxref{Agenda commands}). With a prefix argument show, on each
1167level, all sibling headings. With double prefix arg, also show the entire 1244level, all sibling headings. With a double prefix argument, also show the
1168subtree of the parent. 1245entire subtree of the parent.
1169@orgcmd{C-c C-k,show-branches} 1246@orgcmd{C-c C-k,show-branches}
1170Expose all the headings of the subtree, CONTENT view for just one subtree. 1247Expose all the headings of the subtree, CONTENT view for just one subtree.
1171@orgcmd{C-c C-x b,org-tree-to-indirect-buffer} 1248@orgcmd{C-c C-x b,org-tree-to-indirect-buffer}
@@ -1183,6 +1260,8 @@ but without affecting visibility in that buffer.}. With a numeric
1183prefix argument N, go up to level N and then take that tree. If N is 1260prefix argument N, go up to level N and then take that tree. If N is
1184negative then go up that many levels. With a @kbd{C-u} prefix, do not remove 1261negative then go up that many levels. With a @kbd{C-u} prefix, do not remove
1185the previously used indirect buffer. 1262the previously used indirect buffer.
1263@orgcmd{C-c C-x v,org-copy-visible}
1264Copy the @i{visible} text in the region into the kill ring.
1186@end table 1265@end table
1187 1266
1188@vindex org-startup-folded 1267@vindex org-startup-folded
@@ -1192,7 +1271,7 @@ the previously used indirect buffer.
1192@cindex @code{showeverything}, STARTUP keyword 1271@cindex @code{showeverything}, STARTUP keyword
1193 1272
1194When Emacs first visits an Org file, the global state is set to 1273When Emacs first visits an Org file, the global state is set to
1195OVERVIEW, i.e. only the top level headlines are visible. This can be 1274OVERVIEW, i.e.@: only the top level headlines are visible. This can be
1196configured through the variable @code{org-startup-folded}, or on a 1275configured through the variable @code{org-startup-folded}, or on a
1197per-file basis by adding one of the following lines anywhere in the 1276per-file basis by adding one of the following lines anywhere in the
1198buffer: 1277buffer:
@@ -1212,7 +1291,7 @@ for this property are @code{folded}, @code{children}, @code{content}, and
1212@code{all}. 1291@code{all}.
1213@table @asis 1292@table @asis
1214@orgcmd{C-u C-u @key{TAB},org-set-startup-visibility} 1293@orgcmd{C-u C-u @key{TAB},org-set-startup-visibility}
1215Switch back to the startup visibility of the buffer, i.e. whatever is 1294Switch back to the startup visibility of the buffer, i.e.@: whatever is
1216requested by startup options and @samp{VISIBILITY} properties in individual 1295requested by startup options and @samp{VISIBILITY} properties in individual
1217entries. 1296entries.
1218@end table 1297@end table
@@ -1273,19 +1352,17 @@ See also the variable @code{org-goto-interface}.
1273@table @asis 1352@table @asis
1274@orgcmd{M-@key{RET},org-insert-heading} 1353@orgcmd{M-@key{RET},org-insert-heading}
1275@vindex org-M-RET-may-split-line 1354@vindex org-M-RET-may-split-line
1276Insert new heading with same level as current. If the cursor is in a 1355Insert new heading with same level as current. If the cursor is in a plain
1277plain list item, a new item is created (@pxref{Plain lists}). To force 1356list item, a new item is created (@pxref{Plain lists}). To force creation of
1278creation of a new headline, use a prefix argument, or first press @key{RET} 1357a new headline, use a prefix argument. When this command is used in the
1279to get to the beginning of the next line. When this command is used in 1358middle of a line, the line is split and the rest of the line becomes the new
1280the middle of a line, the line is split and the rest of the line becomes 1359headline@footnote{If you do not want the line to be split, customize the
1281the new headline@footnote{If you do not want the line to be split, 1360variable @code{org-M-RET-may-split-line}.}. If the command is used at the
1282customize the variable @code{org-M-RET-may-split-line}.}. If the 1361beginning of a headline, the new headline is created before the current line.
1283command is used at the beginning of a headline, the new headline is 1362If at the beginning of any other line, the content of that line is made the
1284created before the current line. If at the beginning of any other line, 1363new heading. If the command is used at the end of a folded subtree (i.e.@:
1285the content of that line is made the new heading. If the command is 1364behind the ellipses at the end of a headline), then a headline like the
1286used at the end of a folded subtree (i.e. behind the ellipses at the end 1365current one will be inserted after the end of the subtree.
1287of a headline), then a headline like the current one will be inserted
1288after the end of the subtree.
1289@orgcmd{C-@key{RET},org-insert-heading-respect-content} 1366@orgcmd{C-@key{RET},org-insert-heading-respect-content}
1290Just like @kbd{M-@key{RET}}, except when adding a new heading below the 1367Just like @kbd{M-@key{RET}}, except when adding a new heading below the
1291current heading, the new heading is placed after the body instead of before 1368current heading, the new heading is placed after the body instead of before
@@ -1317,7 +1394,7 @@ level).
1317@orgcmd{M-S-@key{down},org-move-subtree-down} 1394@orgcmd{M-S-@key{down},org-move-subtree-down}
1318Move subtree down (swap with next subtree of same level). 1395Move subtree down (swap with next subtree of same level).
1319@orgcmd{C-c C-x C-w,org-cut-subtree} 1396@orgcmd{C-c C-x C-w,org-cut-subtree}
1320Kill subtree, i.e. remove it from buffer but save in kill ring. 1397Kill subtree, i.e.@: remove it from buffer but save in kill ring.
1321With a numeric prefix argument N, kill N sequential subtrees. 1398With a numeric prefix argument N, kill N sequential subtrees.
1322@orgcmd{C-c C-x M-w,org-copy-subtree} 1399@orgcmd{C-c C-x M-w,org-copy-subtree}
1323Copy subtree to kill ring. With a numeric prefix argument N, copy the N 1400Copy subtree to kill ring. With a numeric prefix argument N, copy the N
@@ -1362,6 +1439,8 @@ sorting will be case-sensitive. With two @kbd{C-u C-u} prefixes, duplicate
1362entries will also be removed. 1439entries will also be removed.
1363@orgcmd{C-x n s,org-narrow-to-subtree} 1440@orgcmd{C-x n s,org-narrow-to-subtree}
1364Narrow buffer to current subtree. 1441Narrow buffer to current subtree.
1442@orgcmd{C-x n b,org-narrow-to-block}
1443Narrow buffer to current block.
1365@orgcmd{C-x n w,widen} 1444@orgcmd{C-x n w,widen}
1366Widen buffer to remove narrowing. 1445Widen buffer to remove narrowing.
1367@orgcmd{C-c *,org-toggle-heading} 1446@orgcmd{C-c *,org-toggle-heading}
@@ -1396,7 +1475,7 @@ functionality.
1396@vindex org-show-following-heading 1475@vindex org-show-following-heading
1397@vindex org-show-siblings 1476@vindex org-show-siblings
1398@vindex org-show-entry-below 1477@vindex org-show-entry-below
1399An important feature of Org-mode is the ability to construct @emph{sparse 1478An important feature of Org mode is the ability to construct @emph{sparse
1400trees} for selected information in an outline tree, so that the entire 1479trees} for selected information in an outline tree, so that the entire
1401document is folded as much as possible, but the selected information is made 1480document is folded as much as possible, but the selected information is made
1402visible along with the headline structure above it@footnote{See also the 1481visible along with the headline structure above it@footnote{See also the
@@ -1405,7 +1484,7 @@ variables @code{org-show-hierarchy-above}, @code{org-show-following-heading},
1405control on how much context is shown around each match.}. Just try it out 1484control on how much context is shown around each match.}. Just try it out
1406and you will see immediately how it works. 1485and you will see immediately how it works.
1407 1486
1408Org-mode contains several commands creating such trees, all these 1487Org mode contains several commands creating such trees, all these
1409commands can be accessed through a dispatcher: 1488commands can be accessed through a dispatcher:
1410 1489
1411@table @asis 1490@table @asis
@@ -1413,7 +1492,7 @@ commands can be accessed through a dispatcher:
1413This prompts for an extra key to select a sparse-tree creating command. 1492This prompts for an extra key to select a sparse-tree creating command.
1414@orgcmd{C-c / r,org-occur} 1493@orgcmd{C-c / r,org-occur}
1415@vindex org-remove-highlights-with-change 1494@vindex org-remove-highlights-with-change
1416Occur. Prompts for a regexp and shows a sparse tree with all matches. If 1495Prompts for a regexp and shows a sparse tree with all matches. If
1417the match is in a headline, the headline is made visible. If the match is in 1496the match is in a headline, the headline is made visible. If the match is in
1418the body of an entry, headline and body are made visible. In order to 1497the body of an entry, headline and body are made visible. In order to
1419provide minimal context, also the full hierarchy of headlines above the match 1498provide minimal context, also the full hierarchy of headlines above the match
@@ -1423,8 +1502,13 @@ editing command@footnote{This depends on the option
1423@code{org-remove-highlights-with-change}}, or by pressing @kbd{C-c C-c}. 1502@code{org-remove-highlights-with-change}}, or by pressing @kbd{C-c C-c}.
1424When called with a @kbd{C-u} prefix argument, previous highlights are kept, 1503When called with a @kbd{C-u} prefix argument, previous highlights are kept,
1425so several calls to this command can be stacked. 1504so several calls to this command can be stacked.
1505@orgcmdkkc{M-g n,M-g M-n,next-error}
1506Jump to the next sparse tree match in this buffer.
1507@orgcmdkkc{M-g p,M-g M-p,previous-error}
1508Jump to the previous sparse tree match in this buffer.
1426@end table 1509@end table
1427 1510
1511
1428@noindent 1512@noindent
1429@vindex org-agenda-custom-commands 1513@vindex org-agenda-custom-commands
1430For frequently used sparse trees of specific search strings, you can 1514For frequently used sparse trees of specific search strings, you can
@@ -1472,44 +1556,47 @@ Org knows ordered lists, unordered lists, and description lists.
1472@emph{Unordered} list items start with @samp{-}, @samp{+}, or 1556@emph{Unordered} list items start with @samp{-}, @samp{+}, or
1473@samp{*}@footnote{When using @samp{*} as a bullet, lines must be indented or 1557@samp{*}@footnote{When using @samp{*} as a bullet, lines must be indented or
1474they will be seen as top-level headlines. Also, when you are hiding leading 1558they will be seen as top-level headlines. Also, when you are hiding leading
1475stars to get a clean outline view, plain list items starting with a star are 1559stars to get a clean outline view, plain list items starting with a star may
1476visually indistinguishable from true headlines. In short: even though 1560be hard to distinguish from true headlines. In short: even though @samp{*}
1477@samp{*} is supported, it may be better to not use it for plain list items.} 1561is supported, it may be better to not use it for plain list items.} as
1478as bullets. 1562bullets.
1479@item 1563@item
1480@vindex org-plain-list-ordered-item-terminator 1564@vindex org-plain-list-ordered-item-terminator
1565@vindex org-alphabetical-lists
1481@emph{Ordered} list items start with a numeral followed by either a period or 1566@emph{Ordered} list items start with a numeral followed by either a period or
1482a right parenthesis@footnote{You can filter out any of them by configuring 1567a right parenthesis@footnote{You can filter out any of them by configuring
1483@code{org-plain-list-ordered-item-terminator}.}, such as @samp{1.} or 1568@code{org-plain-list-ordered-item-terminator}.}, such as @samp{1.} or
1484@samp{1)}. If you want a list to start with a different value (e.g. 20), start 1569@samp{1)}@footnote{You can also get @samp{a.}, @samp{A.}, @samp{a)} and
1485the text of the item with @code{[@@20]}@footnote{If there's a checkbox in the 1570@samp{A)} by configuring @code{org-alphabetical-lists}. To minimize
1486item, the cookie must be put @emph{before} the checkbox.}. Those constructs 1571confusion with normal text, those are limited to one character only. Beyond
1487can be used in any item of the list in order to enforce a particular 1572that limit, bullets will automatically fallback to numbers.}. If you want a
1488numbering. 1573list to start with a different value (e.g.@: 20), start the text of the item
1574with @code{[@@20]}@footnote{If there's a checkbox in the item, the cookie
1575must be put @emph{before} the checkbox. If you have activated alphabetical
1576lists, you can also use counters like @code{[@@b]}.}. Those constructs can
1577be used in any item of the list in order to enforce a particular numbering.
1489@item 1578@item
1490@emph{Description} list items are unordered list items, and contain the 1579@emph{Description} list items are unordered list items, and contain the
1491separator @samp{ :: } to separate the description @emph{term} from the 1580separator @samp{ :: } to distinguish the description @emph{term} from the
1492description. 1581description.
1493@end itemize 1582@end itemize
1494 1583
1495Items belonging to the same list must have the same indentation on the first 1584Items belonging to the same list must have the same indentation on the first
1496line. In particular, if an ordered list reaches number @samp{10.}, then the 1585line. In particular, if an ordered list reaches number @samp{10.}, then the
14972--digit numbers must be written left-aligned with the other numbers in the 15862--digit numbers must be written left-aligned with the other numbers in the
1498list. 1587list. An item ends before the next line that is less or equally indented
1588than its bullet/number.
1499 1589
1500@vindex org-list-ending-method 1590@vindex org-list-ending-method
1501@vindex org-list-end-regexp 1591@vindex org-list-end-regexp
1502@vindex org-empty-line-terminates-plain-lists 1592@vindex org-empty-line-terminates-plain-lists
1503Two methods@footnote{To disable either of them, configure 1593Two methods@footnote{To disable either of them, configure
1504@code{org-list-ending-method}.} are provided to terminate lists. A list ends 1594@code{org-list-ending-method}.} are provided to terminate lists. A list ends
1505before the next line that is indented like the bullet/number or less, or it 1595whenever every item has ended, which means before any line less or equally
1506ends before two blank lines@footnote{See also 1596indented than items at top level. It also ends before two blank
1507@code{org-empty-line-terminates-plain-lists}.}. In both cases, all levels of 1597lines@footnote{See also @code{org-empty-line-terminates-plain-lists}.}. In
1508the list are closed@footnote{So you cannot have a sublist, some text and then 1598that case, all items are closed. For finer control, you can end lists with
1509another sublist while still in the same top-level list item. This used to be 1599any pattern set in @code{org-list-end-regexp}. Here is an example:
1510possible, but it was only supported in the HTML exporter and difficult to
1511manage with automatic indentation.}. For finer control, you can end lists
1512with any pattern set in @code{org-list-end-regexp}. Here is an example:
1513 1600
1514@example 1601@example
1515@group 1602@group
@@ -1520,8 +1607,8 @@ with any pattern set in @code{org-list-end-regexp}. Here is an example:
1520 + this was already my favorite scene in the book 1607 + this was already my favorite scene in the book
1521 + I really like Miranda Otto. 1608 + I really like Miranda Otto.
1522 3. Peter Jackson being shot by Legolas 1609 3. Peter Jackson being shot by Legolas
1523 He makes a really funny face when it happens.
1524 - on DVD only 1610 - on DVD only
1611 He makes a really funny face when it happens.
1525 But in the end, no individual scenes matter but the film as a whole. 1612 But in the end, no individual scenes matter but the film as a whole.
1526 Important actors in this film are: 1613 Important actors in this film are:
1527 - @b{Elijah Wood} :: He plays Frodo 1614 - @b{Elijah Wood} :: He plays Frodo
@@ -1536,13 +1623,15 @@ XEmacs, you should use Kyle E. Jones' @file{filladapt.el}. To turn this on,
1536put into @file{.emacs}: @code{(require 'filladapt)}}, and by exporting them 1623put into @file{.emacs}: @code{(require 'filladapt)}}, and by exporting them
1537properly (@pxref{Exporting}). Since indentation is what governs the 1624properly (@pxref{Exporting}). Since indentation is what governs the
1538structure of these lists, many structural constructs like @code{#+BEGIN_...} 1625structure of these lists, many structural constructs like @code{#+BEGIN_...}
1539blocks can be indented to signal that they should be considered as a list 1626blocks can be indented to signal that they belong to a particular item.
1540item.
1541 1627
1542@vindex org-list-demote-modify-bullet 1628@vindex org-list-demote-modify-bullet
1629@vindex org-list-indent-offset
1543If you find that using a different bullet for a sub-list (than that used for 1630If you find that using a different bullet for a sub-list (than that used for
1544the current list-level) improves readability, customize the variable 1631the current list-level) improves readability, customize the variable
1545@code{org-list-demote-modify-bullet}. 1632@code{org-list-demote-modify-bullet}. To get a greater difference of
1633indentation between items and theirs sub-items, customize
1634@code{org-list-indent-offset}.
1546 1635
1547@vindex org-list-automatic-rules 1636@vindex org-list-automatic-rules
1548The following commands act on items when the cursor is in the first line of 1637The following commands act on items when the cursor is in the first line of
@@ -1553,62 +1642,63 @@ to disable them individually.
1553 1642
1554@table @asis 1643@table @asis
1555@orgcmd{@key{TAB},org-cycle} 1644@orgcmd{@key{TAB},org-cycle}
1645@cindex cycling, in plain lists
1556@vindex org-cycle-include-plain-lists 1646@vindex org-cycle-include-plain-lists
1557Items can be folded just like headline levels. Normally this works only if 1647Items can be folded just like headline levels. Normally this works only if
1558the cursor is on a plain list item. For more details, see the variable 1648the cursor is on a plain list item. For more details, see the variable
1559@code{org-cycle-include-plain-lists}. If this variable is set to 1649@code{org-cycle-include-plain-lists}. If this variable is set to
1560@code{integrate}, plain list items will be treated like low-level 1650@code{integrate}, plain list items will be treated like low-level
1561headlines. The level of an item is then given by the 1651headlines. The level of an item is then given by the indentation of the
1562indentation of the bullet/number. Items are always subordinate to real 1652bullet/number. Items are always subordinate to real headlines, however; the
1563headlines, however; the hierarchies remain completely separated. 1653hierarchies remain completely separated. In a new item with no text yet, the
1654first @key{TAB} demotes the item to become a child of the previous
1655one. Subsequent @key{TAB}s move the item to meaningful levels in the list
1656and eventually get it back to its initial position.
1564@orgcmd{M-@key{RET},org-insert-heading} 1657@orgcmd{M-@key{RET},org-insert-heading}
1565@vindex org-M-RET-may-split-line 1658@vindex org-M-RET-may-split-line
1566@vindex org-list-automatic-rules 1659@vindex org-list-automatic-rules
1567Insert new item at current level. With a prefix argument, force a new 1660Insert new item at current level. With a prefix argument, force a new
1568heading (@pxref{Structure editing}). If this command is used in the middle 1661heading (@pxref{Structure editing}). If this command is used in the middle
1569of a line, the line is @emph{split} and the rest of the line becomes the new 1662of an item, that item is @emph{split} in two, and the second part becomes the
1570item@footnote{If you do not want the line to be split, customize the variable 1663new item@footnote{If you do not want the item to be split, customize the
1571@code{org-M-RET-may-split-line}.}. If this command is executed @emph{before 1664variable @code{org-M-RET-may-split-line}.}. If this command is executed
1572an item's body}, the new item is created @emph{before} the current item. If the 1665@emph{before item's body}, the new item is created @emph{before} the current
1573command is executed in the white space before the text that is part of an 1666one.
1574item but does not contain the bullet, a bullet is added to the current line. 1667@end table
1575 1668
1576As a new item cannot be inserted in a structural construct (like an example 1669@table @kbd
1577or source code block) within a list, Org will instead insert it right before
1578the structure, or return an error.
1579@kindex M-S-@key{RET} 1670@kindex M-S-@key{RET}
1580@item M-S-@key{RET} 1671@item M-S-RET
1581Insert a new item with a checkbox (@pxref{Checkboxes}). 1672Insert a new item with a checkbox (@pxref{Checkboxes}).
1582@orgcmd{@key{TAB},org-cycle}
1583In a new item with no text yet, the first @key{TAB} demotes the item to
1584become a child of the previous one. Subsequent @key{TAB}s move the item to
1585meaningful levels in the list and eventually get it back to its initial
1586position.
1587@kindex S-@key{down} 1673@kindex S-@key{down}
1588@item S-@key{up} 1674@item S-up
1589@itemx S-@key{down} 1675@itemx S-down
1590@cindex shift-selection-mode 1676@cindex shift-selection-mode
1591@vindex org-support-shift-select 1677@vindex org-support-shift-select
1592Jump to the previous/next item in the current list, but only if 1678@vindex org-list-use-circular-motion
1679Jump to the previous/next item in the current list@footnote{If you want to
1680cycle around items that way, you may customize
1681@code{org-list-use-circular-motion}.}, but only if
1593@code{org-support-shift-select} is off. If not, you can still use paragraph 1682@code{org-support-shift-select} is off. If not, you can still use paragraph
1594jumping commands like @kbd{C-@key{up}} and @kbd{C-@key{down}} to quite 1683jumping commands like @kbd{C-@key{up}} and @kbd{C-@key{down}} to quite
1595similar effect. 1684similar effect.
1596@kindex M-S-@key{up} 1685@kindex M-@key{up}
1597@kindex M-S-@key{down} 1686@kindex M-@key{down}
1598@item M-S-@key{up} 1687@item M-up
1599@itemx M-S-@key{down} 1688@itemx M-down
1600Move the item including subitems up/down (swap with previous/next item 1689Move the item including subitems up/down@footnote{See
1601of same indentation). If the list is ordered, renumbering is 1690@code{org-liste-use-circular-motion} for a cyclic behavior.} (swap with
1602automatic. 1691previous/next item of same indentation). If the list is ordered, renumbering
1692is automatic.
1603@kindex M-@key{left} 1693@kindex M-@key{left}
1604@kindex M-@key{right} 1694@kindex M-@key{right}
1605@item M-@key{left} 1695@item M-left
1606@itemx M-@key{right} 1696@itemx M-right
1607Decrease/increase the indentation of an item, leaving children alone. 1697Decrease/increase the indentation of an item, leaving children alone.
1608@kindex M-S-@key{left} 1698@kindex M-S-@key{left}
1609@kindex M-S-@key{right} 1699@kindex M-S-@key{right}
1610@item M-S-@key{left} 1700@item M-S-left
1611@itemx M-S-@key{right} 1701@itemx M-S-right
1612Decrease/increase the indentation of the item, including subitems. 1702Decrease/increase the indentation of the item, including subitems.
1613Initially, the item tree is selected based on current indentation. When 1703Initially, the item tree is selected based on current indentation. When
1614these commands are executed several times in direct succession, the initially 1704these commands are executed several times in direct succession, the initially
@@ -1623,9 +1713,8 @@ influence on the text @emph{after} the list.
1623@kindex C-c C-c 1713@kindex C-c C-c
1624@item C-c C-c 1714@item C-c C-c
1625If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the 1715If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the
1626state of the checkbox. Also, makes sure that all the 1716state of the checkbox. In any case, verify bullets and indentation
1627items on this list level use the same bullet and that the numbering of list 1717consistency in the whole list.
1628items (if applicable) is correct.
1629@kindex C-c - 1718@kindex C-c -
1630@vindex org-plain-list-ordered-item-terminator 1719@vindex org-plain-list-ordered-item-terminator
1631@vindex org-list-automatic-rules 1720@vindex org-list-automatic-rules
@@ -1636,17 +1725,23 @@ depending on @code{org-plain-list-ordered-item-terminator}, the type of list,
1636and its position@footnote{See @code{bullet} rule in 1725and its position@footnote{See @code{bullet} rule in
1637@code{org-list-automatic-rules} for more information.}. With a numeric 1726@code{org-list-automatic-rules} for more information.}. With a numeric
1638prefix argument N, select the Nth bullet from this list. If there is an 1727prefix argument N, select the Nth bullet from this list. If there is an
1639active region when calling this, all lines will be converted to list items. 1728active region when calling this, selected text will be changed into an item.
1640If the first line already was a list item, any item markers will be removed 1729With a prefix argument, all lines will be converted to list items. If the
1641from the list. Finally, even without an active region, a normal line will be 1730first line already was a list item, any item marker will be removed from the
1731list. Finally, even without an active region, a normal line will be
1642converted into a list item. 1732converted into a list item.
1643@kindex C-c * 1733@kindex C-c *
1644@item C-c * 1734@item C-c *
1645Turn a plain list item into a headline (so that it becomes a subheading at 1735Turn a plain list item into a headline (so that it becomes a subheading at
1646its location). @xref{Structure editing}, for a detailed explanation. 1736its location). @xref{Structure editing}, for a detailed explanation.
1737@kindex C-c C-*
1738@item C-c C-*
1739Turn the whole plain list into a subtree of the current heading. Checkboxes
1740(@pxref{Checkboxes}) will become TODO (resp. DONE) keywords when unchecked
1741(resp. checked).
1647@kindex S-@key{left} 1742@kindex S-@key{left}
1648@kindex S-@key{right} 1743@kindex S-@key{right}
1649@item S-@key{left}/@key{right} 1744@item S-left/right
1650@vindex org-support-shift-select 1745@vindex org-support-shift-select
1651This command also cycles bullet styles when the cursor in on the bullet or 1746This command also cycles bullet styles when the cursor in on the bullet or
1652anywhere in an item line, details depending on 1747anywhere in an item line, details depending on
@@ -1665,7 +1760,7 @@ numerically, alphabetically, by time, or by custom function.
1665 1760
1666@vindex org-drawers 1761@vindex org-drawers
1667Sometimes you want to keep information associated with an entry, but you 1762Sometimes you want to keep information associated with an entry, but you
1668normally don't want to see it. For this, Org-mode has @emph{drawers}. 1763normally don't want to see it. For this, Org mode has @emph{drawers}.
1669Drawers need to be configured with the variable 1764Drawers need to be configured with the variable
1670@code{org-drawers}@footnote{You can define drawers on a per-file basis 1765@code{org-drawers}@footnote{You can define drawers on a per-file basis
1671with a line like @code{#+DRAWERS: HIDDEN PROPERTIES STATE}}. Drawers 1766with a line like @code{#+DRAWERS: HIDDEN PROPERTIES STATE}}. Drawers
@@ -1675,7 +1770,7 @@ look like this:
1675** This is a headline 1770** This is a headline
1676 Still outside the drawer 1771 Still outside the drawer
1677 :DRAWERNAME: 1772 :DRAWERNAME:
1678 This is inside the drawer. 1773 This is inside the drawer.
1679 :END: 1774 :END:
1680 After the drawer. 1775 After the drawer.
1681@end example 1776@end example
@@ -1683,7 +1778,7 @@ look like this:
1683Visibility cycling (@pxref{Visibility cycling}) on the headline will hide and 1778Visibility cycling (@pxref{Visibility cycling}) on the headline will hide and
1684show the entry, but keep the drawer collapsed to a single line. In order to 1779show the entry, but keep the drawer collapsed to a single line. In order to
1685look inside the drawer, you need to move the cursor to the drawer line and 1780look inside the drawer, you need to move the cursor to the drawer line and
1686press @key{TAB} there. Org-mode uses the @code{PROPERTIES} drawer for 1781press @key{TAB} there. Org mode uses the @code{PROPERTIES} drawer for
1687storing properties (@pxref{Properties and Columns}), and you can also arrange 1782storing properties (@pxref{Properties and Columns}), and you can also arrange
1688for state change notes (@pxref{Tracking TODO state changes}) and clock times 1783for state change notes (@pxref{Tracking TODO state changes}) and clock times
1689(@pxref{Clocking work time}) to be stored in a drawer @code{LOGBOOK}. If you 1784(@pxref{Clocking work time}) to be stored in a drawer @code{LOGBOOK}. If you
@@ -1700,7 +1795,7 @@ Add a time-stamped note to the LOGBOOK drawer.
1700 1795
1701@vindex org-hide-block-startup 1796@vindex org-hide-block-startup
1702@cindex blocks, folding 1797@cindex blocks, folding
1703Org-mode uses begin...end blocks for various purposes from including source 1798Org mode uses begin...end blocks for various purposes from including source
1704code examples (@pxref{Literal examples}) to capturing time logging 1799code examples (@pxref{Literal examples}) to capturing time logging
1705information (@pxref{Clocking work time}). These blocks can be folded and 1800information (@pxref{Clocking work time}). These blocks can be folded and
1706unfolded by pressing TAB in the begin line. You can also get all blocks 1801unfolded by pressing TAB in the begin line. You can also get all blocks
@@ -1718,10 +1813,10 @@ or on a per-file basis by using
1718@section Footnotes 1813@section Footnotes
1719@cindex footnotes 1814@cindex footnotes
1720 1815
1721Org-mode supports the creation of footnotes. In contrast to the 1816Org mode supports the creation of footnotes. In contrast to the
1722@file{footnote.el} package, Org-mode's footnotes are designed for work on a 1817@file{footnote.el} package, Org mode's footnotes are designed for work on a
1723larger document, not only for one-off documents like emails. The basic 1818larger document, not only for one-off documents like emails. The basic
1724syntax is similar to the one used by @file{footnote.el}, i.e. a footnote is 1819syntax is similar to the one used by @file{footnote.el}, i.e.@: a footnote is
1725defined in a paragraph that is started by a footnote marker in square 1820defined in a paragraph that is started by a footnote marker in square
1726brackets in column 0, no indentation allowed. If you need a paragraph break 1821brackets in column 0, no indentation allowed. If you need a paragraph break
1727inside a footnote, use the @LaTeX{} idiom @samp{\par}. The footnote reference 1822inside a footnote, use the @LaTeX{} idiom @samp{\par}. The footnote reference
@@ -1733,11 +1828,11 @@ The Org homepage[fn:1] now looks a lot better than it used to.
1733[fn:1] The link is: http://orgmode.org 1828[fn:1] The link is: http://orgmode.org
1734@end example 1829@end example
1735 1830
1736Org-mode extends the number-based syntax to @emph{named} footnotes and 1831Org mode extends the number-based syntax to @emph{named} footnotes and
1737optional inline definition. Using plain numbers as markers (as 1832optional inline definition. Using plain numbers as markers (as
1738@file{footnote.el} does) is supported for backward compatibility, but not 1833@file{footnote.el} does) is supported for backward compatibility, but not
1739encouraged because of possible conflicts with @LaTeX{} snippets (@pxref{Embedded 1834encouraged because of possible conflicts with @LaTeX{} snippets (@pxref{Embedded
1740LaTeX}). Here are the valid references: 1835@LaTeX{}}). Here are the valid references:
1741 1836
1742@table @code 1837@table @code
1743@item [1] 1838@item [1]
@@ -1798,7 +1893,7 @@ S @r{Short for first @code{r}, then @code{s} action.}
1798n @r{Normalize the footnotes by collecting all definitions (including} 1893n @r{Normalize the footnotes by collecting all definitions (including}
1799 @r{inline definitions) into a special section, and then numbering them} 1894 @r{inline definitions) into a special section, and then numbering them}
1800 @r{in sequence. The references will then also be numbers. This is} 1895 @r{in sequence. The references will then also be numbers. This is}
1801 @r{meant to be the final step before finishing a document (e.g. sending} 1896 @r{meant to be the final step before finishing a document (e.g.@: sending}
1802 @r{off an email). The exporters do this automatically, and so could} 1897 @r{off an email). The exporters do this automatically, and so could}
1803 @r{something like @code{message-send-hook}.} 1898 @r{something like @code{message-send-hook}.}
1804d @r{Delete the footnote at point, and all definitions of and references} 1899d @r{Delete the footnote at point, and all definitions of and references}
@@ -1827,15 +1922,15 @@ you can use the usual commands to follow these links.
1827@cindex Orgstruct mode 1922@cindex Orgstruct mode
1828@cindex minor mode for structure editing 1923@cindex minor mode for structure editing
1829 1924
1830If you like the intuitive way the Org-mode structure editing and list 1925If you like the intuitive way the Org mode structure editing and list
1831formatting works, you might want to use these commands in other modes like 1926formatting works, you might want to use these commands in other modes like
1832Text mode or Mail mode as well. The minor mode @code{orgstruct-mode} makes 1927Text mode or Mail mode as well. The minor mode @code{orgstruct-mode} makes
1833this possible. Toggle the mode with @kbd{M-x orgstruct-mode}, or 1928this possible. Toggle the mode with @kbd{M-x orgstruct-mode}, or
1834turn it on by default, for example in Mail mode, with one of: 1929turn it on by default, for example in Message mode, with one of:
1835 1930
1836@lisp 1931@lisp
1837(add-hook 'mail-mode-hook 'turn-on-orgstruct) 1932(add-hook 'message-mode-hook 'turn-on-orgstruct)
1838(add-hook 'mail-mode-hook 'turn-on-orgstruct++) 1933(add-hook 'message-mode-hook 'turn-on-orgstruct++)
1839@end lisp 1934@end lisp
1840 1935
1841When this mode is active and the cursor is on a line that looks to Org like a 1936When this mode is active and the cursor is on a line that looks to Org like a
@@ -1875,10 +1970,11 @@ calculator).
1875@section The built-in table editor 1970@section The built-in table editor
1876@cindex table editor, built-in 1971@cindex table editor, built-in
1877 1972
1878Org makes it easy to format tables in plain ASCII. Any line with 1973Org makes it easy to format tables in plain ASCII. Any line with @samp{|} as
1879@samp{|} as the first non-whitespace character is considered part of a 1974the first non-whitespace character is considered part of a table. @samp{|}
1880table. @samp{|} is also the column separator. A table might look like 1975is also the column separator@footnote{To insert a vertical bar into a table
1881this: 1976field, use @code{\vert} or, inside a word @code{abc\vert@{@}def}.}. A table
1977might look like this:
1882 1978
1883@example 1979@example
1884| Name | Phone | Age | 1980| Name | Phone | Age |
@@ -1919,7 +2015,7 @@ unpredictable for you, configure the variables
1919@table @kbd 2015@table @kbd
1920@tsubheading{Creation and conversion} 2016@tsubheading{Creation and conversion}
1921@orgcmd{C-c |,org-table-create-or-convert-from-region} 2017@orgcmd{C-c |,org-table-create-or-convert-from-region}
1922Convert the active region to table. If every line contains at least one 2018Convert the active region to table. If every line contains at least one
1923TAB character, the function assumes that the material is tab separated. 2019TAB character, the function assumes that the material is tab separated.
1924If every line contains a comma, comma-separated values (CSV) are assumed. 2020If every line contains a comma, comma-separated values (CSV) are assumed.
1925If not, lines are split at whitespace into fields. You can use a prefix 2021If not, lines are split at whitespace into fields. You can use a prefix
@@ -1928,7 +2024,7 @@ C-u} forces TAB, and a numeric argument N indicates that at least N
1928consecutive spaces, or alternatively a TAB will be the separator. 2024consecutive spaces, or alternatively a TAB will be the separator.
1929@* 2025@*
1930If there is no active region, this command creates an empty Org 2026If there is no active region, this command creates an empty Org
1931table. But it's easier just to start typing, like 2027table. But it is easier just to start typing, like
1932@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}. 2028@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}.
1933 2029
1934@tsubheading{Re-aligning and field motion} 2030@tsubheading{Re-aligning and field motion}
@@ -2043,7 +2139,10 @@ increment. This key is also used by shift-selection and related modes
2043Edit the current field in a separate window. This is useful for fields that 2139Edit the current field in a separate window. This is useful for fields that
2044are not fully visible (@pxref{Column width and alignment}). When called with 2140are not fully visible (@pxref{Column width and alignment}). When called with
2045a @kbd{C-u} prefix, just make the full field visible, so that it can be 2141a @kbd{C-u} prefix, just make the full field visible, so that it can be
2046edited in place. 2142edited in place. When called with two @kbd{C-u} prefixes, make the editor
2143window follow the cursor through the table and always show the current
2144field. The follow mode exits automatically when the cursor leaves the table,
2145or when you repeat this command with @kbd{C-u C-u C-c `}.
2047@c 2146@c
2048@item M-x org-table-import 2147@item M-x org-table-import
2049Import a file as a table. The table should be TAB or whitespace 2148Import a file as a table. The table should be TAB or whitespace
@@ -2187,10 +2286,10 @@ If you like the intuitive way the Org table editor works, you
2187might also want to use it in other modes like Text mode or Mail mode. 2286might also want to use it in other modes like Text mode or Mail mode.
2188The minor mode Orgtbl mode makes this possible. You can always toggle 2287The minor mode Orgtbl mode makes this possible. You can always toggle
2189the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for 2288the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for
2190example in mail mode, use 2289example in Message mode, use
2191 2290
2192@lisp 2291@lisp
2193(add-hook 'mail-mode-hook 'turn-on-orgtbl) 2292(add-hook 'message-mode-hook 'turn-on-orgtbl)
2194@end lisp 2293@end lisp
2195 2294
2196Furthermore, with some special setup, it is possible to maintain tables 2295Furthermore, with some special setup, it is possible to maintain tables
@@ -2219,11 +2318,12 @@ formula, moving these references by arrow keys
2219* References:: How to refer to another field or range 2318* References:: How to refer to another field or range
2220* Formula syntax for Calc:: Using Calc to compute stuff 2319* Formula syntax for Calc:: Using Calc to compute stuff
2221* Formula syntax for Lisp:: Writing formulas in Emacs Lisp 2320* Formula syntax for Lisp:: Writing formulas in Emacs Lisp
2222* Field formulas:: Formulas valid for a single field 2321* Durations and time values:: How to compute durations and time values
2322* Field and range formulas:: Formula for specific (ranges of) fields
2223* Column formulas:: Formulas valid for an entire column 2323* Column formulas:: Formulas valid for an entire column
2224* Editing and debugging formulas:: Fixing formulas 2324* Editing and debugging formulas:: Fixing formulas
2225* Updating the table:: Recomputing all dependent fields 2325* Updating the table:: Recomputing all dependent fields
2226* Advanced features:: Field names, parameters and automatic recalc 2326* Advanced features:: Field and column names, parameters and automatic recalc
2227@end menu 2327@end menu
2228 2328
2229@node References, Formula syntax for Calc, The spreadsheet, The spreadsheet 2329@node References, Formula syntax for Calc, The spreadsheet, The spreadsheet
@@ -2243,35 +2343,42 @@ field, or press @kbd{C-c @}} to toggle the display of a grid.
2243Formulas can reference the value of another field in two ways. Like in 2343Formulas can reference the value of another field in two ways. Like in
2244any other spreadsheet, you may reference fields with a letter/number 2344any other spreadsheet, you may reference fields with a letter/number
2245combination like @code{B3}, meaning the 2nd field in the 3rd row. 2345combination like @code{B3}, meaning the 2nd field in the 3rd row.
2246@c Such references are always fixed to that field, they don't change 2346@vindex org-table-use-standard-references
2247@c when you copy and paste a formula to a different field. So 2347However, Org prefers@footnote{Org will understand references typed by the
2248@c Org's @code{B3} behaves like @code{$B$3} in other spreadsheets. 2348user as @samp{B4}, but it will not use this syntax when offering a formula
2249 2349for editing. You can customize this behavior using the variable
2250@noindent 2350@code{org-table-use-standard-references}.} to use another, more general
2251Org also uses another, more general operator that looks like this: 2351representation that looks like this:
2252@example 2352@example
2253@@@var{row}$@var{column} 2353@@@var{row}$@var{column}
2254@end example 2354@end example
2255 2355
2256@noindent 2356Column specifications can be absolute like @code{$1},
2257Column references can be absolute like @samp{1}, @samp{2},...@samp{@var{N}}, 2357@code{$2},...@code{$@var{N}}, or relative to the current column (i.e.@: the
2258or relative to the current column like @samp{+1} or @samp{-2}. 2358column of the field which is being computed) like @code{$+1} or @code{$-2}.
2259 2359@code{$<} and @code{$>} are immutable references to the first and last
2260The row specification only counts data lines and ignores horizontal 2360column, respectively, and you can use @code{$>>>} to indicate the third
2261separator lines (hlines). You can use absolute row numbers 2361column from the right.
2262@samp{1}...@samp{@var{N}}, and row numbers relative to the current row like 2362
2263@samp{+3} or @samp{-1}. Or specify the row relative to one of the 2363The row specification only counts data lines and ignores horizontal separator
2264hlines: @samp{I} refers to the first hline@footnote{Note that only 2364lines (hlines). Like with columns, you can use absolute row numbers
2265hlines are counted that @emph{separate} table lines. If the table 2365@code{@@1}, @code{@@2},...@code{@@@var{N}}, and row numbers relative to the
2266starts with a hline above the header, it does not count.}, @samp{II} to 2366current row like @code{@@+3} or @code{@@-1}. @code{@@<} and @code{@@>} are
2267the second, etc@. @samp{-I} refers to the first such line above the 2367immutable references the first and last@footnote{For backward compatibility
2268current line, @samp{+I} to the first such line below the current line. 2368you can also use special names like @code{$LR5} and @code{$LR12} to refer in
2269You can also write @samp{III+2} which is the second data line after the 2369a stable way to the 5th and 12th field in the last row of the table.
2270third hline in the table. 2370However, this syntax is deprecated, it should not be used for new documents.
2271 2371Use @code{@@>$} instead.} row in the table, respectively. You may also
2272@samp{0} refers to the current row and column. Also, if you omit 2372specify the row relative to one of the hlines: @code{@@I} refers to the first
2273either the column or the row part of the reference, the current 2373hline, @code{@@II} to the second, etc@. @code{@@-I} refers to the first such
2274row/column is implied. 2374line above the current line, @code{@@+I} to the first such line below the
2375current line. You can also write @code{@@III+2} which is the second data line
2376after the third hline in the table.
2377
2378@code{@@0} and @code{$0} refer to the current row and column, respectively,
2379i.e. to the row/column for the field being computed. Also, if you omit
2380either the column or the row part of the reference, the current row/column is
2381implied.
2275 2382
2276Org's references with @emph{unsigned} numbers are fixed references 2383Org's references with @emph{unsigned} numbers are fixed references
2277in the sense that if you use the same reference in the formula for two 2384in the sense that if you use the same reference in the formula for two
@@ -2280,20 +2387,15 @@ Org's references with @emph{signed} numbers are floating
2280references because the same reference operator can reference different 2387references because the same reference operator can reference different
2281fields depending on the field being calculated by the formula. 2388fields depending on the field being calculated by the formula.
2282 2389
2283As a special case, references like @samp{$LR5} and @samp{$LR12} can be used
2284to refer in a stable way to the 5th and 12th field in the last row of the
2285table.
2286
2287Here are a few examples: 2390Here are a few examples:
2288 2391
2289@example 2392@example
2290@@2$3 @r{2nd row, 3rd column} 2393@@2$3 @r{2nd row, 3rd column (same as @code{C2})}
2291C2 @r{same as previous} 2394$5 @r{column 5 in the current row (same as @code{E&})}
2292$5 @r{column 5 in the current row}
2293E& @r{same as previous}
2294@@2 @r{current column, row 2} 2395@@2 @r{current column, row 2}
2295@@-1$-3 @r{the field one row up, three columns to the left} 2396@@-1$-3 @r{the field one row up, three columns to the left}
2296@@-I$2 @r{field just under hline above current row, column 2} 2397@@-I$2 @r{field just under hline above current row, column 2}
2398@@>$5 @r{field in the last row, in column 5}
2297@end example 2399@end example
2298 2400
2299@subsubheading Range references 2401@subsubheading Range references
@@ -2308,11 +2410,12 @@ format at least for the first field (i.e the reference must start with
2308@samp{@@} in order to be interpreted correctly). Examples: 2410@samp{@@} in order to be interpreted correctly). Examples:
2309 2411
2310@example 2412@example
2311$1..$3 @r{First three fields in the current row.} 2413$1..$3 @r{first three fields in the current row}
2312$P..$Q @r{Range, using column names (see under Advanced)} 2414$P..$Q @r{range, using column names (see under Advanced)}
2313@@2$1..@@4$3 @r{6 fields between these two fields.} 2415$<<<..$>> @r{start in third column, continue to the one but last}
2314A2..C4 @r{Same as above.} 2416@@2$1..@@4$3 @r{6 fields between these two fields (same as @code{A2..C4})}
2315@@-1$-2..@@-1 @r{3 numbers from the column to the left, 2 up to current row} 2417@@-1$-2..@@-1 @r{3 numbers from the column to the left, 2 up to current row}
2418@@I..II @r{between first and second hline, short for @code{@@I..@@II}}
2316@end example 2419@end example
2317 2420
2318@noindent Range references return a vector of values that can be fed 2421@noindent Range references return a vector of values that can be fed
@@ -2339,7 +2442,7 @@ $3 = remote(FOO, @@@@#$2) @r{copy column 2 from table FOO into}
2339@end example 2442@end example
2340 2443
2341@noindent For the second example, table FOO must have at least as many rows 2444@noindent For the second example, table FOO must have at least as many rows
2342as the current table. Inefficient@footnote{The computation time scales as 2445as the current table. Note that this is inefficient@footnote{The computation time scales as
2343O(N^2) because table FOO is parsed for each field to be copied.} for large 2446O(N^2) because table FOO is parsed for each field to be copied.} for large
2344number of rows. 2447number of rows.
2345 2448
@@ -2440,7 +2543,6 @@ n3 s3 e2 f4 @r{Normal, scientific, engineering, or fixed}
2440D R @r{angle modes: degrees, radians} 2543D R @r{angle modes: degrees, radians}
2441F S @r{fraction and symbolic modes} 2544F S @r{fraction and symbolic modes}
2442N @r{interpret all fields as numbers, use 0 for non-numbers} 2545N @r{interpret all fields as numbers, use 0 for non-numbers}
2443T @r{force text interpretation}
2444E @r{keep empty fields in ranges} 2546E @r{keep empty fields in ranges}
2445L @r{literal} 2547L @r{literal}
2446@end example 2548@end example
@@ -2474,10 +2576,13 @@ taylor($3,x=7,2) @r{Taylor series of $3, at x=7, second degree}
2474Calc also contains a complete set of logical operations. For example 2576Calc also contains a complete set of logical operations. For example
2475 2577
2476@example 2578@example
2477if($1<20,teen,string("")) @r{``teen'' if age $1 less than 20, else empty} 2579if($1<20,teen,string("")) @r{"teen" if age $1 less than 20, else empty}
2478@end example 2580@end example
2479 2581
2480@node Formula syntax for Lisp, Field formulas, Formula syntax for Calc, The spreadsheet 2582Note that you can also use two org-specific flags @code{T} and @code{t} for
2583durations computations @ref{Durations and time values}.
2584
2585@node Formula syntax for Lisp, Durations and time values, Formula syntax for Calc, The spreadsheet
2481@subsection Emacs Lisp forms as formulas 2586@subsection Emacs Lisp forms as formulas
2482@cindex Lisp forms, as table formulas 2587@cindex Lisp forms, as table formulas
2483 2588
@@ -2496,7 +2601,7 @@ you provide the @samp{L} flag, all fields will be interpolated literally,
2496without quotes. I.e., if you want a reference to be interpreted as a string 2601without quotes. I.e., if you want a reference to be interpreted as a string
2497by the Lisp form, enclose the reference operator itself in double-quotes, 2602by the Lisp form, enclose the reference operator itself in double-quotes,
2498like @code{"$3"}. Ranges are inserted as space-separated fields, so you can 2603like @code{"$3"}. Ranges are inserted as space-separated fields, so you can
2499+embed them in list or vector syntax. Here are a few examples---note how the 2604embed them in list or vector syntax. Here are a few examples---note how the
2500@samp{N} mode is used when we do computations in Lisp: 2605@samp{N} mode is used when we do computations in Lisp:
2501 2606
2502@example 2607@example
@@ -2508,31 +2613,64 @@ like @code{"$3"}. Ranges are inserted as space-separated fields, so you can
2508 '(apply '+ '($1..$4));N 2613 '(apply '+ '($1..$4));N
2509@end example 2614@end example
2510 2615
2511@node Field formulas, Column formulas, Formula syntax for Lisp, The spreadsheet 2616@node Durations and time values, Field and range formulas, Formula syntax for Lisp, The spreadsheet
2512@subsection Field formulas 2617@subsection Durations and time values
2618@cindex Duration, computing
2619@cindex Time, computing
2620@vindex org-table-duration-custom-format
2621
2622If you want to compute time values use the @code{T} flag, either in Calc
2623formulas or Elisp formulas:
2624
2625@example
2626@group
2627 | Task 1 | Task 2 | Total |
2628 |---------+----------+----------|
2629 | 2:12 | 1:47 | 03:59:00 |
2630 | 3:02:20 | -2:07:00 | 0.92 |
2631 #+TBLFM: @@2$3=$1+$2;T::@@3$3=$1+$2;t
2632@end group
2633@end example
2634
2635Input duration values must be of the form @code{[HH:MM[:SS]}, where seconds
2636are optional. With the @code{T} flag, computed durations will be displayed
2637as @code{[HH:MM:SS} (see the first formula above). With the @code{t} flag,
2638computed durations will be displayed according to the value of the variable
2639@code{org-table-duration-custom-format}, which defaults to @code{'hours} and
2640will display the result as a fraction of hours (see the second formula in the
2641example above).
2642
2643Negative duration values can be manipulated as well, and integers will be
2644considered as seconds in addition and subtraction.
2645
2646@node Field and range formulas, Column formulas, Durations and time values, The spreadsheet
2647@subsection Field and range formulas
2513@cindex field formula 2648@cindex field formula
2649@cindex range formula
2514@cindex formula, for individual table field 2650@cindex formula, for individual table field
2651@cindex formula, for range of fields
2515 2652
2516To assign a formula to a particular field, type it directly into the 2653To assign a formula to a particular field, type it directly into the field,
2517field, preceded by @samp{:=}, for example @samp{:=$1+$2}. When you 2654preceded by @samp{:=}, for example @samp{:=vsum(@@II..III)}. When you press
2518press @key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in 2655@key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in the field,
2519the field, the formula will be stored as the formula for this field, 2656the formula will be stored as the formula for this field, evaluated, and the
2520evaluated, and the current field replaced with the result. 2657current field will be replaced with the result.
2521 2658
2522@cindex #+TBLFM 2659@cindex #+TBLFM
2523Formulas are stored in a special line starting with @samp{#+TBLFM:} 2660Formulas are stored in a special line starting with @samp{#+TBLFM:} directly
2524directly below the table. If you type the equation in the 4th field of 2661below the table. If you type the equation in the 4th field of the 3rd data
2525the 3rd data line in the table, the formula will look like 2662line in the table, the formula will look like @samp{@@3$4=$1+$2}. When
2526@samp{@@3$4=$1+$2}. When inserting/deleting/swapping column and rows 2663inserting/deleting/swapping column and rows with the appropriate commands,
2527with the appropriate commands, @i{absolute references} (but not relative 2664@i{absolute references} (but not relative ones) in stored formulas are
2528ones) in stored formulas are modified in order to still reference the 2665modified in order to still reference the same field. To avoid this from
2529same field. Of course this is not true if you edit the table structure 2666happening, in particular in range references, anchor ranges at the table
2530with normal editing commands---then you must fix the equations yourself. 2667borders (using @code{@@<}, @code{@@>}, @code{$<}, @code{$>}), or at hlines
2531The left-hand side of a formula may also be a named field (@pxref{Advanced 2668using the @code{@@I} notation. Automatic adaptation of field references does
2532features}), or a last-row reference like @samp{$LR3}. 2669of cause not happen if you edit the table structure with normal editing
2533 2670commands---then you must fix the equations yourself.
2534Instead of typing an equation into the field, you may also use the 2671
2535following command 2672Instead of typing an equation into the field, you may also use the following
2673command
2536 2674
2537@table @kbd 2675@table @kbd
2538@orgcmd{C-u C-c =,org-table-eval-formula} 2676@orgcmd{C-u C-c =,org-table-eval-formula}
@@ -2541,17 +2679,38 @@ formula with default taken from the @samp{#+TBLFM:} line, applies
2541it to the current field, and stores it. 2679it to the current field, and stores it.
2542@end table 2680@end table
2543 2681
2544@node Column formulas, Editing and debugging formulas, Field formulas, The spreadsheet 2682The left-hand side of a formula can also be a special expression in order to
2683assign the formula to a number of different fields. There is no keyboard
2684shortcut to enter such range formulas. To add them, use the formula editor
2685(@pxref{Editing and debugging formulas}) or edit the @code{#+TBLFM:} line
2686directly.
2687
2688@table @code
2689@item $2=
2690Column formula, valid for the entire column. This is so common that Org
2691treats these formulas in a special way, see @ref{Column formulas}.
2692@item @@3=
2693Row formula, applies to all fields in the specified row. @code{@@>=} means
2694the last row.
2695@item @@1$2..@@4$3=
2696Range formula, applies to all fields in the given rectangular range. This
2697can also be used to assign a formula to some but not all fields in a row.
2698@item $name=
2699Named field, see @ref{Advanced features}.
2700@end table
2701
2702@node Column formulas, Editing and debugging formulas, Field and range formulas, The spreadsheet
2545@subsection Column formulas 2703@subsection Column formulas
2546@cindex column formula 2704@cindex column formula
2547@cindex formula, for table column 2705@cindex formula, for table column
2548 2706
2549Often in a table, the same formula should be used for all fields in a 2707When you assign a formula to a simple column reference like @code{$3=}, the
2550particular column. Instead of having to copy the formula to all fields 2708same formula will be used in all fields of that column, with the following
2551in that column, Org allows you to assign a single formula to an entire 2709very convenient exceptions: (i) If the table contains horizontal separator
2552column. If the table contains horizontal separator hlines, everything 2710hlines, everything before the first such line is considered part of the table
2553before the first such line is considered part of the table @emph{header} 2711@emph{header} and will not be modified by column formulas. (ii) Fields that
2554and will not be modified by column formulas. 2712already get a value from a field/range formula will be left alone by column
2713formulas. These conditions make column formulas very easy to use.
2555 2714
2556To assign a formula to a column, type it directly into any field in the 2715To assign a formula to a column, type it directly into any field in the
2557column, preceded by an equal sign, like @samp{=$1+$2}. When you press 2716column, preceded by an equal sign, like @samp{=$1+$2}. When you press
@@ -2560,9 +2719,9 @@ the formula will be stored as the formula for the current column, evaluated
2560and the current field replaced with the result. If the field contains only 2719and the current field replaced with the result. If the field contains only
2561@samp{=}, the previously stored formula for this column is used. For each 2720@samp{=}, the previously stored formula for this column is used. For each
2562column, Org will only remember the most recently used formula. In the 2721column, Org will only remember the most recently used formula. In the
2563@samp{#+TBLFM:} line, column formulas will look like @samp{$4=$1+$2}. The left-hand 2722@samp{#+TBLFM:} line, column formulas will look like @samp{$4=$1+$2}. The
2564side of a column formula cannot currently be the name of column, it 2723left-hand side of a column formula can not be the name of column, it must be
2565must be the numeric column reference. 2724the numeric column reference or @code{$>}.
2566 2725
2567Instead of typing an equation into the field, you may also use the 2726Instead of typing an equation into the field, you may also use the
2568following command: 2727following command:
@@ -2572,7 +2731,7 @@ following command:
2572Install a new formula for the current column and replace current field with 2731Install a new formula for the current column and replace current field with
2573the result of the formula. The command prompts for a formula, with default 2732the result of the formula. The command prompts for a formula, with default
2574taken from the @samp{#+TBLFM} line, applies it to the current field and 2733taken from the @samp{#+TBLFM} line, applies it to the current field and
2575stores it. With a numeric prefix argument(e.g. @kbd{C-5 C-c =}) the command 2734stores it. With a numeric prefix argument(e.g.@: @kbd{C-5 C-c =}) the command
2576will apply it to that many consecutive fields in the current column. 2735will apply it to that many consecutive fields in the current column.
2577@end table 2736@end table
2578 2737
@@ -2593,7 +2752,7 @@ if possible. If you prefer to only work with the internal format (like
2593@table @kbd 2752@table @kbd
2594@orgcmdkkc{C-c =,C-u C-c =,org-table-eval-formula} 2753@orgcmdkkc{C-c =,C-u C-c =,org-table-eval-formula}
2595Edit the formula associated with the current column/field in the 2754Edit the formula associated with the current column/field in the
2596minibuffer. See @ref{Column formulas}, and @ref{Field formulas}. 2755minibuffer. See @ref{Column formulas}, and @ref{Field and range formulas}.
2597@orgcmd{C-u C-u C-c =,org-table-eval-formula} 2756@orgcmd{C-u C-u C-c =,org-table-eval-formula}
2598Re-insert the active formula (either a 2757Re-insert the active formula (either a
2599field formula, or a column formula) into the current field, so that you 2758field formula, or a column formula) into the current field, so that you
@@ -2696,7 +2855,7 @@ following commands:
2696@table @kbd 2855@table @kbd
2697@orgcmd{C-c *,org-table-recalculate} 2856@orgcmd{C-c *,org-table-recalculate}
2698Recalculate the current row by first applying the stored column formulas 2857Recalculate the current row by first applying the stored column formulas
2699from left to right, and all field formulas in the current row. 2858from left to right, and all field/range formulas in the current row.
2700@c 2859@c
2701@kindex C-u C-c * 2860@kindex C-u C-c *
2702@item C-u C-c * 2861@item C-u C-c *
@@ -2721,9 +2880,12 @@ dependencies.
2721@node Advanced features, , Updating the table, The spreadsheet 2880@node Advanced features, , Updating the table, The spreadsheet
2722@subsection Advanced features 2881@subsection Advanced features
2723 2882
2724If you want the recalculation of fields to happen automatically, or if 2883If you want the recalculation of fields to happen automatically, or if you
2725you want to be able to assign @i{names} to fields and columns, you need 2884want to be able to assign @i{names}@footnote{Such names must start by an
2726to reserve the first column of the table for special marking characters. 2885alphabetic character and use only alphanumeric/underscore characters.} to
2886fields and columns, you need to reserve the first column of the table for
2887special marking characters.
2888
2727@table @kbd 2889@table @kbd
2728@orgcmd{C-#,org-table-rotate-recalc-marks} 2890@orgcmd{C-#,org-table-rotate-recalc-marks}
2729Rotate the calculation mark in first column through the states @samp{ }, 2891Rotate the calculation mark in first column through the states @samp{ },
@@ -2849,7 +3011,7 @@ Further control over the labels, type, content, and appearance of plots can
2849be exercised through the @code{#+PLOT:} lines preceding a table. See below 3011be exercised through the @code{#+PLOT:} lines preceding a table. See below
2850for a complete list of Org-plot options. For more information and examples 3012for a complete list of Org-plot options. For more information and examples
2851see the Org-plot tutorial at 3013see the Org-plot tutorial at
2852@uref{http://orgmode.org/worg/org-tutorials/org-plot.php}. 3014@uref{http://orgmode.org/worg/org-tutorials/org-plot.html}.
2853 3015
2854@subsubheading Plot Options 3016@subsubheading Plot Options
2855 3017
@@ -2874,7 +3036,7 @@ Specify whether the plot will be @code{2d}, @code{3d}, or @code{grid}.
2874 3036
2875@item with 3037@item with
2876Specify a @code{with} option to be inserted for every col being plotted 3038Specify a @code{with} option to be inserted for every col being plotted
2877(e.g. @code{lines}, @code{points}, @code{boxes}, @code{impulses}, etc...). 3039(e.g.@: @code{lines}, @code{points}, @code{boxes}, @code{impulses}, etc...).
2878Defaults to @code{lines}. 3040Defaults to @code{lines}.
2879 3041
2880@item file 3042@item file
@@ -2892,7 +3054,7 @@ When plotting @code{3d} or @code{grid} types, set this to @code{t} to graph a
2892flat mapping rather than a @code{3d} slope. 3054flat mapping rather than a @code{3d} slope.
2893 3055
2894@item timefmt 3056@item timefmt
2895Specify format of Org-mode timestamps as they will be parsed by Gnuplot. 3057Specify format of Org mode timestamps as they will be parsed by Gnuplot.
2896Defaults to @samp{%Y-%m-%d-%H:%M:%S}. 3058Defaults to @samp{%Y-%m-%d-%H:%M:%S}.
2897 3059
2898@item script 3060@item script
@@ -2976,7 +3138,7 @@ or with a mouse click (@pxref{Handling links}). Links to custom IDs will
2976point to the corresponding headline. The preferred match for a text link is 3138point to the corresponding headline. The preferred match for a text link is
2977a @i{dedicated target}: the same string in double angular brackets. Targets 3139a @i{dedicated target}: the same string in double angular brackets. Targets
2978may be located anywhere; sometimes it is convenient to put them into a 3140may be located anywhere; sometimes it is convenient to put them into a
2979comment line. For example 3141comment line. For example
2980 3142
2981@example 3143@example
2982# <<My Target>> 3144# <<My Target>>
@@ -3055,11 +3217,19 @@ file:papers/last.pdf @r{file, relative path}
3055./papers/last.pdf @r{same as above} 3217./papers/last.pdf @r{same as above}
3056file:/myself@@some.where:papers/last.pdf @r{file, path on remote machine} 3218file:/myself@@some.where:papers/last.pdf @r{file, path on remote machine}
3057/myself@@some.where:papers/last.pdf @r{same as above} 3219/myself@@some.where:papers/last.pdf @r{same as above}
3058file:sometextfile::NNN @r{file with line number to jump to} 3220file:sometextfile::NNN @r{file, jump to line number}
3059file:projects.org @r{another Org file} 3221file:projects.org @r{another Org file}
3060file:projects.org::some words @r{text search in Org file} 3222file:projects.org::some words @r{text search in Org file}@footnote{
3223The actual behavior of the search will depend on the value of
3224the variable @code{org-link-search-must-match-exact-headline}. If its value
3225is nil, then a fuzzy text search will be done. If it is t, then only the
3226exact headline will be matched. If the value is @code{'query-to-create},
3227then an exact headline will be searched; if it is not found, then the user
3228will be queried to create it.}
3061file:projects.org::*task title @r{heading search in Org file} 3229file:projects.org::*task title @r{heading search in Org file}
3062docview:papers/last.pdf::NNN @r{open file in doc-view mode at page NNN} 3230file+sys:/path/to/file @r{open via OS, like double-click}
3231file+emacs:/path/to/file @r{force opening by Emacs}
3232docview:papers/last.pdf::NNN @r{open in doc-view mode at page}
3063id:B7423F4D-2E8A-471B-8810-C40F074717E9 @r{Link to heading by ID} 3233id:B7423F4D-2E8A-471B-8810-C40F074717E9 @r{Link to heading by ID}
3064news:comp.emacs @r{Usenet link} 3234news:comp.emacs @r{Usenet link}
3065mailto:adent@@galaxy.net @r{Mail link} 3235mailto:adent@@galaxy.net @r{Mail link}
@@ -3076,12 +3246,14 @@ gnus:group @r{Gnus group link}
3076gnus:group#id @r{Gnus article link} 3246gnus:group#id @r{Gnus article link}
3077bbdb:R.*Stallman @r{BBDB link (with regexp)} 3247bbdb:R.*Stallman @r{BBDB link (with regexp)}
3078irc:/irc.com/#emacs/bob @r{IRC link} 3248irc:/irc.com/#emacs/bob @r{IRC link}
3079info:org:External%20links @r{Info node link (with encoded space)} 3249info:org#External links @r{Info node link}
3080shell:ls *.org @r{A shell command} 3250shell:ls *.org @r{A shell command}
3081elisp:org-agenda @r{Interactive Elisp command} 3251elisp:org-agenda @r{Interactive Elisp command}
3082elisp:(find-file-other-frame "Elisp.org") @r{Elisp form to evaluate} 3252elisp:(find-file-other-frame "Elisp.org") @r{Elisp form to evaluate}
3083@end example 3253@end example
3084 3254
3255For customizing Org to add new link types @ref{Adding hyperlink types}.
3256
3085A link should be enclosed in double brackets and may contain a 3257A link should be enclosed in double brackets and may contain a
3086descriptive text to be displayed instead of the URL (@pxref{Link 3258descriptive text to be displayed instead of the URL (@pxref{Link
3087format}), for example: 3259format}), for example:
@@ -3120,10 +3292,12 @@ create a link. The link will be stored for later insertion into an Org
3120buffer (see below). What kind of link will be created depends on the current 3292buffer (see below). What kind of link will be created depends on the current
3121buffer: 3293buffer:
3122 3294
3123@b{Org-mode buffers}@* 3295@b{Org mode buffers}@*
3124For Org files, if there is a @samp{<<target>>} at the cursor, the link points 3296For Org files, if there is a @samp{<<target>>} at the cursor, the link points
3125to the target. Otherwise it points to the current headline, which will also 3297to the target. Otherwise it points to the current headline, which will also
3126be the description. 3298be the description@footnote{If the headline contains a timestamp, it will be
3299removed from the link and result in a wrong link -- you should avoid putting
3300timestamp in the headline.}.
3127 3301
3128@vindex org-link-to-org-use-id 3302@vindex org-link-to-org-use-id
3129@cindex property, CUSTOM_ID 3303@cindex property, CUSTOM_ID
@@ -3221,6 +3395,7 @@ link and description parts of the link.
3221@cindex following links 3395@cindex following links
3222@orgcmd{C-c C-o,org-open-at-point} 3396@orgcmd{C-c C-o,org-open-at-point}
3223@vindex org-file-apps 3397@vindex org-file-apps
3398@vindex org-link-frame-setup
3224Open link at point. This will launch a web browser for URLs (using 3399Open link at point. This will launch a web browser for URLs (using
3225@command{browse-url-at-point}), run VM/MH-E/Wanderlust/Rmail/Gnus/BBDB for 3400@command{browse-url-at-point}), run VM/MH-E/Wanderlust/Rmail/Gnus/BBDB for
3226the corresponding links, and execute the command in a shell link. When the 3401the corresponding links, and execute the command in a shell link. When the
@@ -3234,7 +3409,9 @@ Classification of files is based on file extension only. See option
3234visit the file with Emacs, use a @kbd{C-u} prefix. If you want to avoid 3409visit the file with Emacs, use a @kbd{C-u} prefix. If you want to avoid
3235opening in Emacs, use a @kbd{C-u C-u} prefix.@* 3410opening in Emacs, use a @kbd{C-u C-u} prefix.@*
3236If the cursor is on a headline, but not on a link, offer all links in the 3411If the cursor is on a headline, but not on a link, offer all links in the
3237headline and entry text. 3412headline and entry text. If you want to setup the frame configuration for
3413following links, customize @code{org-link-frame-setup}.
3414
3238@orgkey @key{RET} 3415@orgkey @key{RET}
3239@vindex org-return-follows-link 3416@vindex org-return-follows-link
3240When @code{org-return-follows-link} is set, @kbd{@key{RET}} will also follow 3417When @code{org-return-follows-link} is set, @kbd{@key{RET}} will also follow
@@ -3261,7 +3438,7 @@ variable @code{org-display-internal-link-with-indirect-buffer}}.
3261@cindex @code{inlineimages}, STARTUP keyword 3438@cindex @code{inlineimages}, STARTUP keyword
3262@cindex @code{noinlineimages}, STARTUP keyword 3439@cindex @code{noinlineimages}, STARTUP keyword
3263Toggle the inline display of linked images. Normally this will only inline 3440Toggle the inline display of linked images. Normally this will only inline
3264images that have no description part in the link, i.e. images that will also 3441images that have no description part in the link, i.e.@: images that will also
3265be inlined during export. When called with a prefix argument, also display 3442be inlined during export. When called with a prefix argument, also display
3266images that do have a link description. You can ask for inline images to be 3443images that do have a link description. You can ask for inline images to be
3267displayed at startup by configuring the variable 3444displayed at startup by configuring the variable
@@ -3270,7 +3447,7 @@ displayed at startup by configuring the variable
3270@orgcmd{C-c %,org-mark-ring-push} 3447@orgcmd{C-c %,org-mark-ring-push}
3271@cindex mark ring 3448@cindex mark ring
3272Push the current position onto the mark ring, to be able to return 3449Push the current position onto the mark ring, to be able to return
3273easily. Commands following an internal link do this automatically. 3450easily. Commands following an internal link do this automatically.
3274@c 3451@c
3275@orgcmd{C-c &,org-mark-ring-goto} 3452@orgcmd{C-c &,org-mark-ring-goto}
3276@cindex links, returning to 3453@cindex links, returning to
@@ -3288,8 +3465,8 @@ to @kbd{C-n} and @kbd{C-p}
3288@lisp 3465@lisp
3289(add-hook 'org-load-hook 3466(add-hook 'org-load-hook
3290 (lambda () 3467 (lambda ()
3291 (define-key 'org-mode-map "\C-n" 'org-next-link) 3468 (define-key org-mode-map "\C-n" 'org-next-link)
3292 (define-key 'org-mode-map "\C-p" 'org-previous-link))) 3469 (define-key org-mode-map "\C-p" 'org-previous-link)))
3293@end lisp 3470@end lisp
3294@end table 3471@end table
3295 3472
@@ -3363,7 +3540,7 @@ can define them in the file with
3363@noindent 3540@noindent
3364In-buffer completion (@pxref{Completion}) can be used after @samp{[} to 3541In-buffer completion (@pxref{Completion}) can be used after @samp{[} to
3365complete link abbreviations. You may also define a function 3542complete link abbreviations. You may also define a function
3366@code{org-PREFIX-complete-link} that implements special (e.g. completion) 3543@code{org-PREFIX-complete-link} that implements special (e.g.@: completion)
3367support for inserting such a link with @kbd{C-c C-l}. Such a function should 3544support for inserting such a link with @kbd{C-c C-l}. Such a function should
3368not accept any arguments, and return the full link with prefix. 3545not accept any arguments, and return the full link with prefix.
3369 3546
@@ -3375,7 +3552,7 @@ not accept any arguments, and return the full link with prefix.
3375File links can contain additional information to make Emacs jump to a 3552File links can contain additional information to make Emacs jump to a
3376particular location in the file when following a link. This can be a 3553particular location in the file when following a link. This can be a
3377line number or a search option after a double@footnote{For backward 3554line number or a search option after a double@footnote{For backward
3378compatibility, line numbers can also follow a single colon.} colon. For 3555compatibility, line numbers can also follow a single colon.} colon. For
3379example, when the command @kbd{C-c l} creates a link (@pxref{Handling 3556example, when the command @kbd{C-c l} creates a link (@pxref{Handling
3380links}) to a file, it encodes the words in the current line as a search 3557links}) to a file, it encodes the words in the current line as a search
3381string that can be used to find this line back later when following the 3558string that can be used to find this line back later when following the
@@ -3408,7 +3585,7 @@ Link to a heading with a @code{CUSTOM_ID} property
3408@item /regexp/ 3585@item /regexp/
3409Do a regular expression search for @code{regexp}. This uses the Emacs 3586Do a regular expression search for @code{regexp}. This uses the Emacs
3410command @code{occur} to list all matches in a separate window. If the 3587command @code{occur} to list all matches in a separate window. If the
3411target file is in Org-mode, @code{org-occur} is used to create a 3588target file is in Org mode, @code{org-occur} is used to create a
3412sparse tree with the matches. 3589sparse tree with the matches.
3413@c If the target file is a directory, 3590@c If the target file is a directory,
3414@c @code{grep} will be used to search all files in the directory. 3591@c @code{grep} will be used to search all files in the directory.
@@ -3447,7 +3624,7 @@ an implementation example. See the file @file{org-bibtex.el}.
3447@chapter TODO items 3624@chapter TODO items
3448@cindex TODO items 3625@cindex TODO items
3449 3626
3450Org-mode does not maintain TODO lists as separate documents@footnote{Of 3627Org mode does not maintain TODO lists as separate documents@footnote{Of
3451course, you can make a document that contains only long lists of TODO items, 3628course, you can make a document that contains only long lists of TODO items,
3452but this is not required.}. Instead, TODO items are an integral part of the 3629but this is not required.}. Instead, TODO items are an integral part of the
3453notes file, because TODO items usually come up while taking notes! With Org 3630notes file, because TODO items usually come up while taking notes! With Org
@@ -3456,7 +3633,7 @@ information is not duplicated, and the entire context from which the TODO
3456item emerged is always present. 3633item emerged is always present.
3457 3634
3458Of course, this technique for managing TODO items scatters them 3635Of course, this technique for managing TODO items scatters them
3459throughout your notes file. Org-mode compensates for this by providing 3636throughout your notes file. Org mode compensates for this by providing
3460methods to give you an overview of all the things that you have to do. 3637methods to give you an overview of all the things that you have to do.
3461 3638
3462@menu 3639@menu
@@ -3517,7 +3694,7 @@ entire buffer, but shows all TODO items (with not-DONE state) and the
3517headings hierarchy above them. With a prefix argument (or by using @kbd{C-c 3694headings hierarchy above them. With a prefix argument (or by using @kbd{C-c
3518/ T}), search for a specific TODO. You will be prompted for the keyword, and 3695/ T}), search for a specific TODO. You will be prompted for the keyword, and
3519you can also give a list of keywords like @code{KWD1|KWD2|...} to list 3696you can also give a list of keywords like @code{KWD1|KWD2|...} to list
3520entries that match any one of these keywords. With numeric prefix argument 3697entries that match any one of these keywords. With a numeric prefix argument
3521N, show the tree for the Nth keyword in the variable 3698N, show the tree for the Nth keyword in the variable
3522@code{org-todo-keywords}. With two prefix arguments, find all TODO states, 3699@code{org-todo-keywords}. With two prefix arguments, find all TODO states,
3523both un-done and done. 3700both un-done and done.
@@ -3542,7 +3719,7 @@ option @code{org-todo-state-tags-triggers} for details.
3542 3719
3543@vindex org-todo-keywords 3720@vindex org-todo-keywords
3544By default, marked TODO entries have one of only two states: TODO and 3721By default, marked TODO entries have one of only two states: TODO and
3545DONE. Org-mode allows you to classify TODO items in more complex ways 3722DONE. Org mode allows you to classify TODO items in more complex ways
3546with @emph{TODO keywords} (stored in @code{org-todo-keywords}). With 3723with @emph{TODO keywords} (stored in @code{org-todo-keywords}). With
3547special setup, the TODO keyword system can work differently in different 3724special setup, the TODO keyword system can work differently in different
3548files. 3725files.
@@ -3567,7 +3744,7 @@ TODO items in particular (@pxref{Tags}).
3567 3744
3568You can use TODO keywords to indicate different @emph{sequential} states 3745You can use TODO keywords to indicate different @emph{sequential} states
3569in the process of working on an item, for example@footnote{Changing 3746in the process of working on an item, for example@footnote{Changing
3570this variable only becomes effective after restarting Org-mode in a 3747this variable only becomes effective after restarting Org mode in a
3571buffer.}: 3748buffer.}:
3572 3749
3573@lisp 3750@lisp
@@ -3610,7 +3787,7 @@ be set up like this:
3610 3787
3611In this case, different keywords do not indicate a sequence, but rather 3788In this case, different keywords do not indicate a sequence, but rather
3612different types. So the normal work flow would be to assign a task to a 3789different types. So the normal work flow would be to assign a task to a
3613person, and later to mark it DONE. Org-mode supports this style by adapting 3790person, and later to mark it DONE. Org mode supports this style by adapting
3614the workings of the command @kbd{C-c C-t}@footnote{This is also true for the 3791the workings of the command @kbd{C-c C-t}@footnote{This is also true for the
3615@kbd{t} command in the timeline and agenda buffers.}. When used several 3792@kbd{t} command in the timeline and agenda buffers.}. When used several
3616times in succession, it will still cycle through all names, in order to first 3793times in succession, it will still cycle through all names, in order to first
@@ -3641,7 +3818,7 @@ like this:
3641 (sequence "|" "CANCELED"))) 3818 (sequence "|" "CANCELED")))
3642@end lisp 3819@end lisp
3643 3820
3644The keywords should all be different, this helps Org-mode to keep track 3821The keywords should all be different, this helps Org mode to keep track
3645of which subsequence should be used for a given entry. In this setup, 3822of which subsequence should be used for a given entry. In this setup,
3646@kbd{C-c C-t} only operates within a subsequence, so it switches from 3823@kbd{C-c C-t} only operates within a subsequence, so it switches from
3647@code{DONE} to (nothing) to @code{TODO}, and from @code{FIXED} to 3824@code{DONE} to (nothing) to @code{TODO}, and from @code{FIXED} to
@@ -3688,8 +3865,8 @@ key after each keyword, in parentheses. For example:
3688@end lisp 3865@end lisp
3689 3866
3690@vindex org-fast-tag-selection-include-todo 3867@vindex org-fast-tag-selection-include-todo
3691If you then press @code{C-c C-t} followed by the selection key, the entry 3868If you then press @kbd{C-c C-t} followed by the selection key, the entry
3692will be switched to this state. @key{SPC} can be used to remove any TODO 3869will be switched to this state. @kbd{SPC} can be used to remove any TODO
3693keyword from an entry.@footnote{Check also the variable 3870keyword from an entry.@footnote{Check also the variable
3694@code{org-fast-tag-selection-include-todo}, it allows you to change the TODO 3871@code{org-fast-tag-selection-include-todo}, it allows you to change the TODO
3695state through the tags interface (@pxref{Setting tags}), in case you like to 3872state through the tags interface (@pxref{Setting tags}), in case you like to
@@ -3738,9 +3915,9 @@ Remember that the keywords after the vertical bar (or the last keyword
3738if no bar is there) must always mean that the item is DONE (although you 3915if no bar is there) must always mean that the item is DONE (although you
3739may use a different word). After changing one of these lines, use 3916may use a different word). After changing one of these lines, use
3740@kbd{C-c C-c} with the cursor still in the line to make the changes 3917@kbd{C-c C-c} with the cursor still in the line to make the changes
3741known to Org-mode@footnote{Org-mode parses these lines only when 3918known to Org mode@footnote{Org mode parses these lines only when
3742Org-mode is activated after visiting a file. @kbd{C-c C-c} with the 3919Org mode is activated after visiting a file. @kbd{C-c C-c} with the
3743cursor in a line starting with @samp{#+} is simply restarting Org-mode 3920cursor in a line starting with @samp{#+} is simply restarting Org mode
3744for the current buffer.}. 3921for the current buffer.}.
3745 3922
3746@node Faces for TODO keywords, TODO dependencies, Per-file keywords, TODO extensions 3923@node Faces for TODO keywords, TODO dependencies, Per-file keywords, TODO extensions
@@ -3750,7 +3927,7 @@ for the current buffer.}.
3750@vindex org-todo @r{(face)} 3927@vindex org-todo @r{(face)}
3751@vindex org-done @r{(face)} 3928@vindex org-done @r{(face)}
3752@vindex org-todo-keyword-faces 3929@vindex org-todo-keyword-faces
3753Org-mode highlights TODO keywords with special faces: @code{org-todo} 3930Org mode highlights TODO keywords with special faces: @code{org-todo}
3754for keywords indicating that an item still has to be acted upon, and 3931for keywords indicating that an item still has to be acted upon, and
3755@code{org-done} for keywords indicating that an item is finished. If 3932@code{org-done} for keywords indicating that an item is finished. If
3756you are using more than 2 different states, you might want to use 3933you are using more than 2 different states, you might want to use
@@ -3766,7 +3943,7 @@ special faces for some of them. This can be done using the variable
3766@end lisp 3943@end lisp
3767 3944
3768While using a list with face properties as shown for CANCELED @emph{should} 3945While using a list with face properties as shown for CANCELED @emph{should}
3769work, this does not aways seem to be the case. If necessary, define a 3946work, this does not always seem to be the case. If necessary, define a
3770special face and use that. A string is interpreted as a color. The variable 3947special face and use that. A string is interpreted as a color. The variable
3771@code{org-faces-easy-properties} determines if that color is interpreted as a 3948@code{org-faces-easy-properties} determines if that color is interpreted as a
3772foreground or a background color. 3949foreground or a background color.
@@ -3796,7 +3973,7 @@ example:
3796 3973
3797* Parent 3974* Parent
3798 :PROPERTIES: 3975 :PROPERTIES:
3799 :ORDERED: t 3976 :ORDERED: t
3800 :END: 3977 :END:
3801** TODO a 3978** TODO a
3802** TODO b, needs to wait for (a) 3979** TODO b, needs to wait for (a)
@@ -3838,7 +4015,7 @@ module @file{org-depend.el}.
3838@cindex progress logging 4015@cindex progress logging
3839@cindex logging, of progress 4016@cindex logging, of progress
3840 4017
3841Org-mode can automatically record a timestamp and possibly a note when 4018Org mode can automatically record a timestamp and possibly a note when
3842you mark a TODO item as DONE, or even each time you change the state of 4019you mark a TODO item as DONE, or even each time you change the state of
3843a TODO item. This system is highly configurable, settings can be on a 4020a TODO item. This system is highly configurable, settings can be on a
3844per-keyword basis and can be localized to a file or even a subtree. For 4021per-keyword basis and can be localized to a file or even a subtree. For
@@ -3902,21 +4079,25 @@ behavior---the recommended drawer for this is called @code{LOGBOOK}. You can
3902also overrule the setting of this variable for a subtree by setting a 4079also overrule the setting of this variable for a subtree by setting a
3903@code{LOG_INTO_DRAWER} property. 4080@code{LOG_INTO_DRAWER} property.
3904 4081
3905Since it is normally too much to record a note for every state, Org-mode 4082Since it is normally too much to record a note for every state, Org mode
3906expects configuration on a per-keyword basis for this. This is achieved by 4083expects configuration on a per-keyword basis for this. This is achieved by
3907adding special markers @samp{!} (for a timestamp) and @samp{@@} (for a note) 4084adding special markers @samp{!} (for a timestamp) or @samp{@@} (for a note
3908in parentheses after each keyword. For example, with the setting 4085with timestamp) in parentheses after each keyword. For example, with the
4086setting
3909 4087
3910@lisp 4088@lisp
3911(setq org-todo-keywords 4089(setq org-todo-keywords
3912 '((sequence "TODO(t)" "WAIT(w@@/!)" "|" "DONE(d!)" "CANCELED(c@@)"))) 4090 '((sequence "TODO(t)" "WAIT(w@@/!)" "|" "DONE(d!)" "CANCELED(c@@)")))
3913@end lisp 4091@end lisp
3914 4092
4093To record a timestamp without a note for TODO keywords configured with
4094@samp{@@}, just type @kbd{C-c C-c} to enter a blank note when prompted.
4095
3915@noindent 4096@noindent
3916@vindex org-log-done 4097@vindex org-log-done
3917you not only define global TODO keywords and fast access keys, but also 4098you not only define global TODO keywords and fast access keys, but also
3918request that a time is recorded when the entry is set to 4099request that a time is recorded when the entry is set to
3919DONE@footnote{It is possible that Org-mode will record two timestamps 4100DONE@footnote{It is possible that Org mode will record two timestamps
3920when you are using both @code{org-log-done} and state change logging. 4101when you are using both @code{org-log-done} and state change logging.
3921However, it will never prompt for two notes---if you have configured 4102However, it will never prompt for two notes---if you have configured
3922both, the state change recording note will take precedence and cancel 4103both, the state change recording note will take precedence and cancel
@@ -3972,7 +4153,7 @@ called ``habits''. A habit has the following properties:
3972You have enabled the @code{habits} module by customizing the variable 4153You have enabled the @code{habits} module by customizing the variable
3973@code{org-modules}. 4154@code{org-modules}.
3974@item 4155@item
3975The habit is a TODO, with a TODO keyword representing an open state. 4156The habit is a TODO item, with a TODO keyword representing an open state.
3976@item 4157@item
3977The property @code{STYLE} is set to the value @code{habit}. 4158The property @code{STYLE} is set to the value @code{habit}.
3978@item 4159@item
@@ -3986,8 +4167,8 @@ syntax @samp{.+2d/3d}, which says that you want to do the task at least every
3986three days, but at most every two days. 4167three days, but at most every two days.
3987@item 4168@item
3988You must also have state logging for the @code{DONE} state enabled, in order 4169You must also have state logging for the @code{DONE} state enabled, in order
3989for historical data to be represented in the consistency graph. If it's not 4170for historical data to be represented in the consistency graph. If it is not
3990enabled it's not an error, but the consistency graphs will be largely 4171enabled it is not an error, but the consistency graphs will be largely
3991meaningless. 4172meaningless.
3992@end enumerate 4173@end enumerate
3993 4174
@@ -4045,7 +4226,7 @@ habits are displayed in the agenda.
4045@table @code 4226@table @code
4046@item org-habit-graph-column 4227@item org-habit-graph-column
4047The buffer column at which the consistency graph should be drawn. This will 4228The buffer column at which the consistency graph should be drawn. This will
4048overwrite any text in that column, so it's a good idea to keep your habits' 4229overwrite any text in that column, so it is a good idea to keep your habits'
4049titles brief and to the point. 4230titles brief and to the point.
4050@item org-habit-preceding-days 4231@item org-habit-preceding-days
4051The amount of history, in days before today, to appear in consistency graphs. 4232The amount of history, in days before today, to appear in consistency graphs.
@@ -4065,7 +4246,7 @@ which should only be done in certain contexts, for example.
4065@section Priorities 4246@section Priorities
4066@cindex priorities 4247@cindex priorities
4067 4248
4068If you use Org-mode extensively, you may end up with enough TODO items that 4249If you use Org mode extensively, you may end up with enough TODO items that
4069it starts to make sense to prioritize them. Prioritizing can be done by 4250it starts to make sense to prioritize them. Prioritizing can be done by
4070placing a @emph{priority cookie} into the headline of a TODO item, like this 4251placing a @emph{priority cookie} into the headline of a TODO item, like this
4071 4252
@@ -4075,11 +4256,11 @@ placing a @emph{priority cookie} into the headline of a TODO item, like this
4075 4256
4076@noindent 4257@noindent
4077@vindex org-priority-faces 4258@vindex org-priority-faces
4078By default, Org-mode supports three priorities: @samp{A}, @samp{B}, and 4259By default, Org mode supports three priorities: @samp{A}, @samp{B}, and
4079@samp{C}. @samp{A} is the highest priority. An entry without a cookie is 4260@samp{C}. @samp{A} is the highest priority. An entry without a cookie is
4080treated just like priority @samp{B}. Priorities make a difference only for 4261treated just like priority @samp{B}. Priorities make a difference only for
4081sorting in the agenda (@pxref{Weekly/daily agenda}); outside the agenda, they 4262sorting in the agenda (@pxref{Weekly/daily agenda}); outside the agenda, they
4082have no inherent meaning to Org-mode. The cookies can be highlighted with 4263have no inherent meaning to Org mode. The cookies can be highlighted with
4083special faces by customizing the variable @code{org-priority-faces}. 4264special faces by customizing the variable @code{org-priority-faces}.
4084 4265
4085Priorities can be attached to any outline node; they do not need to be TODO 4266Priorities can be attached to any outline node; they do not need to be TODO
@@ -4186,7 +4367,7 @@ large number of subtasks (@pxref{Checkboxes}).
4186 4367
4187@vindex org-list-automatic-rules 4368@vindex org-list-automatic-rules
4188Every item in a plain list@footnote{With the exception of description 4369Every item in a plain list@footnote{With the exception of description
4189lists. But you can allow it by modifying @code{org-list-automatic-rules} 4370lists. But you can allow it by modifying @code{org-list-automatic-rules}
4190accordingly.} (@pxref{Plain lists}) can be made into a checkbox by starting 4371accordingly.} (@pxref{Plain lists}) can be made into a checkbox by starting
4191it with the string @samp{[ ]}. This feature is similar to TODO items 4372it with the string @samp{[ ]}. This feature is similar to TODO items
4192(@pxref{TODO Items}), but is more lightweight. Checkboxes are not included 4373(@pxref{TODO Items}), but is more lightweight. Checkboxes are not included
@@ -4225,7 +4406,7 @@ be placed into a headline or into (the first line of) a plain list item.
4225Each cookie covers checkboxes of direct children structurally below the 4406Each cookie covers checkboxes of direct children structurally below the
4226headline/item on which the cookie appears@footnote{Set the variable 4407headline/item on which the cookie appears@footnote{Set the variable
4227@code{org-hierarchical-checkbox-statistics} if you want such cookies to 4408@code{org-hierarchical-checkbox-statistics} if you want such cookies to
4228represent the all checkboxes below the cookie, not just the direct 4409count all checkboxes below the cookie, not just those belonging to direct
4229children.}. You have to insert the cookie yourself by typing either 4410children.}. You have to insert the cookie yourself by typing either
4230@samp{[/]} or @samp{[%]}. With @samp{[/]} you get an @samp{n out of m} 4411@samp{[/]} or @samp{[%]}. With @samp{[/]} you get an @samp{n out of m}
4231result, as in the examples above. With @samp{[%]} you get information about 4412result, as in the examples above. With @samp{[%]} you get information about
@@ -4246,9 +4427,11 @@ off a box while there are unchecked boxes above it.
4246 4427
4247@table @kbd 4428@table @kbd
4248@orgcmd{C-c C-c,org-toggle-checkbox} 4429@orgcmd{C-c C-c,org-toggle-checkbox}
4249Toggle checkbox status or (with prefix arg) checkbox presence at point. With 4430Toggle checkbox status or (with prefix arg) checkbox presence at point.
4250double prefix argument, set it to @samp{[-]}, which is considered to be an 4431With a single prefix argument, add an empty checkbox or remove the current
4251intermediate state. 4432one@footnote{`C-u C-c C-c' on the @emph{first} item of a list with no checkbox
4433will add checkboxes to the rest of the list.}. With a double prefix argument, set it to @samp{[-]}, which is
4434considered to be an intermediate state.
4252@orgcmd{C-c C-x C-b,org-toggle-checkbox} 4435@orgcmd{C-c C-x C-b,org-toggle-checkbox}
4253Toggle checkbox status or (with prefix arg) checkbox presence at point. With 4436Toggle checkbox status or (with prefix arg) checkbox presence at point. With
4254double prefix argument, set it to @samp{[-]}, which is considered to be an 4437double prefix argument, set it to @samp{[-]}, which is considered to be an
@@ -4265,9 +4448,8 @@ this headline and the next (so @emph{not} the entire subtree).
4265If there is no active region, just toggle the checkbox at point. 4448If there is no active region, just toggle the checkbox at point.
4266@end itemize 4449@end itemize
4267@orgcmd{M-S-@key{RET},org-insert-todo-heading} 4450@orgcmd{M-S-@key{RET},org-insert-todo-heading}
4268Insert a new item with a checkbox. 4451Insert a new item with a checkbox. This works only if the cursor is already
4269This works only if the cursor is already in a plain list item 4452in a plain list item (@pxref{Plain lists}).
4270(@pxref{Plain lists}).
4271@orgcmd{C-c C-x o,org-toggle-ordered-property} 4453@orgcmd{C-c C-x o,org-toggle-ordered-property}
4272@vindex org-track-ordered-property-with-tag 4454@vindex org-track-ordered-property-with-tag
4273@cindex property, ORDERED 4455@cindex property, ORDERED
@@ -4283,8 +4465,7 @@ a @kbd{C-u} prefix, update the entire file. Checkbox statistic cookies are
4283updated automatically if you toggle checkboxes with @kbd{C-c C-c} and make 4465updated automatically if you toggle checkboxes with @kbd{C-c C-c} and make
4284new ones with @kbd{M-S-@key{RET}}. TODO statistics cookies update when 4466new ones with @kbd{M-S-@key{RET}}. TODO statistics cookies update when
4285changing TODO states. If you delete boxes/entries or add/change them by 4467changing TODO states. If you delete boxes/entries or add/change them by
4286hand, use this command to get things back into sync. Or simply toggle any 4468hand, use this command to get things back into sync.
4287entry twice (checkboxes with @kbd{C-c C-c}).
4288@end table 4469@end table
4289 4470
4290@node Tags, Properties and Columns, TODO Items, Top 4471@node Tags, Properties and Columns, TODO Items, Top
@@ -4295,7 +4476,7 @@ entry twice (checkboxes with @kbd{C-c C-c}).
4295@cindex sparse tree, tag based 4476@cindex sparse tree, tag based
4296 4477
4297An excellent way to implement labels and contexts for cross-correlating 4478An excellent way to implement labels and contexts for cross-correlating
4298information is to assign @i{tags} to headlines. Org-mode has extensive 4479information is to assign @i{tags} to headlines. Org mode has extensive
4299support for tags. 4480support for tags.
4300 4481
4301@vindex org-tag-faces 4482@vindex org-tag-faces
@@ -4374,7 +4555,7 @@ also a special command for inserting tags:
4374@orgcmd{C-c C-q,org-set-tags-command} 4555@orgcmd{C-c C-q,org-set-tags-command}
4375@cindex completion, of tags 4556@cindex completion, of tags
4376@vindex org-tags-column 4557@vindex org-tags-column
4377Enter new tags for the current headline. Org-mode will either offer 4558Enter new tags for the current headline. Org mode will either offer
4378completion or a special single-key interface for setting tags, see 4559completion or a special single-key interface for setting tags, see
4379below. After pressing @key{RET}, the tags will be inserted and aligned 4560below. After pressing @key{RET}, the tags will be inserted and aligned
4380to @code{org-tags-column}. When called with a @kbd{C-u} prefix, all 4561to @code{org-tags-column}. When called with a @kbd{C-u} prefix, all
@@ -4386,7 +4567,7 @@ When the cursor is in a headline, this does the same as @kbd{C-c C-q}.
4386@end table 4567@end table
4387 4568
4388@vindex org-tag-alist 4569@vindex org-tag-alist
4389Org will support tag insertion based on a @emph{list of tags}. By 4570Org supports tag insertion based on a @emph{list of tags}. By
4390default this list is constructed dynamically, containing all tags 4571default this list is constructed dynamically, containing all tags
4391currently used in the buffer. You may also globally specify a hard list 4572currently used in the buffer. You may also globally specify a hard list
4392of tags with the variable @code{org-tag-alist}. Finally you can set 4573of tags with the variable @code{org-tag-alist}. Finally you can set
@@ -4417,7 +4598,7 @@ by adding a STARTUP option line to that file:
4417#+STARTUP: noptag 4598#+STARTUP: noptag
4418@end example 4599@end example
4419 4600
4420By default Org-mode uses the standard minibuffer completion facilities for 4601By default Org mode uses the standard minibuffer completion facilities for
4421entering tags. However, it also implements another, quicker, tag selection 4602entering tags. However, it also implements another, quicker, tag selection
4422method called @emph{fast tag selection}. This allows you to select and 4603method called @emph{fast tag selection}. This allows you to select and
4423deselect tags with just a single key press. For this to work well you should 4604deselect tags with just a single key press. For this to work well you should
@@ -4498,6 +4679,8 @@ exclusive tags will turn off any other tags from that group.
4498@item @key{TAB} 4679@item @key{TAB}
4499Enter a tag in the minibuffer, even if the tag is not in the predefined 4680Enter a tag in the minibuffer, even if the tag is not in the predefined
4500list. You will be able to complete on all tags present in the buffer. 4681list. You will be able to complete on all tags present in the buffer.
4682You can also add several tags: just separate them with a comma.
4683
4501@kindex @key{SPC} 4684@kindex @key{SPC}
4502@item @key{SPC} 4685@item @key{SPC}
4503Clear all tags for this line. 4686Clear all tags for this line.
@@ -4548,7 +4731,7 @@ Once a system of tags has been set up, it can be used to collect related
4548information into special lists. 4731information into special lists.
4549 4732
4550@table @kbd 4733@table @kbd
4551@orgcmdkkc{C-c / m,C-c \,org-match-sparse-tree} 4734@orgcmdkkc{C-c / m,C-c \\,org-match-sparse-tree}
4552Create a sparse tree with all headlines matching a tags search. With a 4735Create a sparse tree with all headlines matching a tags search. With a
4553@kbd{C-u} prefix argument, ignore headlines that are not a TODO line. 4736@kbd{C-u} prefix argument, ignore headlines that are not a TODO line.
4554@orgcmd{C-c a m,org-tags-view} 4737@orgcmd{C-c a m,org-tags-view}
@@ -4574,25 +4757,26 @@ and properties. For a complete description with many examples, see
4574@chapter Properties and columns 4757@chapter Properties and columns
4575@cindex properties 4758@cindex properties
4576 4759
4577Properties are a set of key-value pairs associated with an entry. There 4760A property is a key-value pair associated with an entry. Properties can be
4578are two main applications for properties in Org-mode. First, properties 4761set so they are associated with a single entry, with every entry in a tree,
4579are like tags, but with a value. Second, you can use properties to 4762or with every entry in an Org mode file.
4580implement (very basic) database capabilities in an Org buffer. For 4763
4581an example of the first application, imagine maintaining a file where 4764There are two main applications for properties in Org mode. First,
4765properties are like tags, but with a value. Imagine maintaining a file where
4582you document bugs and plan releases for a piece of software. Instead of 4766you document bugs and plan releases for a piece of software. Instead of
4583using tags like @code{:release_1:}, @code{:release_2:}, one can use a 4767using tags like @code{:release_1:}, @code{:release_2:}, you can use a
4584property, say @code{:Release:}, that in different subtrees has different 4768property, say @code{:Release:}, that in different subtrees has different
4585values, such as @code{1.0} or @code{2.0}. For an example of the second 4769values, such as @code{1.0} or @code{2.0}. Second, you can use properties to
4586application of properties, imagine keeping track of your music CDs, 4770implement (very basic) database capabilities in an Org buffer. Imagine
4587where properties could be things such as the album, artist, date of 4771keeping track of your music CDs, where properties could be things such as the
4588release, number of tracks, and so on. 4772album, artist, date of release, number of tracks, and so on.
4589 4773
4590Properties can be conveniently edited and viewed in column view 4774Properties can be conveniently edited and viewed in column view
4591(@pxref{Column view}). 4775(@pxref{Column view}).
4592 4776
4593@menu 4777@menu
4594* Property syntax:: How properties are spelled out 4778* Property syntax:: How properties are spelled out
4595* Special properties:: Access to other Org-mode features 4779* Special properties:: Access to other Org mode features
4596* Property searches:: Matching property values 4780* Property searches:: Matching property values
4597* Property inheritance:: Passing values down the tree 4781* Property inheritance:: Passing values down the tree
4598* Column view:: Tabular viewing and editing 4782* Column view:: Tabular viewing and editing
@@ -4604,7 +4788,8 @@ Properties can be conveniently edited and viewed in column view
4604@cindex property syntax 4788@cindex property syntax
4605@cindex drawer, for properties 4789@cindex drawer, for properties
4606 4790
4607Properties are key-value pairs. They need to be inserted into a special 4791Properties are key-value pairs. When they are associated with a single entry
4792or with a tree they need to be inserted into a special
4608drawer (@pxref{Drawers}) with the name @code{PROPERTIES}. Each property 4793drawer (@pxref{Drawers}) with the name @code{PROPERTIES}. Each property
4609is specified on a single line, with the key (surrounded by colons) 4794is specified on a single line, with the key (surrounded by colons)
4610first, and the value after it. Here is an example: 4795first, and the value after it. Here is an example:
@@ -4622,6 +4807,10 @@ first, and the value after it. Here is an example:
4622 :END: 4807 :END:
4623@end example 4808@end example
4624 4809
4810Depending on the value of @code{org-use-property-inheritance}, a property set
4811this way will either be associated with a single entry, or the sub-tree
4812defined by the entry, see @ref{Property inheritance}.
4813
4625You may define the allowed values for a particular property @samp{:Xyz:} 4814You may define the allowed values for a particular property @samp{:Xyz:}
4626by setting a property @samp{:Xyz_ALL:}. This special property is 4815by setting a property @samp{:Xyz_ALL:}. This special property is
4627@emph{inherited}, so if you set it in a level 1 entry, it will apply to 4816@emph{inherited}, so if you set it in a level 1 entry, it will apply to
@@ -4646,6 +4835,37 @@ file, use a line like
4646#+PROPERTY: NDisks_ALL 1 2 3 4 4835#+PROPERTY: NDisks_ALL 1 2 3 4
4647@end example 4836@end example
4648 4837
4838If you want to add to the value of an existing property, append a @code{+} to
4839the property name. The following results in the property @code{var} having
4840the value ``foo=1 bar=2''.
4841@cindex property, +
4842@example
4843#+PROPERTY: var foo=1
4844#+PROPERTY: var+ bar=2
4845@end example
4846
4847It is also possible to add to the values of inherited properties. The
4848following results in the @code{genres} property having the value ``Classic
4849Baroque'' under the @code{Goldberg Variations} subtree.
4850@cindex property, +
4851@example
4852* CD collection
4853** Classic
4854 :PROPERTIES:
4855 :GENRES: Classic
4856 :END:
4857*** Goldberg Variations
4858 :PROPERTIES:
4859 :Title: Goldberg Variations
4860 :Composer: J.S. Bach
4861 :Artist: Glen Gould
4862 :Publisher: Deutsche Grammophon
4863 :NDisks: 1
4864 :GENRES+: Baroque
4865 :END:
4866@end example
4867Note that a property can only have one entry per Drawer.
4868
4649@vindex org-global-properties 4869@vindex org-global-properties
4650Property values set with the global variable 4870Property values set with the global variable
4651@code{org-global-properties} can be inherited by all entries in all 4871@code{org-global-properties} can be inherited by all entries in all
@@ -4655,7 +4875,7 @@ Org files.
4655The following commands help to work with properties: 4875The following commands help to work with properties:
4656 4876
4657@table @kbd 4877@table @kbd
4658@orgcmd{M-@key{TAB},org-complete} 4878@orgcmd{M-@key{TAB},pcomplete}
4659After an initial colon in a line, complete property keys. All keys used 4879After an initial colon in a line, complete property keys. All keys used
4660in the current file will be offered as possible completions. 4880in the current file will be offered as possible completions.
4661@orgcmd{C-c C-x p,org-set-property} 4881@orgcmd{C-c C-x p,org-set-property}
@@ -4686,11 +4906,11 @@ nearest column format definition.
4686@section Special properties 4906@section Special properties
4687@cindex properties, special 4907@cindex properties, special
4688 4908
4689Special properties provide an alternative access method to Org-mode 4909Special properties provide an alternative access method to Org mode features,
4690features, like the TODO state or the priority of an entry, discussed in the 4910like the TODO state or the priority of an entry, discussed in the previous
4691previous chapters. This interface exists so that you can include 4911chapters. This interface exists so that you can include these states in a
4692these states in a column view (@pxref{Column view}), or to use them in 4912column view (@pxref{Column view}), or to use them in queries. The following
4693queries. The following property names are special and should not be 4913property names are special and (except for @code{:CATEGORY:}) should not be
4694used as keys in the properties drawer: 4914used as keys in the properties drawer:
4695 4915
4696@cindex property, special, TODO 4916@cindex property, special, TODO
@@ -4707,6 +4927,7 @@ used as keys in the properties drawer:
4707@cindex property, special, BLOCKED 4927@cindex property, special, BLOCKED
4708@c guessing that ITEM is needed in this area; also, should this list be sorted? 4928@c guessing that ITEM is needed in this area; also, should this list be sorted?
4709@cindex property, special, ITEM 4929@cindex property, special, ITEM
4930@cindex property, special, FILE
4710@example 4931@example
4711TODO @r{The TODO keyword of the entry.} 4932TODO @r{The TODO keyword of the entry.}
4712TAGS @r{The tags defined directly in the headline.} 4933TAGS @r{The tags defined directly in the headline.}
@@ -4719,9 +4940,10 @@ CLOSED @r{When was this entry closed?}
4719TIMESTAMP @r{The first keyword-less timestamp in the entry.} 4940TIMESTAMP @r{The first keyword-less timestamp in the entry.}
4720TIMESTAMP_IA @r{The first inactive timestamp in the entry.} 4941TIMESTAMP_IA @r{The first inactive timestamp in the entry.}
4721CLOCKSUM @r{The sum of CLOCK intervals in the subtree. @code{org-clock-sum}} 4942CLOCKSUM @r{The sum of CLOCK intervals in the subtree. @code{org-clock-sum}}
4722 @r{must be run first to compute the values.} 4943 @r{must be run first to compute the values in the current buffer.}
4723BLOCKED @r{"t" if task is currently blocked by children or siblings} 4944BLOCKED @r{"t" if task is currently blocked by children or siblings}
4724ITEM @r{The content of the entry.} 4945ITEM @r{The content of the entry.}
4946FILE @r{The filename the entry is located in.}
4725@end example 4947@end example
4726 4948
4727@node Property searches, Property inheritance, Special properties, Properties and Columns 4949@node Property searches, Property inheritance, Special properties, Properties and Columns
@@ -4766,9 +4988,9 @@ a regular expression and matched against the property values.
4766@cindex inheritance, of properties 4988@cindex inheritance, of properties
4767 4989
4768@vindex org-use-property-inheritance 4990@vindex org-use-property-inheritance
4769The outline structure of Org-mode documents lends itself to an 4991The outline structure of Org mode documents lends itself to an
4770inheritance model of properties: if the parent in a tree has a certain 4992inheritance model of properties: if the parent in a tree has a certain
4771property, the children can inherit this property. Org-mode does not 4993property, the children can inherit this property. Org mode does not
4772turn this on by default, because it can slow down property searches 4994turn this on by default, because it can slow down property searches
4773significantly and is often not needed. However, if you find inheritance 4995significantly and is often not needed. However, if you find inheritance
4774useful, you can turn it on by setting the variable 4996useful, you can turn it on by setting the variable
@@ -4779,7 +5001,7 @@ inherited properties. If a property has the value @samp{nil}, this is
4779interpreted as an explicit undefine of the property, so that inheritance 5001interpreted as an explicit undefine of the property, so that inheritance
4780search will stop at this value and return @code{nil}. 5002search will stop at this value and return @code{nil}.
4781 5003
4782Org-mode has a few properties for which inheritance is hard-coded, at 5004Org mode has a few properties for which inheritance is hard-coded, at
4783least for the special applications for which they are used: 5005least for the special applications for which they are used:
4784 5006
4785@cindex property, COLUMNS 5007@cindex property, COLUMNS
@@ -4810,7 +5032,7 @@ subtree (@pxref{Tracking TODO state changes}).
4810A great way to view and edit properties in an outline tree is 5032A great way to view and edit properties in an outline tree is
4811@emph{column view}. In column view, each outline node is turned into a 5033@emph{column view}. In column view, each outline node is turned into a
4812table row. Columns in this table provide access to properties of the 5034table row. Columns in this table provide access to properties of the
4813entries. Org-mode implements columns by overlaying a tabular structure 5035entries. Org mode implements columns by overlaying a tabular structure
4814over the headline of each item. While the headlines have been turned 5036over the headline of each item. While the headlines have been turned
4815into a table row, you can still change the visibility of the outline 5037into a table row, you can still change the visibility of the outline
4816tree. For example, you get a compact table by switching to CONTENTS 5038tree. For example, you get a compact table by switching to CONTENTS
@@ -4886,7 +5108,7 @@ optional. The individual parts have the following meaning:
4886@var{property} @r{The property that should be edited in this column.} 5108@var{property} @r{The property that should be edited in this column.}
4887 @r{Special properties representing meta data are allowed here} 5109 @r{Special properties representing meta data are allowed here}
4888 @r{as well (@pxref{Special properties})} 5110 @r{as well (@pxref{Special properties})}
4889@var{title} @r{The header text for the column. If omitted, the property} 5111@var{title} @r{The header text for the column. If omitted, the property}
4890 @r{name is used.} 5112 @r{name is used.}
4891@{@var{summary-type}@} @r{The summary type. If specified, the column values for} 5113@{@var{summary-type}@} @r{The summary type. If specified, the column values for}
4892 @r{parent nodes are computed from the children.} 5114 @r{parent nodes are computed from the children.}
@@ -4912,7 +5134,7 @@ optional. The individual parts have the following meaning:
4912 5134
4913@noindent 5135@noindent
4914Be aware that you can only have one summary type for any property you 5136Be aware that you can only have one summary type for any property you
4915include. Subsequent columns referencing the same property will all display the 5137include. Subsequent columns referencing the same property will all display the
4916same summary information. 5138same summary information.
4917 5139
4918The @code{est+} summary type requires further explanation. It is used for 5140The @code{est+} summary type requires further explanation. It is used for
@@ -4923,12 +5145,12 @@ of estimating a particular task will take 5 days, you might estimate it as
4923average at 5.5 days, but the first represents a more predictable delivery. 5145average at 5.5 days, but the first represents a more predictable delivery.
4924 5146
4925When combining a set of such estimates, simply adding the lows and highs 5147When combining a set of such estimates, simply adding the lows and highs
4926produces an unrealistically wide result. Instead, @code{est+} adds the 5148produces an unrealistically wide result. Instead, @code{est+} adds the
4927statistical mean and variance of the sub-tasks, generating a final estimate 5149statistical mean and variance of the sub-tasks, generating a final estimate
4928from the sum. For example, suppose you had ten tasks, each of which was 5150from the sum. For example, suppose you had ten tasks, each of which was
4929estimated at 0.5 to 2 days of work. Straight addition produces an estimate 5151estimated at 0.5 to 2 days of work. Straight addition produces an estimate
4930of 5 to 20 days, representing what to expect if everything goes either 5152of 5 to 20 days, representing what to expect if everything goes either
4931extremely well or extremely poorly. In contrast, @code{est+} estimates the 5153extremely well or extremely poorly. In contrast, @code{est+} estimates the
4932full job more realistically, at 10-15 days. 5154full job more realistically, at 10-15 days.
4933 5155
4934Here is an example for a complete columns definition, along with allowed 5156Here is an example for a complete columns definition, along with allowed
@@ -4944,7 +5166,7 @@ values.
4944 5166
4945@noindent 5167@noindent
4946The first column, @samp{%25ITEM}, means the first 25 characters of the 5168The first column, @samp{%25ITEM}, means the first 25 characters of the
4947item itself, i.e. of the headline. You probably always should start the 5169item itself, i.e.@: of the headline. You probably always should start the
4948column definition with the @samp{ITEM} specifier. The other specifiers 5170column definition with the @samp{ITEM} specifier. The other specifiers
4949create columns @samp{Owner} with a list of names as allowed values, for 5171create columns @samp{Owner} with a list of names as allowed values, for
4950@samp{Status} with four different possible values, and for a checkbox 5172@samp{Status} with four different possible values, and for a checkbox
@@ -5112,9 +5334,9 @@ property API}.
5112 5334
5113To assist project planning, TODO items can be labeled with a date and/or 5335To assist project planning, TODO items can be labeled with a date and/or
5114a time. The specially formatted string carrying the date and time 5336a time. The specially formatted string carrying the date and time
5115information is called a @emph{timestamp} in Org-mode. This may be a 5337information is called a @emph{timestamp} in Org mode. This may be a
5116little confusing because timestamp is often used as indicating when 5338little confusing because timestamp is often used as indicating when
5117something was created or last changed. However, in Org-mode this term 5339something was created or last changed. However, in Org mode this term
5118is used in a much wider sense. 5340is used in a much wider sense.
5119 5341
5120@menu 5342@menu
@@ -5137,17 +5359,20 @@ is used in a much wider sense.
5137@cindex scheduling 5359@cindex scheduling
5138 5360
5139A timestamp is a specification of a date (possibly with a time or a range of 5361A timestamp is a specification of a date (possibly with a time or a range of
5140times) in a special format, either @samp{<2003-09-16 Tue>} or 5362times) in a special format, either @samp{<2003-09-16 Tue>}@footnote{In this
5141@samp{<2003-09-16 Tue 09:39>} or @samp{<2003-09-16 Tue 5363simplest form, the day name is optional when you type the date yourself.
514212:00-12:30>}@footnote{This is inspired by the standard ISO 8601 date/time 5364However, any dates inserted or modified by Org will add that day name, for
5143format. To use an alternative format, see @ref{Custom time format}.}. A 5365reading convenience.} or @samp{<2003-09-16 Tue 09:39>} or @samp{<2003-09-16
5144timestamp can appear anywhere in the headline or body of an Org tree entry. 5366Tue 12:00-12:30>}@footnote{This is inspired by the standard ISO 8601
5145Its presence causes entries to be shown on specific dates in the agenda 5367date/time format. To use an alternative format, see @ref{Custom time
5146(@pxref{Weekly/daily agenda}). We distinguish: 5368format}.}. A timestamp can appear anywhere in the headline or body of an Org
5369tree entry. Its presence causes entries to be shown on specific dates in the
5370agenda (@pxref{Weekly/daily agenda}). We distinguish:
5147 5371
5148@table @var 5372@table @var
5149@item Plain timestamp; Event; Appointment 5373@item Plain timestamp; Event; Appointment
5150@cindex timestamp 5374@cindex timestamp
5375@cindex appointment
5151A simple timestamp just assigns a date/time to an item. This is just 5376A simple timestamp just assigns a date/time to an item. This is just
5152like writing down an appointment or event in a paper agenda. In the 5377like writing down an appointment or event in a paper agenda. In the
5153timeline and agenda displays, the headline of an entry associated with a 5378timeline and agenda displays, the headline of an entry associated with a
@@ -5170,13 +5395,23 @@ following will show up in the agenda every Wednesday:
5170@end example 5395@end example
5171 5396
5172@item Diary-style sexp entries 5397@item Diary-style sexp entries
5173For more complex date specifications, Org-mode supports using the 5398For more complex date specifications, Org mode supports using the special
5174special sexp diary entries implemented in the Emacs calendar/diary 5399sexp diary entries implemented in the Emacs calendar/diary
5175package. For example 5400package@footnote{When working with the standard diary sexp functions, you
5401need to be very careful with the order of the arguments. That order depend
5402evilly on the variable @code{calendar-date-style} (or, for older Emacs
5403versions, @code{european-calendar-style}). For example, to specify a date
5404December 12, 2005, the call might look like @code{(diary-date 12 1 2005)} or
5405@code{(diary-date 1 12 2005)} or @code{(diary-date 2005 12 1)}, depending on
5406the settings. This has been the source of much confusion. Org mode users
5407can resort to special versions of these functions like @code{org-date} or
5408@code{org-anniversary}. These work just like the corresponding @code{diary-}
5409functions, but with stable ISO order of arguments (year, month, day) wherever
5410applicable, independent of the value of @code{calendar-date-style}.}. For example
5176 5411
5177@example 5412@example
5178* The nerd meeting on every 2nd Thursday of the month 5413* The nerd meeting on every 2nd Thursday of the month
5179 <%%(diary-float t 4 2)> 5414 <%%(org-float t 4 2)>
5180@end example 5415@end example
5181 5416
5182@item Time/Date range 5417@item Time/Date range
@@ -5209,7 +5444,7 @@ angular ones. These timestamps are inactive in the sense that they do
5209@cindex creating timestamps 5444@cindex creating timestamps
5210@cindex timestamps, creating 5445@cindex timestamps, creating
5211 5446
5212For Org-mode to recognize timestamps, they need to be in the specific 5447For Org mode to recognize timestamps, they need to be in the specific
5213format. All commands listed below produce timestamps in the correct 5448format. All commands listed below produce timestamps in the correct
5214format. 5449format.
5215 5450
@@ -5233,6 +5468,9 @@ Like @kbd{C-c .} and @kbd{C-c !}, but use the alternative format which
5233contains date and time. The default time can be rounded to multiples of 5 5468contains date and time. The default time can be rounded to multiples of 5
5234minutes, see the option @code{org-time-stamp-rounding-minutes}. 5469minutes, see the option @code{org-time-stamp-rounding-minutes}.
5235@c 5470@c
5471@orgkey{C-c C-c}
5472Normalize timestamp, insert/fix day name if missing or wrong.
5473@c
5236@orgcmd{C-c <,org-date-from-calendar} 5474@orgcmd{C-c <,org-date-from-calendar}
5237Insert a timestamp corresponding to the cursor date in the Calendar. 5475Insert a timestamp corresponding to the cursor date in the Calendar.
5238@c 5476@c
@@ -5256,7 +5494,7 @@ like @samp{15:30-16:30}, modifying the first time will also shift the second,
5256shifting the time block with constant length. To change the length, modify 5494shifting the time block with constant length. To change the length, modify
5257the second time. Note that if the cursor is in a headline and not at a 5495the second time. Note that if the cursor is in a headline and not at a
5258timestamp, these same keys modify the priority of an item. 5496timestamp, these same keys modify the priority of an item.
5259(@pxref{Priorities}). The key bindings also conflict with shift-selection and 5497(@pxref{Priorities}). The key bindings also conflict with shift-selection and
5260related modes (@pxref{Conflicts}). 5498related modes (@pxref{Conflicts}).
5261@c 5499@c
5262@orgcmd{C-c C-y,org-evaluate-time-range} 5500@orgcmd{C-c C-y,org-evaluate-time-range}
@@ -5268,7 +5506,7 @@ the following column).
5268 5506
5269 5507
5270@menu 5508@menu
5271* The date/time prompt:: How Org-mode helps you entering date and time 5509* The date/time prompt:: How Org mode helps you entering date and time
5272* Custom time format:: Making dates look different 5510* Custom time format:: Making dates look different
5273@end menu 5511@end menu
5274 5512
@@ -5278,17 +5516,17 @@ the following column).
5278@cindex time, reading in minibuffer 5516@cindex time, reading in minibuffer
5279 5517
5280@vindex org-read-date-prefer-future 5518@vindex org-read-date-prefer-future
5281When Org-mode prompts for a date/time, the default is shown in default 5519When Org mode prompts for a date/time, the default is shown in default
5282date/time format, and the prompt therefore seems to ask for a specific 5520date/time format, and the prompt therefore seems to ask for a specific
5283format. But it will in fact accept any string containing some date and/or 5521format. But it will in fact accept any string containing some date and/or
5284time information, and it is really smart about interpreting your input. You 5522time information, and it is really smart about interpreting your input. You
5285can, for example, use @kbd{C-y} to paste a (possibly multi-line) string 5523can, for example, use @kbd{C-y} to paste a (possibly multi-line) string
5286copied from an email message. Org-mode will find whatever information is in 5524copied from an email message. Org mode will find whatever information is in
5287there and derive anything you have not specified from the @emph{default date 5525there and derive anything you have not specified from the @emph{default date
5288and time}. The default is usually the current date and time, but when 5526and time}. The default is usually the current date and time, but when
5289modifying an existing timestamp, or when entering the second stamp of a 5527modifying an existing timestamp, or when entering the second stamp of a
5290range, it is taken from the stamp in the buffer. When filling in 5528range, it is taken from the stamp in the buffer. When filling in
5291information, Org-mode assumes that most of the time you will want to enter a 5529information, Org mode assumes that most of the time you will want to enter a
5292date in the future: if you omit the month/year and the given day/month is 5530date in the future: if you omit the month/year and the given day/month is
5293@i{before} today, it will assume that you mean a future date@footnote{See the 5531@i{before} today, it will assume that you mean a future date@footnote{See the
5294variable @code{org-read-date-prefer-future}. You may set that variable to 5532variable @code{org-read-date-prefer-future}. You may set that variable to
@@ -5297,24 +5535,24 @@ tomorrow.}. If the date has been automatically shifted into the future, the
5297time prompt will show this with @samp{(=>F).} 5535time prompt will show this with @samp{(=>F).}
5298 5536
5299For example, let's assume that today is @b{June 13, 2006}. Here is how 5537For example, let's assume that today is @b{June 13, 2006}. Here is how
5300various inputs will be interpreted, the items filled in by Org-mode are 5538various inputs will be interpreted, the items filled in by Org mode are
5301in @b{bold}. 5539in @b{bold}.
5302 5540
5303@example 5541@example
53043-2-5 --> 2003-02-05 55423-2-5 @result{} 2003-02-05
53052/5/3 --> 2003-02-05 55432/5/3 @result{} 2003-02-05
530614 --> @b{2006}-@b{06}-14 554414 @result{} @b{2006}-@b{06}-14
530712 --> @b{2006}-@b{07}-12 554512 @result{} @b{2006}-@b{07}-12
53082/5 --> @b{2007}-02-05 55462/5 @result{} @b{2007}-02-05
5309Fri --> nearest Friday (default date or later) 5547Fri @result{} nearest Friday (default date or later)
5310sep 15 --> @b{2006}-09-15 5548sep 15 @result{} @b{2006}-09-15
5311feb 15 --> @b{2007}-02-15 5549feb 15 @result{} @b{2007}-02-15
5312sep 12 9 --> 2009-09-12 5550sep 12 9 @result{} 2009-09-12
531312:45 --> @b{2006}-@b{06}-@b{13} 12:45 555112:45 @result{} @b{2006}-@b{06}-@b{13} 12:45
531422 sept 0:34 --> @b{2006}-09-22 0:34 555222 sept 0:34 @result{} @b{2006}-09-22 0:34
5315w4 --> ISO week for of the current year @b{2006} 5553w4 @result{} ISO week for of the current year @b{2006}
53162012 w4 fri --> Friday of ISO week 4 in 2012 55542012 w4 fri @result{} Friday of ISO week 4 in 2012
53172012-w04-5 --> Same as above 55552012-w04-5 @result{} Same as above
5318@end example 5556@end example
5319 5557
5320Furthermore you can specify a relative date by giving, as the 5558Furthermore you can specify a relative date by giving, as the
@@ -5323,16 +5561,16 @@ letter ([dwmy]) to indicate change in days, weeks, months, or years. With a
5323single plus or minus, the date is always relative to today. With a 5561single plus or minus, the date is always relative to today. With a
5324double plus or minus, it is relative to the default date. If instead of 5562double plus or minus, it is relative to the default date. If instead of
5325a single letter, you use the abbreviation of day name, the date will be 5563a single letter, you use the abbreviation of day name, the date will be
5326the Nth such day. E.g. 5564the Nth such day, e.g.@:
5327 5565
5328@example 5566@example
5329+0 --> today 5567+0 @result{} today
5330. --> today 5568. @result{} today
5331+4d --> four days from today 5569+4d @result{} four days from today
5332+4 --> same as above 5570+4 @result{} same as above
5333+2w --> two weeks from today 5571+2w @result{} two weeks from today
5334++5 --> five days from default date 5572++5 @result{} five days from default date
5335+2tue --> second Tuesday from now. 5573+2tue @result{} second Tuesday from now.
5336@end example 5574@end example
5337 5575
5338@vindex parse-time-months 5576@vindex parse-time-months
@@ -5341,14 +5579,22 @@ The function understands English month and weekday abbreviations. If
5341you want to use unabbreviated names and/or other languages, configure 5579you want to use unabbreviated names and/or other languages, configure
5342the variables @code{parse-time-months} and @code{parse-time-weekdays}. 5580the variables @code{parse-time-months} and @code{parse-time-weekdays}.
5343 5581
5582@vindex org-read-date-force-compatible-dates
5583Not all dates can be represented in a given Emacs implementation. By default
5584Org mode forces dates into the compatibility range 1970--2037 which works on
5585all Emacs implementations. If you want to use dates outside of this range,
5586read the docstring of the variable
5587@code{org-read-date-force-compatible-dates}.
5588
5344You can specify a time range by giving start and end times or by giving a 5589You can specify a time range by giving start and end times or by giving a
5345start time and a duration (in HH:MM format). Use `-' or `-@{@}-' as the separator 5590start time and a duration (in HH:MM format). Use one or two dash(es) as the
5346in the former case and use '+' as the separator in the latter case. E.g. 5591separator in the former case and use '+' as the separator in the latter
5592case, e.g.@:
5347 5593
5348@example 5594@example
534911am-1:15pm --> 11:00-13:15 559511am-1:15pm @result{} 11:00-13:15
535011am--1:15pm --> same as above 559611am--1:15pm @result{} same as above
535111am+2:15 --> same as above 559711am+2:15 @result{} same as above
5352@end example 5598@end example
5353 5599
5354@cindex calendar, for selecting date 5600@cindex calendar, for selecting date
@@ -5399,7 +5645,7 @@ minibuffer@footnote{If you find this distracting, turn the display of with
5399 5645
5400@vindex org-display-custom-times 5646@vindex org-display-custom-times
5401@vindex org-time-stamp-custom-formats 5647@vindex org-time-stamp-custom-formats
5402Org-mode uses the standard ISO notation for dates and times as it is 5648Org mode uses the standard ISO notation for dates and times as it is
5403defined in ISO 8601. If you cannot get used to this and require another 5649defined in ISO 8601. If you cannot get used to this and require another
5404representation of date and time to keep you happy, you can get it by 5650representation of date and time to keep you happy, you can get it by
5405customizing the variables @code{org-display-custom-times} and 5651customizing the variables @code{org-display-custom-times} and
@@ -5411,7 +5657,7 @@ Toggle the display of custom formats for dates and times.
5411@end table 5657@end table
5412 5658
5413@noindent 5659@noindent
5414Org-mode needs the default format for scanning, so the custom date/time 5660Org mode needs the default format for scanning, so the custom date/time
5415format does not @emph{replace} the default format---instead it is put 5661format does not @emph{replace} the default format---instead it is put
5416@emph{over} the default format using text properties. This has the 5662@emph{over} the default format using text properties. This has the
5417following consequences: 5663following consequences:
@@ -5479,7 +5725,7 @@ The headline will be listed under the given date@footnote{It will still
5479be listed on that date after it has been marked DONE. If you don't like 5725be listed on that date after it has been marked DONE. If you don't like
5480this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In 5726this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In
5481addition, a reminder that the scheduled date has passed will be present 5727addition, a reminder that the scheduled date has passed will be present
5482in the compilation for @emph{today}, until the entry is marked DONE, i.e. 5728in the compilation for @emph{today}, until the entry is marked DONE, i.e.@:
5483the task will automatically be forwarded until completed. 5729the task will automatically be forwarded until completed.
5484 5730
5485@example 5731@example
@@ -5488,23 +5734,23 @@ the task will automatically be forwarded until completed.
5488@end example 5734@end example
5489 5735
5490@noindent 5736@noindent
5491@b{Important:} Scheduling an item in Org-mode should @i{not} be 5737@b{Important:} Scheduling an item in Org mode should @i{not} be
5492understood in the same way that we understand @i{scheduling a meeting}. 5738understood in the same way that we understand @i{scheduling a meeting}.
5493Setting a date for a meeting is just a simple appointment, you should 5739Setting a date for a meeting is just a simple appointment, you should
5494mark this entry with a simple plain timestamp, to get this item shown 5740mark this entry with a simple plain timestamp, to get this item shown
5495on the date where it applies. This is a frequent misunderstanding by 5741on the date where it applies. This is a frequent misunderstanding by
5496Org users. In Org-mode, @i{scheduling} means setting a date when you 5742Org users. In Org mode, @i{scheduling} means setting a date when you
5497want to start working on an action item. 5743want to start working on an action item.
5498@end table 5744@end table
5499 5745
5500You may use timestamps with repeaters in scheduling and deadline 5746You may use timestamps with repeaters in scheduling and deadline
5501entries. Org-mode will issue early and late warnings based on the 5747entries. Org mode will issue early and late warnings based on the
5502assumption that the timestamp represents the @i{nearest instance} of 5748assumption that the timestamp represents the @i{nearest instance} of
5503the repeater. However, the use of diary sexp entries like 5749the repeater. However, the use of diary sexp entries like
5504@c 5750@c
5505@code{<%%(diary-float t 42)>} 5751@code{<%%(org-float t 42)>}
5506@c 5752@c
5507in scheduling and deadline timestamps is limited. Org-mode does not 5753in scheduling and deadline timestamps is limited. Org mode does not
5508know enough about the internals of each sexp function to issue early and 5754know enough about the internals of each sexp function to issue early and
5509late warnings. However, it will show the item on each day where the 5755late warnings. However, it will show the item on each day where the
5510sexp entry matches. 5756sexp entry matches.
@@ -5517,29 +5763,30 @@ sexp entry matches.
5517@node Inserting deadline/schedule, Repeated tasks, Deadlines and scheduling, Deadlines and scheduling 5763@node Inserting deadline/schedule, Repeated tasks, Deadlines and scheduling, Deadlines and scheduling
5518@subsection Inserting deadlines or schedules 5764@subsection Inserting deadlines or schedules
5519 5765
5520The following commands allow you to quickly insert a deadline or to schedule 5766The following commands allow you to quickly insert@footnote{The @samp{SCHEDULED} and
5767@samp{DEADLINE} dates are inserted on the line right below the headline. Don't put
5768any text between this line and the headline.} a deadline or to schedule
5521an item: 5769an item:
5522 5770
5523@table @kbd 5771@table @kbd
5524@c 5772@c
5525@orgcmd{C-c C-d,org-deadline} 5773@orgcmd{C-c C-d,org-deadline}
5526Insert @samp{DEADLINE} keyword along with a stamp. The insertion will happen 5774Insert @samp{DEADLINE} keyword along with a stamp. The insertion will happen
5527in the line directly following the headline. When called with a prefix arg, 5775in the line directly following the headline. Any CLOSED timestamp will be
5528an existing deadline will be removed from the entry. Depending on the 5776removed. When called with a prefix arg, an existing deadline will be removed
5529variable @code{org-log-redeadline}@footnote{with corresponding 5777from the entry. Depending on the variable @code{org-log-redeadline}@footnote{with corresponding
5530@code{#+STARTUP} keywords @code{logredeadline}, @code{lognoteredeadline}, 5778@code{#+STARTUP} keywords @code{logredeadline}, @code{lognoteredeadline},
5531and @code{nologredeadline}}, a note will be taken when changing an existing 5779and @code{nologredeadline}}, a note will be taken when changing an existing
5532deadline. 5780deadline.
5533@c FIXME Any CLOSED timestamp will be removed.???????? 5781
5534@c
5535@orgcmd{C-c C-s,org-schedule} 5782@orgcmd{C-c C-s,org-schedule}
5536Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will 5783Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will
5537happen in the line directly following the headline. Any CLOSED timestamp 5784happen in the line directly following the headline. Any CLOSED timestamp
5538will be removed. When called with a prefix argument, remove the scheduling 5785will be removed. When called with a prefix argument, remove the scheduling
5539date from the entry. Depending on the variable 5786date from the entry. Depending on the variable
5540@code{org-log-reschedule}@footnote{with corresponding @code{#+STARTUP} 5787@code{org-log-reschedule}@footnote{with corresponding @code{#+STARTUP}
5541keywords @code{logredeadline}, @code{lognoteredeadline}, and 5788keywords @code{logreschedule}, @code{lognotereschedule}, and
5542@code{nologredeadline}}, a note will be taken when changing an existing 5789@code{nologreschedule}}, a note will be taken when changing an existing
5543scheduling time. 5790scheduling time.
5544@c 5791@c
5545@orgcmd{C-c C-x C-k,org-mark-entry-for-agenda-action} 5792@orgcmd{C-c C-x C-k,org-mark-entry-for-agenda-action}
@@ -5566,12 +5813,17 @@ Sparse tree for deadlines and scheduled items before a given date.
5566Sparse tree for deadlines and scheduled items after a given date. 5813Sparse tree for deadlines and scheduled items after a given date.
5567@end table 5814@end table
5568 5815
5816Note that @code{org-schedule} and @code{org-deadline} supports
5817setting the date by indicating a relative time: e.g. +1d will set
5818the date to the next day after today, and --1w will set the date
5819to the previous week before any current timestamp.
5820
5569@node Repeated tasks, , Inserting deadline/schedule, Deadlines and scheduling 5821@node Repeated tasks, , Inserting deadline/schedule, Deadlines and scheduling
5570@subsection Repeated tasks 5822@subsection Repeated tasks
5571@cindex tasks, repeated 5823@cindex tasks, repeated
5572@cindex repeated tasks 5824@cindex repeated tasks
5573 5825
5574Some tasks need to be repeated again and again. Org-mode helps to 5826Some tasks need to be repeated again and again. Org mode helps to
5575organize such tasks using a so-called repeater in a DEADLINE, SCHEDULED, 5827organize such tasks using a so-called repeater in a DEADLINE, SCHEDULED,
5576or plain timestamp. In the following example 5828or plain timestamp. In the following example
5577@example 5829@example
@@ -5591,7 +5843,7 @@ over-due, so it is important to be able to mark such an entry as completed
5591once you have done so. When you mark a DEADLINE or a SCHEDULE with the TODO 5843once you have done so. When you mark a DEADLINE or a SCHEDULE with the TODO
5592keyword DONE, it will no longer produce entries in the agenda. The problem 5844keyword DONE, it will no longer produce entries in the agenda. The problem
5593with this is, however, that then also the @emph{next} instance of the 5845with this is, however, that then also the @emph{next} instance of the
5594repeated entry will not be active. Org-mode deals with this in the following 5846repeated entry will not be active. Org mode deals with this in the following
5595way: When you try to mark such an entry DONE (using @kbd{C-c C-t}), it will 5847way: When you try to mark such an entry DONE (using @kbd{C-c C-t}), it will
5596shift the base date of the repeating timestamp by the repeater interval, and 5848shift the base date of the repeating timestamp by the repeater interval, and
5597immediately set the entry state back to TODO@footnote{In fact, the target 5849immediately set the entry state back to TODO@footnote{In fact, the target
@@ -5624,7 +5876,7 @@ task, this may not be the best way to handle it. For example, if you
5624forgot to call your father for 3 weeks, it does not make sense to call 5876forgot to call your father for 3 weeks, it does not make sense to call
5625him 3 times in a single day to make up for it. Finally, there are tasks 5877him 3 times in a single day to make up for it. Finally, there are tasks
5626like changing batteries which should always repeat a certain time 5878like changing batteries which should always repeat a certain time
5627@i{after} the last time you did it. For these tasks, Org-mode has 5879@i{after} the last time you did it. For these tasks, Org mode has
5628special repeaters @samp{++} and @samp{.+}. For example: 5880special repeaters @samp{++} and @samp{.+}. For example:
5629 5881
5630@example 5882@example
@@ -5653,7 +5905,7 @@ created for this purpose, it is described in @ref{Structure editing}.
5653@cindex clocking time 5905@cindex clocking time
5654@cindex time clocking 5906@cindex time clocking
5655 5907
5656Org-mode allows you to clock the time you spend on specific tasks in a 5908Org mode allows you to clock the time you spend on specific tasks in a
5657project. When you start working on an item, you can start the clock. 5909project. When you start working on an item, you can start the clock.
5658When you stop working on that task, or when you mark the task done, the 5910When you stop working on that task, or when you mark the task done, the
5659clock is stopped and the corresponding time interval is recorded. It 5911clock is stopped and the corresponding time interval is recorded. It
@@ -5684,11 +5936,15 @@ what to do with it.
5684@table @kbd 5936@table @kbd
5685@orgcmd{C-c C-x C-i,org-clock-in} 5937@orgcmd{C-c C-x C-i,org-clock-in}
5686@vindex org-clock-into-drawer 5938@vindex org-clock-into-drawer
5939@cindex property, LOG_INTO_DRAWER
5687Start the clock on the current item (clock-in). This inserts the CLOCK 5940Start the clock on the current item (clock-in). This inserts the CLOCK
5688keyword together with a timestamp. If this is not the first clocking of 5941keyword together with a timestamp. If this is not the first clocking of
5689this item, the multiple CLOCK lines will be wrapped into a 5942this item, the multiple CLOCK lines will be wrapped into a
5690@code{:LOGBOOK:} drawer (see also the variable 5943@code{:LOGBOOK:} drawer (see also the variable
5691@code{org-clock-into-drawer}). When called with a @kbd{C-u} prefix argument, 5944@code{org-clock-into-drawer}). You can also overrule
5945the setting of this variable for a subtree by setting a
5946@code{CLOCK_INTO_DRAWER} or @code{LOG_INTO_DRAWER} property.
5947When called with a @kbd{C-u} prefix argument,
5692select the task from a list of recently clocked tasks. With two @kbd{C-u 5948select the task from a list of recently clocked tasks. With two @kbd{C-u
5693C-u} prefixes, clock into the task at point and mark it as the default task. 5949C-u} prefixes, clock into the task at point and mark it as the default task.
5694The default task will always be available when selecting a clocking task, 5950The default task will always be available when selecting a clocking task,
@@ -5730,6 +5986,9 @@ Update the effort estimate for the current clock task.
5730Recompute the time interval after changing one of the timestamps. This 5986Recompute the time interval after changing one of the timestamps. This
5731is only necessary if you edit the timestamps directly. If you change 5987is only necessary if you edit the timestamps directly. If you change
5732them with @kbd{S-@key{cursor}} keys, the update is automatic. 5988them with @kbd{S-@key{cursor}} keys, the update is automatic.
5989@orgcmd{C-S-@key{up/down},org-clock-timestamps-up/down}
5990On @code{CLOCK} log lines, increase/decrease both timestamps at the same
5991time so that duration keeps the same.
5733@orgcmd{C-c C-t,org-todo} 5992@orgcmd{C-c C-t,org-todo}
5734Changing the TODO state of an item to DONE automatically stops the clock 5993Changing the TODO state of an item to DONE automatically stops the clock
5735if it is running in this same item. 5994if it is running in this same item.
@@ -5741,12 +6000,12 @@ Jump to the headline of the currently clocked in task. With a @kbd{C-u}
5741prefix arg, select the target task from a list of recently clocked tasks. 6000prefix arg, select the target task from a list of recently clocked tasks.
5742@orgcmd{C-c C-x C-d,org-clock-display} 6001@orgcmd{C-c C-x C-d,org-clock-display}
5743@vindex org-remove-highlights-with-change 6002@vindex org-remove-highlights-with-change
5744Display time summaries for each subtree in the current buffer. This 6003Display time summaries for each subtree in the current buffer. This puts
5745puts overlays at the end of each headline, showing the total time 6004overlays at the end of each headline, showing the total time recorded under
5746recorded under that heading, including the time of any subheadings. You 6005that heading, including the time of any subheadings. You can use visibility
5747can use visibility cycling to study the tree, but the overlays disappear 6006cycling to study the tree, but the overlays disappear when you change the
5748when you change the buffer (see variable 6007buffer (see variable @code{org-remove-highlights-with-change}) or press
5749@code{org-remove-highlights-with-change}) or press @kbd{C-c C-c}. 6008@kbd{C-c C-c}.
5750@end table 6009@end table
5751 6010
5752The @kbd{l} key may be used in the timeline (@pxref{Timeline}) and in 6011The @kbd{l} key may be used in the timeline (@pxref{Timeline}) and in
@@ -5765,10 +6024,11 @@ formatted as one or several Org tables.
5765@table @kbd 6024@table @kbd
5766@orgcmd{C-c C-x C-r,org-clock-report} 6025@orgcmd{C-c C-x C-r,org-clock-report}
5767Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock 6026Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock
5768report as an Org-mode table into the current file. When the cursor is 6027report as an Org mode table into the current file. When the cursor is
5769at an existing clock table, just update it. When called with a prefix 6028at an existing clock table, just update it. When called with a prefix
5770argument, jump to the first clock report in the current document and 6029argument, jump to the first clock report in the current document and
5771update it. 6030update it. The clock table always includes also trees with
6031@code{:ARCHIVE:} tag.
5772@orgcmdkkc{C-c C-c,C-c C-x C-u,org-dblock-update} 6032@orgcmdkkc{C-c C-c,C-c C-x C-u,org-dblock-update}
5773Update dynamic block at point. The cursor needs to be in the 6033Update dynamic block at point. The cursor needs to be in the
5774@code{#+BEGIN} line of the dynamic block. 6034@code{#+BEGIN} line of the dynamic block.
@@ -5830,7 +6090,8 @@ be selected:
5830 @r{To use this, @code{:block} or @code{:tstart}, @code{:tend} are needed.} 6090 @r{To use this, @code{:block} or @code{:tstart}, @code{:tend} are needed.}
5831:stepskip0 @r{Do not show steps that have zero time.} 6091:stepskip0 @r{Do not show steps that have zero time.}
5832:fileskip0 @r{Do not show table sections from files which did not contribute.} 6092:fileskip0 @r{Do not show table sections from files which did not contribute.}
5833:tags @r{A tags match to select entries that should contribute}. 6093:tags @r{A tags match to select entries that should contribute. See}
6094 @r{@ref{Matching tags and properties} for the match syntax.}
5834@end example 6095@end example
5835 6096
5836Then there are options which determine the formatting of the table. There 6097Then there are options which determine the formatting of the table. There
@@ -5838,6 +6099,7 @@ options are interpreted by the function @code{org-clocktable-write-default},
5838but you can specify your own function using the @code{:formatter} parameter. 6099but you can specify your own function using the @code{:formatter} parameter.
5839@example 6100@example
5840:emphasize @r{When @code{t}, emphasize level one and level two items.} 6101:emphasize @r{When @code{t}, emphasize level one and level two items.}
6102:lang @r{Language@footnote{Language terms can be set through the variable @code{org-clock-clocktable-language-setup}.} to use for descriptive cells like "Task".}
5841:link @r{Link the item headlines in the table to their origins.} 6103:link @r{Link the item headlines in the table to their origins.}
5842:narrow @r{An integer to limit the width of the headline column in} 6104:narrow @r{An integer to limit the width of the headline column in}
5843 @r{the org table. If you write it like @samp{50!}, then the} 6105 @r{the org table. If you write it like @samp{50!}, then the}
@@ -5850,6 +6112,9 @@ but you can specify your own function using the @code{:formatter} parameter.
5850 @r{All are overwritten except if there is an explicit @code{:narrow}} 6112 @r{All are overwritten except if there is an explicit @code{:narrow}}
5851:timestamp @r{A timestamp for the entry, when available. Look for SCHEDULED,} 6113:timestamp @r{A timestamp for the entry, when available. Look for SCHEDULED,}
5852 @r{DEADLINE, TIMESTAMP and TIMESTAMP_IA, in this order.} 6114 @r{DEADLINE, TIMESTAMP and TIMESTAMP_IA, in this order.}
6115:properties @r{List of properties that should be shown in the table. Each}
6116 @r{property will get its own column.}
6117:inherit-props @r{When this flag is @code{t}, the values for @code{:properties} will be inherited.}
5853:formula @r{Content of a @code{#+TBLFM} line to be added and evaluated.} 6118:formula @r{Content of a @code{#+TBLFM} line to be added and evaluated.}
5854 @r{As a special case, @samp{:formula %} adds a column with % time.} 6119 @r{As a special case, @samp{:formula %} adds a column with % time.}
5855 @r{If you do not specify a formula here, any existing formula} 6120 @r{If you do not specify a formula here, any existing formula}
@@ -5897,7 +6162,7 @@ applying it to another one.
5897By customizing the variable @code{org-clock-idle-time} to some integer, such 6162By customizing the variable @code{org-clock-idle-time} to some integer, such
5898as 10 or 15, Emacs can alert you when you get back to your computer after 6163as 10 or 15, Emacs can alert you when you get back to your computer after
5899being idle for that many minutes@footnote{On computers using Mac OS X, 6164being idle for that many minutes@footnote{On computers using Mac OS X,
5900idleness is based on actual user idleness, not just Emacs' idle time. For 6165idleness is based on actual user idleness, not just Emacs's idle time. For
5901X11, you can install a utility program @file{x11idle.c}, available in the 6166X11, you can install a utility program @file{x11idle.c}, available in the
5902UTILITIES directory of the Org git distribution, to get the same general 6167UTILITIES directory of the Org git distribution, to get the same general
5903treatment of idleness. On other systems, idle time refers to Emacs idle time 6168treatment of idleness. On other systems, idle time refers to Emacs idle time
@@ -5945,7 +6210,7 @@ If you restart Emacs and clock into any task, Org will notice that you have a
5945dangling clock which was never clocked out from your last session. Using 6210dangling clock which was never clocked out from your last session. Using
5946that clock's starting time as the beginning of the unaccounted-for period, 6211that clock's starting time as the beginning of the unaccounted-for period,
5947Org will ask how you want to resolve that time. The logic and behavior is 6212Org will ask how you want to resolve that time. The logic and behavior is
5948identical to dealing with away time due to idleness; it's just happening due 6213identical to dealing with away time due to idleness; it is just happening due
5949to a recovery event rather than a set amount of idle time. 6214to a recovery event rather than a set amount of idle time.
5950 6215
5951You can also check all the files visited by your Org agenda for dangling 6216You can also check all the files visited by your Org agenda for dangling
@@ -5982,7 +6247,7 @@ together with clock sums (if you want to clock your time). For a specific
5982buffer you can use 6247buffer you can use
5983 6248
5984@example 6249@example
5985#+PROPERTY: Effort_ALL 0 0:10 0:30 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 6250#+PROPERTY: Effort_ALL 0 0:10 0:30 1:00 2:00 3:00 4:00 5:00 6:00 7:00
5986#+COLUMNS: %40ITEM(Task) %17Effort(Estimated Effort)@{:@} %CLOCKSUM 6251#+COLUMNS: %40ITEM(Task) %17Effort(Estimated Effort)@{:@} %CLOCKSUM
5987@end example 6252@end example
5988 6253
@@ -6060,8 +6325,8 @@ not started at exactly the right moment.
6060@kindex C-c C-x ; 6325@kindex C-c C-x ;
6061@kindex ; 6326@kindex ;
6062 6327
6063Calling @code{org-timer-set-timer} from an Org-mode buffer runs a countdown 6328Calling @code{org-timer-set-timer} from an Org mode buffer runs a countdown
6064timer. Use @key{;} from agenda buffers, @key{C-c C-x ;} everwhere else. 6329timer. Use @kbd{;} from agenda buffers, @key{C-c C-x ;} everywhere else.
6065 6330
6066@code{org-timer-set-timer} prompts the user for a duration and displays a 6331@code{org-timer-set-timer} prompts the user for a duration and displays a
6067countdown timer in the modeline. @code{org-timer-default-timer} sets the 6332countdown timer in the modeline. @code{org-timer-default-timer} sets the
@@ -6083,7 +6348,7 @@ trees to an archive file keeps the system compact and fast.
6083* Capture:: Capturing new stuff 6348* Capture:: Capturing new stuff
6084* Attachments:: Add files to tasks 6349* Attachments:: Add files to tasks
6085* RSS Feeds:: Getting input from RSS feeds 6350* RSS Feeds:: Getting input from RSS feeds
6086* Protocols:: External (e.g. Browser) access to Emacs and Org 6351* Protocols:: External (e.g.@: Browser) access to Emacs and Org
6087* Refiling notes:: Moving a tree from one place to another 6352* Refiling notes:: Moving a tree from one place to another
6088* Archiving:: What to do with finished projects 6353* Archiving:: What to do with finished projects
6089@end menu 6354@end menu
@@ -6094,7 +6359,7 @@ trees to an archive file keeps the system compact and fast.
6094 6359
6095Org's method for capturing new items is heavily inspired by John Wiegley 6360Org's method for capturing new items is heavily inspired by John Wiegley
6096excellent remember package. Up to version 6.36 Org used a special setup 6361excellent remember package. Up to version 6.36 Org used a special setup
6097for @file{remember.el}. @file{org-remember.el} is still part of Org-mode for 6362for @file{remember.el}. @file{org-remember.el} is still part of Org mode for
6098backward compatibility with existing setups. You can find the documentation 6363backward compatibility with existing setups. You can find the documentation
6099for org-remember at @url{http://orgmode.org/org-remember.pdf}. 6364for org-remember at @url{http://orgmode.org/org-remember.pdf}.
6100 6365
@@ -6138,6 +6403,7 @@ suggestion.} for capturing new material.
6138@orgcmd{C-c c,org-capture} 6403@orgcmd{C-c c,org-capture}
6139Call the command @code{org-capture}. Note that this keybinding is global and 6404Call the command @code{org-capture}. Note that this keybinding is global and
6140not active by default - you need to install it. If you have templates 6405not active by default - you need to install it. If you have templates
6406@cindex date tree
6141defined @pxref{Capture templates}, it will offer these templates for 6407defined @pxref{Capture templates}, it will offer these templates for
6142selection or use a new Org outline node as the default template. It will 6408selection or use a new Org outline node as the default template. It will
6143insert the template into the target file and switch to an indirect buffer 6409insert the template into the target file and switch to an indirect buffer
@@ -6172,7 +6438,7 @@ prefix commands:
6172 6438
6173@table @kbd 6439@table @kbd
6174@orgkey{C-u C-c c} 6440@orgkey{C-u C-c c}
6175Visit the target location of a cpature template. You get to select the 6441Visit the target location of a capture template. You get to select the
6176template in the usual way. 6442template in the usual way.
6177@orgkey{C-u C-u C-c c} 6443@orgkey{C-u C-u C-c c}
6178Visit the last stored capture item in its buffer. 6444Visit the last stored capture item in its buffer.
@@ -6220,6 +6486,14 @@ extremely useful for deriving tasks from emails, for example. You fill in
6220the task definition, press @code{C-c C-c} and Org returns you to the same 6486the task definition, press @code{C-c C-c} and Org returns you to the same
6221place where you started the capture process. 6487place where you started the capture process.
6222 6488
6489To define special keys to capture to a particular template without going
6490through the interactive template selection, you can create your key binding
6491like this:
6492
6493@lisp
6494(define-key global-map "\C-cx"
6495 (lambda () (interactive) (org-capture nil "x")))
6496@end lisp
6223 6497
6224@menu 6498@menu
6225* Template elements:: What is needed for a complete template entry 6499* Template elements:: What is needed for a complete template entry
@@ -6230,14 +6504,14 @@ place where you started the capture process.
6230@subsubsection Template elements 6504@subsubsection Template elements
6231 6505
6232Now lets look at the elements of a template definition. Each entry in 6506Now lets look at the elements of a template definition. Each entry in
6233@code{org-capture-templates} is a list with the following items: 6507@code{org-capture-templates} is a list with the following items:
6234 6508
6235@table @var 6509@table @var
6236@item keys 6510@item keys
6237The keys that will select the template, as a string, characters 6511The keys that will select the template, as a string, characters
6238only, for example @code{"a"} for a template to be selected with a 6512only, for example @code{"a"} for a template to be selected with a
6239single key, or @code{"bt"} for selection with two keys. When using 6513single key, or @code{"bt"} for selection with two keys. When using
6240several keys, keys using the same prefix key must be sequential 6514several keys, keys using the same prefix key must be sequential
6241in the list and preceded by a 2-element entry explaining the 6515in the list and preceded by a 2-element entry explaining the
6242prefix key, for example 6516prefix key, for example
6243@example 6517@example
@@ -6254,9 +6528,8 @@ selection.
6254The type of entry, a symbol. Valid values are: 6528The type of entry, a symbol. Valid values are:
6255@table @code 6529@table @code
6256@item entry 6530@item entry
6257An Org-mode node, with a headline. Will be filed as the child of the 6531An Org mode node, with a headline. Will be filed as the child of the target
6258target entry or as a top-level entry. The target file should be an Org-mode 6532entry or as a top-level entry. The target file should be an Org mode file.
6259file.
6260@item item 6533@item item
6261A plain list item, placed in the first plain list at the target 6534A plain list item, placed in the first plain list at the target
6262location. Again the target file should be an Org file. 6535location. Again the target file should be an Org file.
@@ -6273,11 +6546,12 @@ Text to be inserted as it is.
6273 6546
6274@item target 6547@item target
6275@vindex org-default-notes-file 6548@vindex org-default-notes-file
6276Specification of where the captured item should be placed. In Org-mode 6549Specification of where the captured item should be placed. In Org mode
6277files, targets usually define a node. Entries will become children of this 6550files, targets usually define a node. Entries will become children of this
6278node. Other types will be added to the table or list in the body of this 6551node. Other types will be added to the table or list in the body of this
6279node. Most target specifications contain a file name. If that file name is 6552node. Most target specifications contain a file name. If that file name is
6280the empty string, it defaults to @code{org-default-notes-file}. 6553the empty string, it defaults to @code{org-default-notes-file}. A file can
6554also be given as a variable, function, or Emacs Lisp form.
6281 6555
6282Valid values are: 6556Valid values are:
6283@table @code 6557@table @code
@@ -6342,14 +6616,25 @@ before and after the new item. Default 0, only common other value is 1.
6342@item :clock-in 6616@item :clock-in
6343Start the clock in this item. 6617Start the clock in this item.
6344 6618
6619@item :clock-keep
6620Keep the clock running when filing the captured entry.
6621
6345@item :clock-resume 6622@item :clock-resume
6346If starting the capture interrupted a clock, restart that clock when finished 6623If starting the capture interrupted a clock, restart that clock when finished
6347with the capture. 6624with the capture. Note that @code{:clock-keep} has precedence over
6625@code{:clock-resume}. When setting both to @code{t}, the current clock will
6626run and the previous one will not be resumed.
6348 6627
6349@item :unnarrowed 6628@item :unnarrowed
6350Do not narrow the target buffer, simply show the full buffer. Default is to 6629Do not narrow the target buffer, simply show the full buffer. Default is to
6351narrow it so that you only see the new material. 6630narrow it so that you only see the new material.
6352 6631
6632@item :table-line-pos
6633Specification of the location in the table where the new line should be
6634inserted. It should be a string like @code{"II-3"} meaning that the new
6635line should become the third line before the second horizontal separator
6636line.
6637
6353@item :kill-buffer 6638@item :kill-buffer
6354If the target file was not yet visited when capture was invoked, kill the 6639If the target file was not yet visited when capture was invoked, kill the
6355buffer again after capture is completed. 6640buffer again after capture is completed.
@@ -6361,37 +6646,39 @@ buffer again after capture is completed.
6361 6646
6362In the template itself, special @kbd{%}-escapes@footnote{If you need one of 6647In the template itself, special @kbd{%}-escapes@footnote{If you need one of
6363these sequences literally, escape the @kbd{%} with a backslash.} allow 6648these sequences literally, escape the @kbd{%} with a backslash.} allow
6364dynamic insertion of content: 6649dynamic insertion of content. The templates are expanded in the order given here:
6365 6650
6366@comment SJE: should these sentences terminate in period?
6367@smallexample 6651@smallexample
6368%^@{@var{prompt}@} @r{prompt the user for a string and replace this sequence with it.} 6652%[@var{file}] @r{insert the contents of the file given by @var{file}.}
6369 @r{You may specify a default value and a completion table with} 6653%(@var{sexp}) @r{evaluate Elisp @var{sexp} and replace with the result.}
6370 @r{%^@{prompt|default|completion2|completion3...@}} 6654%<...> @r{the result of format-time-string on the ... format specification.}
6371 @r{The arrow keys access a prompt-specific history.} 6655%t @r{timestamp, date only.}
6372%a @r{annotation, normally the link created with @code{org-store-link}} 6656%T @r{timestamp with date and time.}
6373%A @r{like @code{%a}, but prompt for the description part} 6657%u, %U @r{like the above, but inactive timestamps.}
6658%a @r{annotation, normally the link created with @code{org-store-link}.}
6374%i @r{initial content, the region when capture is called while the} 6659%i @r{initial content, the region when capture is called while the}
6375 @r{region is active.} 6660 @r{region is active.}
6376 @r{The entire text will be indented like @code{%i} itself.} 6661 @r{The entire text will be indented like @code{%i} itself.}
6377%t @r{timestamp, date only} 6662%A @r{like @code{%a}, but prompt for the description part.}
6378%T @r{timestamp with date and time}
6379%u, %U @r{like the above, but inactive timestamps}
6380%^t @r{like @code{%t}, but prompt for date. Similarly @code{%^T}, @code{%^u}, @code{%^U}}
6381 @r{You may define a prompt like @code{%^@{Birthday@}t}}
6382%n @r{user name (taken from @code{user-full-name})}
6383%c @r{Current kill ring head.} 6663%c @r{Current kill ring head.}
6384%x @r{Content of the X clipboard.} 6664%x @r{Content of the X clipboard.}
6385%^C @r{Interactive selection of which kill or clip to use.} 6665%k @r{title of the currently clocked task.}
6386%^L @r{Like @code{%^C}, but insert as link.} 6666%K @r{link to the currently clocked task.}
6387%k @r{title of the currently clocked task} 6667%n @r{user name (taken from @code{user-full-name}).}
6388%K @r{link to the currently clocked task} 6668%f @r{file visited by current buffer when org-capture was called.}
6669%F @r{full path of the file or directory visited by current buffer.}
6670%:keyword @r{specific information for certain link types, see below.}
6389%^g @r{prompt for tags, with completion on tags in target file.} 6671%^g @r{prompt for tags, with completion on tags in target file.}
6390%^G @r{prompt for tags, with completion all tags in all agenda files.} 6672%^G @r{prompt for tags, with completion all tags in all agenda files.}
6391%^@{@var{prop}@}p @r{Prompt the user for a value for property @var{prop}} 6673%^t @r{like @code{%t}, but prompt for date. Similarly @code{%^T}, @code{%^u}, @code{%^U}.}
6392%:keyword @r{specific information for certain link types, see below} 6674 @r{You may define a prompt like @code{%^@{Birthday@}t}.}
6393%[@var{file}] @r{insert the contents of the file given by @var{file}} 6675%^C @r{Interactive selection of which kill or clip to use.}
6394%(@var{sexp}) @r{evaluate Elisp @var{sexp} and replace with the result} 6676%^L @r{Like @code{%^C}, but insert as link.}
6677%^@{@var{prop}@}p @r{Prompt the user for a value for property @var{prop}.}
6678%^@{@var{prompt}@} @r{prompt the user for a string and replace this sequence with it.}
6679 @r{You may specify a default value and a completion table with}
6680 @r{%^@{prompt|default|completion2|completion3...@}.}
6681 @r{The arrow keys access a prompt-specific history.}
6395@end smallexample 6682@end smallexample
6396 6683
6397@noindent 6684@noindent
@@ -6403,8 +6690,8 @@ similar way.}:
6403 6690
6404@vindex org-from-is-user-regexp 6691@vindex org-from-is-user-regexp
6405@smallexample 6692@smallexample
6406Link type | Available keywords 6693Link type | Available keywords
6407-------------------+---------------------------------------------- 6694------------------------+----------------------------------------------
6408bbdb | %:name %:company 6695bbdb | %:name %:company
6409irc | %:server %:port %:nick 6696irc | %:server %:port %:nick
6410vm, wl, mh, mew, rmail | %:type %:subject %:message-id 6697vm, wl, mh, mew, rmail | %:type %:subject %:message-id
@@ -6482,7 +6769,7 @@ Create a new attachment as an Emacs buffer.
6482Synchronize the current task with its attachment directory, in case you added 6769Synchronize the current task with its attachment directory, in case you added
6483attachments yourself. 6770attachments yourself.
6484 6771
6485@orgcmdtkc{p,C-c C-a o,org-attach-open} 6772@orgcmdtkc{o,C-c C-a o,org-attach-open}
6486@vindex org-file-apps 6773@vindex org-file-apps
6487Open current task's attachment. If there is more than one, prompt for a 6774Open current task's attachment. If there is more than one, prompt for a
6488file name first. Opening will follow the rules set by @code{org-file-apps}. 6775file name first. Opening will follow the rules set by @code{org-file-apps}.
@@ -6610,7 +6897,7 @@ create new nodes as new parents for refiling on the fly, check the
6610variable @code{org-refile-allow-creating-parent-nodes}. 6897variable @code{org-refile-allow-creating-parent-nodes}.
6611When the variable @code{org-log-refile}@footnote{with corresponding 6898When the variable @code{org-log-refile}@footnote{with corresponding
6612@code{#+STARTUP} keywords @code{logrefile}, @code{lognoterefile}, 6899@code{#+STARTUP} keywords @code{logrefile}, @code{lognoterefile},
6613and @code{nologrefile}} is set, a time stamp or a note will be 6900and @code{nologrefile}} is set, a timestamp or a note will be
6614recorded when an entry has been refiled. 6901recorded when an entry has been refiled.
6615@orgkey{C-u C-c C-w} 6902@orgkey{C-u C-c C-w}
6616Use the refile interface to jump to a heading. 6903Use the refile interface to jump to a heading.
@@ -6835,7 +7122,7 @@ The information to be shown is normally collected from all @emph{agenda
6835files}, the files listed in the variable 7122files}, the files listed in the variable
6836@code{org-agenda-files}@footnote{If the value of that variable is not a 7123@code{org-agenda-files}@footnote{If the value of that variable is not a
6837list, but a single file name, then the list of agenda files will be 7124list, but a single file name, then the list of agenda files will be
6838maintained in that external file.}. If a directory is part of this list, 7125maintained in that external file.}. If a directory is part of this list,
6839all files with the extension @file{.org} in this directory will be part 7126all files with the extension @file{.org} in this directory will be part
6840of the list. 7127of the list.
6841 7128
@@ -6848,13 +7135,14 @@ the easiest way to maintain it is through the following commands
6848 7135
6849@cindex files, adding to agenda list 7136@cindex files, adding to agenda list
6850@table @kbd 7137@table @kbd
6851@orgcmd{C-c [,org-agenda-to-front} 7138@orgcmd{C-c [,org-agenda-file-to-front}
6852Add current file to the list of agenda files. The file is added to 7139Add current file to the list of agenda files. The file is added to
6853the front of the list. If it was already in the list, it is moved to 7140the front of the list. If it was already in the list, it is moved to
6854the front. With a prefix argument, file is added/moved to the end. 7141the front. With a prefix argument, file is added/moved to the end.
6855@orgcmd{C-c ],org-remove-file} 7142@orgcmd{C-c ],org-remove-file}
6856Remove current file from the list of agenda files. 7143Remove current file from the list of agenda files.
6857@kindex C-, 7144@kindex C-,
7145@cindex cycling, of agenda files
6858@orgcmd{C-',org-cycle-agenda-files} 7146@orgcmd{C-',org-cycle-agenda-files}
6859@itemx C-, 7147@itemx C-,
6860Cycle through agenda file list, visiting one file after the other. 7148Cycle through agenda file list, visiting one file after the other.
@@ -6905,7 +7193,7 @@ Lift the restriction.
6905@cindex agenda dispatcher 7193@cindex agenda dispatcher
6906@cindex dispatching agenda commands 7194@cindex dispatching agenda commands
6907The views are created through a dispatcher, which should be bound to a 7195The views are created through a dispatcher, which should be bound to a
6908global key---for example @kbd{C-c a} (@pxref{Installation}). In the 7196global key---for example @kbd{C-c a} (@pxref{Activation}). In the
6909following we will assume that @kbd{C-c a} is indeed how the dispatcher 7197following we will assume that @kbd{C-c a} is indeed how the dispatcher
6910is accessed and list keyboard access to commands accordingly. After 7198is accessed and list keyboard access to commands accordingly. After
6911pressing @kbd{C-c a}, an additional letter is required to execute a 7199pressing @kbd{C-c a}, an additional letter is required to execute a
@@ -7010,7 +7298,7 @@ anniversaries, lunar phases, sunrise/set, recurrent appointments
7010Org. It can be very useful to combine output from Org with 7298Org. It can be very useful to combine output from Org with
7011the diary. 7299the diary.
7012 7300
7013In order to include entries from the Emacs diary into Org-mode's 7301In order to include entries from the Emacs diary into Org mode's
7014agenda, you only need to customize the variable 7302agenda, you only need to customize the variable
7015 7303
7016@lisp 7304@lisp
@@ -7019,7 +7307,7 @@ agenda, you only need to customize the variable
7019 7307
7020@noindent After that, everything will happen automatically. All diary 7308@noindent After that, everything will happen automatically. All diary
7021entries including holidays, anniversaries, etc., will be included in the 7309entries including holidays, anniversaries, etc., will be included in the
7022agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and 7310agenda buffer created by Org mode. @key{SPC}, @key{TAB}, and
7023@key{RET} can be used from the agenda buffer to jump to the diary 7311@key{RET} can be used from the agenda buffer to jump to the diary
7024file in order to edit existing diary entries. The @kbd{i} command to 7312file in order to edit existing diary entries. The @kbd{i} command to
7025insert new entries for the current date works in the agenda buffer, as 7313insert new entries for the current date works in the agenda buffer, as
@@ -7030,7 +7318,7 @@ between calendar and agenda.
7030 7318
7031If you are using the diary only for sexp entries and holidays, it is 7319If you are using the diary only for sexp entries and holidays, it is
7032faster to not use the above setting, but instead to copy or even move 7320faster to not use the above setting, but instead to copy or even move
7033the entries into an Org file. Org-mode evaluates diary-style sexp 7321the entries into an Org file. Org mode evaluates diary-style sexp
7034entries, and does it faster because there is no overhead for first 7322entries, and does it faster because there is no overhead for first
7035creating the diary display. Note that the sexp entries must start at 7323creating the diary display. Note that the sexp entries must start at
7036the left margin, no whitespace is allowed before them. For example, 7324the left margin, no whitespace is allowed before them. For example,
@@ -7042,8 +7330,8 @@ will be made in the agenda:
7042#+CATEGORY: Holiday 7330#+CATEGORY: Holiday
7043%%(org-calendar-holiday) ; special function for holiday names 7331%%(org-calendar-holiday) ; special function for holiday names
7044#+CATEGORY: Ann 7332#+CATEGORY: Ann
7045%%(diary-anniversary 5 14 1956)@footnote{Note that the order of the arguments (month, day, year) depends on the setting of @code{calendar-date-style}.} Arthur Dent is %d years old 7333%%(org-anniversary 1956 5 14)@footnote{@code{org-anniversary} is just like @code{diary-anniversary}, but the argument order is always according to ISO and therefore independent of the value of @code{calendar-date-style}.} Arthur Dent is %d years old
7046%%(diary-anniversary 10 2 1869) Mahatma Gandhi would be %d years old 7334%%(org-anniversary 1869 10 2) Mahatma Gandhi would be %d years old
7047@end example 7335@end example
7048 7336
7049@subsubheading Anniversaries from BBDB 7337@subsubheading Anniversaries from BBDB
@@ -7054,7 +7342,7 @@ If you are using the Big Brothers Database to store your contacts, you will
7054very likely prefer to store anniversaries in BBDB rather than in a 7342very likely prefer to store anniversaries in BBDB rather than in a
7055separate Org or diary file. Org supports this and will show BBDB 7343separate Org or diary file. Org supports this and will show BBDB
7056anniversaries as part of the agenda. All you need to do is to add the 7344anniversaries as part of the agenda. All you need to do is to add the
7057following to one your your agenda files: 7345following to one of your agenda files:
7058 7346
7059@example 7347@example
7060* Anniversaries 7348* Anniversaries
@@ -7066,16 +7354,17 @@ following to one your your agenda files:
7066 7354
7067You can then go ahead and define anniversaries for a BBDB record. Basically, 7355You can then go ahead and define anniversaries for a BBDB record. Basically,
7068you need to press @kbd{C-o anniversary @key{RET}} with the cursor in a BBDB 7356you need to press @kbd{C-o anniversary @key{RET}} with the cursor in a BBDB
7069record and then add the date in the format @code{YYYY-MM-DD}, followed by a 7357record and then add the date in the format @code{YYYY-MM-DD} or @code{MM-DD},
7070space and the class of the anniversary (@samp{birthday} or @samp{wedding}, or 7358followed by a space and the class of the anniversary (@samp{birthday} or
7071a format string). If you omit the class, it will default to @samp{birthday}. 7359@samp{wedding}, or a format string). If you omit the class, it will default to
7072Here are a few examples, the header for the file @file{org-bbdb.el} contains 7360@samp{birthday}. Here are a few examples, the header for the file
7073more detailed information. 7361@file{org-bbdb.el} contains more detailed information.
7074 7362
7075@example 7363@example
70761973-06-22 73641973-06-22
736506-22
70771955-08-02 wedding 73661955-08-02 wedding
70782008-04-14 %s released version 6.01 of org-mode, %d years ago 73672008-04-14 %s released version 6.01 of org mode, %d years ago
7079@end example 7368@end example
7080 7369
7081After a change to BBDB, or for the first agenda display during an Emacs 7370After a change to BBDB, or for the first agenda display during an Emacs
@@ -7087,12 +7376,14 @@ in an Org or Diary file.
7087@subsubheading Appointment reminders 7376@subsubheading Appointment reminders
7088@cindex @file{appt.el} 7377@cindex @file{appt.el}
7089@cindex appointment reminders 7378@cindex appointment reminders
7379@cindex appointment
7380@cindex reminders
7090 7381
7091Org can interact with Emacs appointments notification facility. To add all 7382Org can interact with Emacs appointments notification facility. To add all
7092the appointments of your agenda files, use the command 7383the appointments of your agenda files, use the command
7093@code{org-agenda-to-appt}. This command also lets you filter through the 7384@code{org-agenda-to-appt}. This command also lets you filter through the
7094list of your appointments and add only those belonging to a specific category 7385list of your appointments and add only those belonging to a specific category
7095or matching a regular expression. See the docstring for details. 7386or matching a regular expression. See the docstring for details.
7096 7387
7097@node Global TODO list, Matching tags and properties, Weekly/daily agenda, Built-in agenda views 7388@node Global TODO list, Matching tags and properties, Weekly/daily agenda, Built-in agenda views
7098@subsection The global TODO list 7389@subsection The global TODO list
@@ -7265,7 +7556,7 @@ brackets (like @samp{DEADLINE<="<2008-12-24 18:30>"}), both values are
7265assumed to be date/time specifications in the standard Org way, and the 7556assumed to be date/time specifications in the standard Org way, and the
7266comparison will be done accordingly. Special values that will be recognized 7557comparison will be done accordingly. Special values that will be recognized
7267are @code{"<now>"} for now (including time), and @code{"<today>"}, and 7558are @code{"<now>"} for now (including time), and @code{"<today>"}, and
7268@code{"<tomorrow>"} for these days at 0:00 hours, i.e. without a time 7559@code{"<tomorrow>"} for these days at 0:00 hours, i.e.@: without a time
7269specification. Also strings like @code{"<+5d>"} or @code{"<-2m>"} with units 7560specification. Also strings like @code{"<+5d>"} or @code{"<-2m>"} with units
7270@code{d}, @code{w}, @code{m}, and @code{y} for day, week, month, and year, 7561@code{d}, @code{w}, @code{m}, and @code{y} for day, week, month, and year,
7271respectively, can be used. 7562respectively, can be used.
@@ -7288,7 +7579,7 @@ other properties will slow down the search. However, once you have paid the
7288price by accessing one property, testing additional properties is cheap 7579price by accessing one property, testing additional properties is cheap
7289again. 7580again.
7290 7581
7291You can configure Org-mode to use property inheritance during a search, but 7582You can configure Org mode to use property inheritance during a search, but
7292beware that this can slow down searches considerably. See @ref{Property 7583beware that this can slow down searches considerably. See @ref{Property
7293inheritance}, for details. 7584inheritance}, for details.
7294 7585
@@ -7321,7 +7612,7 @@ Select @samp{:work:}-tagged TODO lines that are either @samp{WAITING} or
7321@cindex timeline, single file 7612@cindex timeline, single file
7322@cindex time-sorted view 7613@cindex time-sorted view
7323 7614
7324The timeline summarizes all time-stamped items from a single Org-mode 7615The timeline summarizes all time-stamped items from a single Org mode
7325file in a @emph{time-sorted view}. The main purpose of this command is 7616file in a @emph{time-sorted view}. The main purpose of this command is
7326to give an overview over events in a project. 7617to give an overview over events in a project.
7327 7618
@@ -7342,7 +7633,7 @@ The commands available in the timeline buffer are listed in
7342@cindex text search 7633@cindex text search
7343@cindex searching, for text 7634@cindex searching, for text
7344 7635
7345This agenda view is a general text search facility for Org-mode entries. 7636This agenda view is a general text search facility for Org mode entries.
7346It is particularly useful to find notes. 7637It is particularly useful to find notes.
7347 7638
7348@table @kbd 7639@table @kbd
@@ -7368,12 +7659,13 @@ the files listed in @code{org-agenda-text-search-extra-files}.
7368 7659
7369@node Stuck projects, , Search view, Built-in agenda views 7660@node Stuck projects, , Search view, Built-in agenda views
7370@subsection Stuck projects 7661@subsection Stuck projects
7662@pindex GTD, Getting Things Done
7371 7663
7372If you are following a system like David Allen's GTD to organize your 7664If you are following a system like David Allen's GTD to organize your
7373work, one of the ``duties'' you have is a regular review to make sure 7665work, one of the ``duties'' you have is a regular review to make sure
7374that all projects move along. A @emph{stuck} project is a project that 7666that all projects move along. A @emph{stuck} project is a project that
7375has no defined next actions, so it will never show up in the TODO lists 7667has no defined next actions, so it will never show up in the TODO lists
7376Org-mode produces. During the review, you need to identify such 7668Org mode produces. During the review, you need to identify such
7377projects and define next actions for them. 7669projects and define next actions for them.
7378 7670
7379@table @kbd 7671@table @kbd
@@ -7391,7 +7683,7 @@ work for you. The built-in default assumes that all your projects are
7391level-2 headlines, and that a project is not stuck if it has at least 7683level-2 headlines, and that a project is not stuck if it has at least
7392one entry marked with a TODO keyword TODO or NEXT or NEXTACTION. 7684one entry marked with a TODO keyword TODO or NEXT or NEXTACTION.
7393 7685
7394Let's assume that you, in your own way of using Org-mode, identify 7686Let's assume that you, in your own way of using Org mode, identify
7395projects with a tag PROJECT, and that you use a TODO keyword MAYBE to 7687projects with a tag PROJECT, and that you use a TODO keyword MAYBE to
7396indicate a project that should not be considered yet. Let's further 7688indicate a project that should not be considered yet. Let's further
7397assume that the TODO keyword DONE marks finished projects, and that NEXT 7689assume that the TODO keyword DONE marks finished projects, and that NEXT
@@ -7418,12 +7710,14 @@ will still be searched for stuck projects.
7418@cindex presentation, of agenda items 7710@cindex presentation, of agenda items
7419 7711
7420@vindex org-agenda-prefix-format 7712@vindex org-agenda-prefix-format
7421Before displaying items in an agenda view, Org-mode visually prepares 7713@vindex org-agenda-tags-column
7422the items and sorts them. Each item occupies a single line. The line 7714Before displaying items in an agenda view, Org mode visually prepares the
7423starts with a @emph{prefix} that contains the @emph{category} 7715items and sorts them. Each item occupies a single line. The line starts
7424(@pxref{Categories}) of the item and other important information. You can 7716with a @emph{prefix} that contains the @emph{category} (@pxref{Categories})
7425customize the prefix using the option @code{org-agenda-prefix-format}. 7717of the item and other important information. You can customize in which
7426The prefix is followed by a cleaned-up version of the outline headline 7718column tags will be displayed through @code{org-agenda-tags-column}. You can
7719also customize the prefix using the option @code{org-agenda-prefix-format}.
7720This prefix is followed by a cleaned-up version of the outline headline
7427associated with the item. 7721associated with the item.
7428 7722
7429@menu 7723@menu
@@ -7470,7 +7764,7 @@ You can set up icons for category by customizing the
7470@subsection Time-of-day specifications 7764@subsection Time-of-day specifications
7471@cindex time-of-day specification 7765@cindex time-of-day specification
7472 7766
7473Org-mode checks each agenda item for a time-of-day specification. The 7767Org mode checks each agenda item for a time-of-day specification. The
7474time can be part of the timestamp that triggered inclusion into the 7768time can be part of the timestamp that triggered inclusion into the
7475agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time 7769agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time
7476ranges can be specified with two timestamps, like 7770ranges can be specified with two timestamps, like
@@ -7482,7 +7776,7 @@ plain text (like @samp{12:45} or a @samp{8:30-1pm}). If the agenda
7482integrates the Emacs diary (@pxref{Weekly/daily agenda}), time 7776integrates the Emacs diary (@pxref{Weekly/daily agenda}), time
7483specifications in diary entries are recognized as well. 7777specifications in diary entries are recognized as well.
7484 7778
7485For agenda display, Org-mode extracts the time and displays it in a 7779For agenda display, Org mode extracts the time and displays it in a
7486standard 24 hour format as part of the prefix. The example times in 7780standard 24 hour format as part of the prefix. The example times in
7487the previous paragraphs would end up in the agenda like this: 7781the previous paragraphs would end up in the agenda like this:
7488 7782
@@ -7608,34 +7902,31 @@ will be followed without a selection prompt.
7608 7902
7609@tsubheading{Change display} 7903@tsubheading{Change display}
7610@cindex display changing, in agenda 7904@cindex display changing, in agenda
7905@kindex A
7906@item A
7907Interactively select another agenda view and append it to the current view.
7908@c
7611@kindex o 7909@kindex o
7612@item o 7910@item o
7613Delete other windows. 7911Delete other windows.
7614@c 7912@c
7615@c @kindex v d 7913@orgcmdkskc{v d,d,org-agenda-day-view}
7616@c @kindex d 7914@xorgcmdkskc{v w,w,org-agenda-day-view}
7617@c @kindex v w
7618@c @kindex w
7619@c @kindex v m
7620@c @kindex v y
7621@c @item v d @ @r{or short} @ d
7622@c @itemx v w @ @r{or short} @ w
7623@c @itemx v m
7624@c @itemx v y
7625@orgcmdkskc{v d,d,org-aganda-day-view}
7626@xorgcmdkskc{v w,w,org-aganda-day-view}
7627@xorgcmd{v m,org-agenda-month-view} 7915@xorgcmd{v m,org-agenda-month-view}
7628@xorgcmd{v y,org-agenda-month-year} 7916@xorgcmd{v y,org-agenda-month-year}
7629Switch to day/week/month/year view. When switching to day or week view, 7917@xorgcmd{v SPC,org-agenda-reset-view}
7630this setting becomes the default for subsequent agenda commands. Since 7918@vindex org-agenda-span
7631month and year views are slow to create, they do not become the default. 7919Switch to day/week/month/year view. When switching to day or week view, this
7632A numeric prefix argument may be used to jump directly to a specific day 7920setting becomes the default for subsequent agenda refreshes. Since month and
7633of the year, ISO week, month, or year, respectively. For example, 7921year views are slow to create, they do not become the default. A numeric
7634@kbd{32 d} jumps to February 1st, @kbd{9 w} to ISO week number 9. When 7922prefix argument may be used to jump directly to a specific day of the year,
7635setting day, week, or month view, a year may be encoded in the prefix 7923ISO week, month, or year, respectively. For example, @kbd{32 d} jumps to
7636argument as well. For example, @kbd{200712 w} will jump to week 12 in 7924February 1st, @kbd{9 w} to ISO week number 9. When setting day, week, or
76372007. If such a year specification has only one or two digits, it will 7925month view, a year may be encoded in the prefix argument as well. For
7638be mapped to the interval 1938-2037. 7926example, @kbd{200712 w} will jump to week 12 in 2007. If such a year
7927specification has only one or two digits, it will be mapped to the interval
79281938-2037. @kbd{v @key{SPC}} will reset to what is set in
7929@code{org-agenda-span}.
7639@c 7930@c
7640@orgcmd{f,org-agenda-later} 7931@orgcmd{f,org-agenda-later}
7641Go forward in time to display the following @code{org-agenda-current-span} days. 7932Go forward in time to display the following @code{org-agenda-current-span} days.
@@ -7683,14 +7974,25 @@ press @kbd{v a} again.
7683@c 7974@c
7684@orgcmdkskc{v R,R,org-agenda-clockreport-mode} 7975@orgcmdkskc{v R,R,org-agenda-clockreport-mode}
7685@vindex org-agenda-start-with-clockreport-mode 7976@vindex org-agenda-start-with-clockreport-mode
7977@vindex org-clock-report-include-clocking-task
7686Toggle Clockreport mode. In Clockreport mode, the daily/weekly agenda will 7978Toggle Clockreport mode. In Clockreport mode, the daily/weekly agenda will
7687always show a table with the clocked times for the timespan and file scope 7979always show a table with the clocked times for the timespan and file scope
7688covered by the current agenda view. The initial setting for this mode in new 7980covered by the current agenda view. The initial setting for this mode in new
7689agenda buffers can be set with the variable 7981agenda buffers can be set with the variable
7690@code{org-agenda-start-with-clockreport-mode}. By using a prefix argument 7982@code{org-agenda-start-with-clockreport-mode}. By using a prefix argument
7691when toggling this mode (i.e. @kbd{C-u R}), the clock table will not show 7983when toggling this mode (i.e.@: @kbd{C-u R}), the clock table will not show
7692contributions from entries that are hidden by agenda filtering@footnote{Only 7984contributions from entries that are hidden by agenda filtering@footnote{Only
7693tags filtering will be respected here, effort filtering is ignored.}. 7985tags filtering will be respected here, effort filtering is ignored.}. See
7986also the variable @code{org-clock-report-include-clocking-task}.
7987@c
7988@orgkey{v c}
7989@vindex org-agenda-clock-consistency-checks
7990Show overlapping clock entries, clocking gaps, and other clocking problems in
7991the current agenda range. You can then visit clocking lines and fix them
7992manually. See the variable @code{org-agenda-clock-consistency-checks} for
7993information on how to customize the definition of what constituted a clocking
7994problem. To return to normal agenda display, press @kbd{l} to exit Logbook
7995mode.
7694@c 7996@c
7695@orgcmdkskc{v E,E,org-agenda-entry-text-mode} 7997@orgcmdkskc{v E,E,org-agenda-entry-text-mode}
7696@vindex org-agenda-start-with-entry-text-mode 7998@vindex org-agenda-start-with-entry-text-mode
@@ -7707,13 +8009,13 @@ prefix argument will temporarily modify that number to the prefix value.
7707Toggle the time grid on and off. See also the variables 8009Toggle the time grid on and off. See also the variables
7708@code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}. 8010@code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}.
7709@c 8011@c
7710@orgcmd{r,org-agenda-rodo} 8012@orgcmd{r,org-agenda-redo}
7711Recreate the agenda buffer, for example to reflect the changes after 8013Recreate the agenda buffer, for example to reflect the changes after
7712modification of the timestamps of items with @kbd{S-@key{left}} and 8014modification of the timestamps of items with @kbd{S-@key{left}} and
7713@kbd{S-@key{right}}. When the buffer is the global TODO list, a prefix 8015@kbd{S-@key{right}}. When the buffer is the global TODO list, a prefix
7714argument is interpreted to create a selective list for a specific TODO 8016argument is interpreted to create a selective list for a specific TODO
7715keyword. 8017keyword.
7716@orgcmd{g,org-agenda-rodo} 8018@orgcmd{g,org-agenda-redo}
7717Same as @kbd{r}. 8019Same as @kbd{r}.
7718@c 8020@c
7719@orgcmdkskc{C-x C-s,s,org-save-all-org-buffers} 8021@orgcmdkskc{C-x C-s,s,org-save-all-org-buffers}
@@ -7734,18 +8036,27 @@ Remove the restriction lock on the agenda, if it is currently restricted to a
7734file or subtree (@pxref{Agenda files}). 8036file or subtree (@pxref{Agenda files}).
7735 8037
7736@tsubheading{Secondary filtering and query editing} 8038@tsubheading{Secondary filtering and query editing}
7737@cindex filtering, by tag and effort, in agenda 8039@cindex filtering, by tag category and effort, in agenda
7738@cindex tag filtering, in agenda 8040@cindex tag filtering, in agenda
8041@cindex category filtering, in agenda
7739@cindex effort filtering, in agenda 8042@cindex effort filtering, in agenda
7740@cindex query editing, in agenda 8043@cindex query editing, in agenda
7741 8044
8045@orgcmd{<,org-agenda-filter-by-category}
8046@vindex org-agenda-category-filter-preset
8047
8048Filter the current agenda view with respect to the category of the item at
8049point. Pressing @code{<} another time will remove this filter. You can add
8050a filter preset through the option @code{org-agenda-category-filter-preset}
8051(see below.)
8052
7742@orgcmd{/,org-agenda-filter-by-tag} 8053@orgcmd{/,org-agenda-filter-by-tag}
7743@vindex org-agenda-filter-preset 8054@vindex org-agenda-tag-filter-preset
7744Filter the current agenda view with respect to a tag and/or effort estimates. 8055Filter the current agenda view with respect to a tag and/or effort estimates.
7745The difference between this and a custom agenda command is that filtering is 8056The difference between this and a custom agenda command is that filtering is
7746very fast, so that you can switch quickly between different filters without 8057very fast, so that you can switch quickly between different filters without
7747having to recreate the agenda.@footnote{Custom commands can preset a filter by 8058having to recreate the agenda.@footnote{Custom commands can preset a filter by
7748binding the variable @code{org-agenda-filter-preset} as an option. This 8059binding the variable @code{org-agenda-tag-filter-preset} as an option. This
7749filter will then be applied to the view and persist as a basic filter through 8060filter will then be applied to the view and persist as a basic filter through
7750refreshes and more secondary filtering. The filter is a global property of 8061refreshes and more secondary filtering. The filter is a global property of
7751the entire agenda view---in a block agenda, you should only set this in the 8062the entire agenda view---in a block agenda, you should only set this in the
@@ -7806,7 +8117,7 @@ Internet, and outside of business hours, with something like this:
7806@end group 8117@end group
7807@end lisp 8118@end lisp
7808 8119
7809@orgcmd{\,org-agenda-filter-by-tag-refine} 8120@orgcmd{\\,org-agenda-filter-by-tag-refine}
7810Narrow the current agenda filter by an additional condition. When called with 8121Narrow the current agenda filter by an additional condition. When called with
7811prefix arg, remove the entries that @emph{do} have the tag, or that do match 8122prefix arg, remove the entries that @emph{do} have the tag, or that do match
7812the effort criterion. You can achieve the same effect by pressing @kbd{+} or 8123the effort criterion. You can achieve the same effect by pressing @kbd{+} or
@@ -7889,8 +8200,8 @@ agenda, change a tag for all headings in the region.
7889@kindex , 8200@kindex ,
7890@item , 8201@item ,
7891Set the priority for the current item (@command{org-agenda-priority}). 8202Set the priority for the current item (@command{org-agenda-priority}).
7892Org-mode prompts for the priority character. If you reply with @key{SPC}, the 8203Org mode prompts for the priority character. If you reply with @key{SPC},
7893priority cookie is removed from the entry. 8204the priority cookie is removed from the entry.
7894@c 8205@c
7895@orgcmd{P,org-agenda-show-priority} 8206@orgcmd{P,org-agenda-show-priority}
7896Display weighted priority of current item. 8207Display weighted priority of current item.
@@ -7935,13 +8246,15 @@ command.
7935@c 8246@c
7936@orgcmd{S-@key{right},org-agenda-do-date-later} 8247@orgcmd{S-@key{right},org-agenda-do-date-later}
7937Change the timestamp associated with the current line by one day into the 8248Change the timestamp associated with the current line by one day into the
7938future. With a numeric prefix argument, change it by that many days. For 8249future. If the date is in the past, the first call to this command will move
7939example, @kbd{3 6 5 S-@key{right}} will change it by a year. With a 8250it to today.@*
7940@kbd{C-u} prefix, change the time by one hour. If you immediately repeat the 8251With a numeric prefix argument, change it by that many days. For example,
7941command, it will continue to change hours even without the prefix arg. With 8252@kbd{3 6 5 S-@key{right}} will change it by a year. With a @kbd{C-u} prefix,
7942a double @kbd{C-u C-u} prefix, do the same for changing minutes. The stamp 8253change the time by one hour. If you immediately repeat the command, it will
7943is changed in the original Org file, but the change is not directly reflected 8254continue to change hours even without the prefix arg. With a double @kbd{C-u
7944in the agenda buffer. Use @kbd{r} or @kbd{g} to update the buffer. 8255C-u} prefix, do the same for changing minutes.@*
8256The stamp is changed in the original Org file, but the change is not directly
8257reflected in the agenda buffer. Use @kbd{r} or @kbd{g} to update the buffer.
7945@c 8258@c
7946@orgcmd{S-@key{left},org-agenda-do-date-earlier} 8259@orgcmd{S-@key{left},org-agenda-do-date-earlier}
7947Change the timestamp associated with the current line by one day 8260Change the timestamp associated with the current line by one day
@@ -7971,6 +8284,9 @@ Jump to the running clock in another window.
7971Mark the entry at point for bulk action. With prefix arg, mark that many 8284Mark the entry at point for bulk action. With prefix arg, mark that many
7972successive entries. 8285successive entries.
7973@c 8286@c
8287@orgcmd{%,org-agenda-bulk-mark-regexp}
8288Mark entries matching a regular expression for bulk action.
8289@c
7974@orgcmd{u,org-agenda-bulk-unmark} 8290@orgcmd{u,org-agenda-bulk-unmark}
7975Unmark entry for bulk action. 8291Unmark entry for bulk action.
7976@c 8292@c
@@ -7989,15 +8305,30 @@ $ @r{Archive all selected entries.}
7989A @r{Archive entries by moving them to their respective archive siblings.} 8305A @r{Archive entries by moving them to their respective archive siblings.}
7990t @r{Change TODO state. This prompts for a single TODO keyword and} 8306t @r{Change TODO state. This prompts for a single TODO keyword and}
7991 @r{changes the state of all selected entries, bypassing blocking and} 8307 @r{changes the state of all selected entries, bypassing blocking and}
7992 @r{suppressing logging notes (but not time stamps).} 8308 @r{suppressing logging notes (but not timestamps).}
7993+ @r{Add a tag to all selected entries.} 8309+ @r{Add a tag to all selected entries.}
7994- @r{Remove a tag from all selected entries.} 8310- @r{Remove a tag from all selected entries.}
7995s @r{Schedule all items to a new date. To shift existing schedule dates} 8311s @r{Schedule all items to a new date. To shift existing schedule dates}
7996 @r{by a fixed number of days, use something starting with double plus} 8312 @r{by a fixed number of days, use something starting with double plus}
7997 @r{at the prompt, for example @samp{++8d} or @samp{++2w}.} 8313 @r{at the prompt, for example @samp{++8d} or @samp{++2w}.}
7998S @r{Reschedule randomly by N days. N will be prompted for. With prefix} 8314S @r{Reschedule randomly into the coming N days. N will be prompted for.}
7999 @r{arg (@kbd{C-u B S}), scatter only accross weekdays.} 8315 @r{With prefix arg (@kbd{C-u B S}), scatter only across weekdays.}
8000d @r{Set deadline to a specific date.} 8316d @r{Set deadline to a specific date.}
8317f @r{Apply a function to marked entries.}
8318 @r{For example, the function below sets the CATEGORY property of the}
8319 @r{entries to web.}
8320 @r{(defun set-category ()}
8321 @r{ (interactive "P")}
8322 @r{ (let* ((marker (or (org-get-at-bol 'org-hd-marker)}
8323 @r{ (org-agenda-error)))}
8324 @r{ (buffer (marker-buffer marker)))}
8325 @r{ (with-current-buffer buffer}
8326 @r{ (save-excursion}
8327 @r{ (save-restriction}
8328 @r{ (widen)}
8329 @r{ (goto-char marker)}
8330 @r{ (org-back-to-heading t)}
8331 @r{ (org-set-property "CATEGORY" "web"))))))}
8001@end example 8332@end example
8002 8333
8003 8334
@@ -8008,7 +8339,7 @@ d @r{Set deadline to a specific date.}
8008Open the Emacs calendar and move to the date at the agenda cursor. 8339Open the Emacs calendar and move to the date at the agenda cursor.
8009@c 8340@c
8010@orgcmd{c,org-calendar-goto-agenda} 8341@orgcmd{c,org-calendar-goto-agenda}
8011When in the calendar, compute and show the Org-mode agenda for the 8342When in the calendar, compute and show the Org mode agenda for the
8012date at the cursor. 8343date at the cursor.
8013@c 8344@c
8014@cindex diary entries, creating from agenda 8345@cindex diary entries, creating from agenda
@@ -8021,8 +8352,8 @@ file@footnote{This file is parsed for the agenda when
8021command in the calendar. The diary file will pop up in another window, where 8352command in the calendar. The diary file will pop up in another window, where
8022you can add the entry. 8353you can add the entry.
8023 8354
8024If you configure @code{org-agenda-diary-file} to point to an Org-mode file, 8355If you configure @code{org-agenda-diary-file} to point to an Org mode file,
8025Org will create entries (in org-mode syntax) in that file instead. Most 8356Org will create entries (in Org mode syntax) in that file instead. Most
8026entries will be stored in a date-based outline tree that will later make it 8357entries will be stored in a date-based outline tree that will later make it
8027easy to archive appointments from previous months/years. The tree will be 8358easy to archive appointments from previous months/years. The tree will be
8028built under an entry with a @code{DATE_TREE} property, or else with years as 8359built under an entry with a @code{DATE_TREE} property, or else with years as
@@ -8198,7 +8529,7 @@ command @kbd{C-c a o} provides a similar view for office tasks.
8198@cindex options, for custom agenda views 8529@cindex options, for custom agenda views
8199 8530
8200@vindex org-agenda-custom-commands 8531@vindex org-agenda-custom-commands
8201Org-mode contains a number of variables regulating agenda construction 8532Org mode contains a number of variables regulating agenda construction
8202and display. The global variables define the behavior for all agenda 8533and display. The global variables define the behavior for all agenda
8203commands, including the custom commands. However, if you want to change 8534commands, including the custom commands. However, if you want to change
8204some settings just for a single custom view, you can do so. Setting 8535some settings just for a single custom view, you can do so. Setting
@@ -8270,11 +8601,11 @@ yourself.
8270@cindex agenda views, exporting 8601@cindex agenda views, exporting
8271 8602
8272If you are away from your computer, it can be very useful to have a printed 8603If you are away from your computer, it can be very useful to have a printed
8273version of some agenda views to carry around. Org-mode can export custom 8604version of some agenda views to carry around. Org mode can export custom
8274agenda views as plain text, HTML@footnote{You need to install Hrvoje Niksic's 8605agenda views as plain text, HTML@footnote{You need to install Hrvoje Niksic's
8275@file{htmlize.el}.}, Postscript, PDF@footnote{To create PDF output, the 8606@file{htmlize.el}.}, Postscript, PDF@footnote{To create PDF output, the
8276ghostscript @file{ps2pdf} utility must be installed on the system. Selecting 8607ghostscript @file{ps2pdf} utility must be installed on the system. Selecting
8277a PDF file with also create the postscript file.}, and iCalendar files. If 8608a PDF file will also create the postscript file.}, and iCalendar files. If
8278you want to do this only occasionally, use the command 8609you want to do this only occasionally, use the command
8279 8610
8280@table @kbd 8611@table @kbd
@@ -8334,7 +8665,7 @@ or absolute.
8334@end lisp 8665@end lisp
8335 8666
8336The extension of the file name determines the type of export. If it is 8667The extension of the file name determines the type of export. If it is
8337@file{.html}, Org-mode will use the @file{htmlize.el} package to convert 8668@file{.html}, Org mode will use the @file{htmlize.el} package to convert
8338the buffer to HTML and save it to this file name. If the extension is 8669the buffer to HTML and save it to this file name. If the extension is
8339@file{.ps}, @code{ps-print-buffer-with-faces} is used to produce 8670@file{.ps}, @code{ps-print-buffer-with-faces} is used to produce
8340Postscript output. If the extension is @file{.ics}, iCalendar export is 8671Postscript output. If the extension is @file{.ics}, iCalendar export is
@@ -8381,14 +8712,14 @@ in @code{org-agenda-custom-commands} take precedence.
8381@noindent 8712@noindent
8382From the command line you may also use 8713From the command line you may also use
8383@example 8714@example
8384emacs -f org-batch-store-agenda-views -kill 8715emacs -eval (org-batch-store-agenda-views) -kill
8385@end example 8716@end example
8386@noindent 8717@noindent
8387or, if you need to modify some parameters@footnote{Quoting depends on the 8718or, if you need to modify some parameters@footnote{Quoting depends on the
8388system you use, please check the FAQ for examples.} 8719system you use, please check the FAQ for examples.}
8389@example 8720@example
8390emacs -eval '(org-batch-store-agenda-views \ 8721emacs -eval '(org-batch-store-agenda-views \
8391 org-agenda-span month \ 8722 org-agenda-span (quote month) \
8392 org-agenda-start-day "2007-11-01" \ 8723 org-agenda-start-day "2007-11-01" \
8393 org-agenda-include-diary nil \ 8724 org-agenda-include-diary nil \
8394 org-agenda-files (quote ("~/org/project.org")))' \ 8725 org-agenda-files (quote ("~/org/project.org")))' \
@@ -8430,7 +8761,7 @@ This causes the following issues:
8430Org needs to make a decision which @code{COLUMNS} format to use. Since the 8761Org needs to make a decision which @code{COLUMNS} format to use. Since the
8431entries in the agenda are collected from different files, and different files 8762entries in the agenda are collected from different files, and different files
8432may have different @code{COLUMNS} formats, this is a non-trivial problem. 8763may have different @code{COLUMNS} formats, this is a non-trivial problem.
8433Org first checks if the variable @code{org-overriding-columns-format} is 8764Org first checks if the variable @code{org-agenda-overriding-columns-format} is
8434currently set, and if so, takes the format from there. Otherwise it takes 8765currently set, and if so, takes the format from there. Otherwise it takes
8435the format associated with the first item in the agenda, or, if that item 8766the format associated with the first item in the agenda, or, if that item
8436does not have a specific format (defined in a property, or in its file), it 8767does not have a specific format (defined in a property, or in its file), it
@@ -8463,11 +8794,11 @@ the agenda).
8463@node Markup, Exporting, Agenda Views, Top 8794@node Markup, Exporting, Agenda Views, Top
8464@chapter Markup for rich export 8795@chapter Markup for rich export
8465 8796
8466When exporting Org-mode documents, the exporter tries to reflect the 8797When exporting Org mode documents, the exporter tries to reflect the
8467structure of the document as accurately as possible in the backend. Since 8798structure of the document as accurately as possible in the backend. Since
8468export targets like HTML, @LaTeX{}, or DocBook allow much richer formatting, 8799export targets like HTML, @LaTeX{}, or DocBook allow much richer formatting,
8469Org-mode has rules on how to prepare text for rich export. This section 8800Org mode has rules on how to prepare text for rich export. This section
8470summarizes the markup rules used in an Org-mode buffer. 8801summarizes the markup rules used in an Org mode buffer.
8471 8802
8472@menu 8803@menu
8473* Structural markup elements:: The basic structure as seen by the exporter 8804* Structural markup elements:: The basic structure as seen by the exporter
@@ -8476,7 +8807,7 @@ summarizes the markup rules used in an Org-mode buffer.
8476* Include files:: Include additional files into a document 8807* Include files:: Include additional files into a document
8477* Index entries:: Making an index 8808* Index entries:: Making an index
8478* Macro replacement:: Use macros to create complex output 8809* Macro replacement:: Use macros to create complex output
8479* Embedded LaTeX:: LaTeX can be freely used inside Org documents 8810* Embedded @LaTeX{}:: LaTeX can be freely used inside Org documents
8480@end menu 8811@end menu
8481 8812
8482@node Structural markup elements, Images and tables, Markup, Markup 8813@node Structural markup elements, Images and tables, Markup, Markup
@@ -8559,7 +8890,7 @@ the table of contents entirely, by configuring the variable
8559@cindex text before first headline, markup rules 8890@cindex text before first headline, markup rules
8560@cindex #+TEXT 8891@cindex #+TEXT
8561 8892
8562Org-mode normally exports the text before the first headline, and even uses 8893Org mode normally exports the text before the first headline, and even uses
8563the first line as the document title. The text will be fully marked up. If 8894the first line as the document title. The text will be fully marked up. If
8564you need to include literal HTML, @LaTeX{}, or DocBook code, use the special 8895you need to include literal HTML, @LaTeX{}, or DocBook code, use the special
8565constructs described below in the sections for the individual exporters. 8896constructs described below in the sections for the individual exporters.
@@ -8579,7 +8910,7 @@ If you still want to have some text before the first headline, use the
8579#+OPTIONS: skip:t 8910#+OPTIONS: skip:t
8580#+TEXT: This text will go before the *first* headline. 8911#+TEXT: This text will go before the *first* headline.
8581#+TEXT: [TABLE-OF-CONTENTS] 8912#+TEXT: [TABLE-OF-CONTENTS]
8582#+TEXT: This goes between the table of contents and the first headline 8913#+TEXT: This goes between the table of contents and the *first* headline
8583@end example 8914@end example
8584 8915
8585@node Lists, Paragraphs, Initial text, Structural markup elements 8916@node Lists, Paragraphs, Initial text, Structural markup elements
@@ -8613,7 +8944,7 @@ can use this construct, which can also be used to format poetry.
8613 8944
8614When quoting a passage from another document, it is customary to format this 8945When quoting a passage from another document, it is customary to format this
8615as a paragraph that is indented on both the left and the right margin. You 8946as a paragraph that is indented on both the left and the right margin. You
8616can include quotations in Org-mode documents like this: 8947can include quotations in Org mode documents like this:
8617 8948
8618@cindex #+BEGIN_QUOTE 8949@cindex #+BEGIN_QUOTE
8619@example 8950@example
@@ -8638,9 +8969,9 @@ but not any simpler
8638@cindex footnotes, markup rules 8969@cindex footnotes, markup rules
8639@cindex @file{footnote.el} 8970@cindex @file{footnote.el}
8640 8971
8641Footnotes defined in the way described in @ref{Footnotes}, will be exported by 8972Footnotes defined in the way described in @ref{Footnotes}, will be exported
8642all backends. Org allows multiple references to the same note, and 8973by all backends. Org allows multiple references to the same note, and
8643different backends support this to varying degrees. 8974multiple footnotes side by side.
8644 8975
8645@node Emphasis and monospace, Horizontal rules, Footnote markup, Structural markup elements 8976@node Emphasis and monospace, Horizontal rules, Footnote markup, Structural markup elements
8646@subheading Emphasis and monospace 8977@subheading Emphasis and monospace
@@ -8653,14 +8984,14 @@ different backends support this to varying degrees.
8653@cindex strike-through text, markup rules 8984@cindex strike-through text, markup rules
8654You can make words @b{*bold*}, @i{/italic/}, _underlined_, @code{=code=} 8985You can make words @b{*bold*}, @i{/italic/}, _underlined_, @code{=code=}
8655and @code{~verbatim~}, and, if you must, @samp{+strike-through+}. Text 8986and @code{~verbatim~}, and, if you must, @samp{+strike-through+}. Text
8656in the code and verbatim string is not processed for Org-mode specific 8987in the code and verbatim string is not processed for Org mode specific
8657syntax; it is exported verbatim. 8988syntax; it is exported verbatim.
8658 8989
8659@node Horizontal rules, Comment lines, Emphasis and monospace, Structural markup elements 8990@node Horizontal rules, Comment lines, Emphasis and monospace, Structural markup elements
8660@subheading Horizontal rules 8991@subheading Horizontal rules
8661@cindex horizontal rules, markup rules 8992@cindex horizontal rules, markup rules
8662A line consisting of only dashes, and at least 5 of them, will be 8993A line consisting of only dashes, and at least 5 of them, will be exported as
8663exported as a horizontal line (@samp{<hr/>} in HTML). 8994a horizontal line (@samp{<hr/>} in HTML and @code{\hrule} in @LaTeX{}).
8664 8995
8665@node Comment lines, , Horizontal rules, Structural markup elements 8996@node Comment lines, , Horizontal rules, Structural markup elements
8666@subheading Comment lines 8997@subheading Comment lines
@@ -8669,7 +9000,7 @@ exported as a horizontal line (@samp{<hr/>} in HTML).
8669@cindex #+BEGIN_COMMENT 9000@cindex #+BEGIN_COMMENT
8670 9001
8671Lines starting with @samp{#} in column zero are treated as comments and will 9002Lines starting with @samp{#} in column zero are treated as comments and will
8672never be exported. If you want an indented line to be treated as a comment, 9003never be exported. If you want an indented line to be treated as a comment,
8673start it with @samp{#+ }. Also entire subtrees starting with the word 9004start it with @samp{#+ }. Also entire subtrees starting with the word
8674@samp{COMMENT} will never be exported. Finally, regions surrounded by 9005@samp{COMMENT} will never be exported. Finally, regions surrounded by
8675@samp{#+BEGIN_COMMENT} ... @samp{#+END_COMMENT} will not be exported. 9006@samp{#+BEGIN_COMMENT} ... @samp{#+END_COMMENT} will not be exported.
@@ -8687,8 +9018,8 @@ Toggle the COMMENT keyword at the beginning of an entry.
8687@cindex tables, markup rules 9018@cindex tables, markup rules
8688@cindex #+CAPTION 9019@cindex #+CAPTION
8689@cindex #+LABEL 9020@cindex #+LABEL
8690Both the native Org-mode tables (@pxref{Tables}) and tables formatted with 9021Both the native Org mode tables (@pxref{Tables}) and tables formatted with
8691the @file{table.el} package will be exported properly. For Org-mode tables, 9022the @file{table.el} package will be exported properly. For Org mode tables,
8692the lines before the first horizontal separator line will become table header 9023the lines before the first horizontal separator line will become table header
8693lines. You can use the following lines somewhere before the table to assign 9024lines. You can use the following lines somewhere before the table to assign
8694a caption and a label for cross references, and in the text you can refer to 9025a caption and a label for cross references, and in the text you can refer to
@@ -8701,6 +9032,11 @@ the object with @code{\ref@{tab:basic-data@}}:
8701 |-----|----| 9032 |-----|----|
8702@end example 9033@end example
8703 9034
9035Optionally, the caption can take the form:
9036@example
9037#+CAPTION: [Caption for list of figures]@{Caption for table (or link).@}
9038@end example
9039
8704@cindex inlined images, markup rules 9040@cindex inlined images, markup rules
8705Some backends (HTML, @LaTeX{}, and DocBook) allow you to directly include 9041Some backends (HTML, @LaTeX{}, and DocBook) allow you to directly include
8706images into the exported document. Org does this, if a link to an image 9042images into the exported document. Org does this, if a link to an image
@@ -8753,22 +9089,25 @@ If the example is source code from a programming language, or any other text
8753that can be marked up by font-lock in Emacs, you can ask for the example to 9089that can be marked up by font-lock in Emacs, you can ask for the example to
8754look like the fontified Emacs buffer@footnote{This works automatically for 9090look like the fontified Emacs buffer@footnote{This works automatically for
8755the HTML backend (it requires version 1.34 of the @file{htmlize.el} package, 9091the HTML backend (it requires version 1.34 of the @file{htmlize.el} package,
8756which is distributed with Org). Fontified code chunks in LaTeX can be 9092which is distributed with Org). Fontified code chunks in @LaTeX{} can be
8757achieved using either the listings or the 9093achieved using either the listings or the
8758@url{http://code.google.com/p/minted, minted,} package. To use listings, turn 9094@url{http://code.google.com/p/minted, minted,} package. To use listings, turn
8759on the variable @code{org-export-latex-listings} and ensure that the listings 9095on the variable @code{org-export-latex-listings} and ensure that the listings
8760package is included by the LaTeX header (e.g. by configuring 9096package is included by the @LaTeX{} header (e.g.@: by configuring
8761@code{org-export-latex-packages-alist}). See the listings documentation for 9097@code{org-export-latex-packages-alist}). See the listings documentation for
8762configuration options, including obtaining colored output. For minted it is 9098configuration options, including obtaining colored output. For minted it is
8763necessary to install the program @url{http://pygments.org, pygments}, in 9099necessary to install the program @url{http://pygments.org, pygments}, in
8764addition to setting @code{org-export-latex-minted}, ensuring that the minted 9100addition to setting @code{org-export-latex-minted}, ensuring that the minted
8765package is included by the LaTeX header, and ensuring that the 9101package is included by the @LaTeX{} header, and ensuring that the
8766@code{-shell-escape} option is passed to @file{pdflatex} (see 9102@code{-shell-escape} option is passed to @file{pdflatex} (see
8767@code{org-latex-to-pdf-process}). See the documentation of the variables 9103@code{org-latex-to-pdf-process}). See the documentation of the variables
8768@code{org-export-latex-listings} and @code{org-export-latex-minted} for 9104@code{org-export-latex-listings} and @code{org-export-latex-minted} for
8769further details.}. This is done with the @samp{src} block, where you also 9105further details.}. This is done with the @samp{src} block, where you also
8770need to specify the name of the major mode that should be used to fontify the 9106need to specify the name of the major mode that should be used to fontify the
8771example: 9107example@footnote{Code in @samp{src} blocks may also be evaluated either
9108interactively or on export. See @pxref{Working With Source Code} for more
9109information on evaluating code blocks.}, see @ref{Easy Templates} for
9110shortcuts to easily insert code blocks.
8772@cindex #+BEGIN_SRC 9111@cindex #+BEGIN_SRC
8773 9112
8774@example 9113@example
@@ -8784,7 +9123,7 @@ switch to the end of the @code{BEGIN} line, to get the lines of the example
8784numbered. If you use a @code{+n} switch, the numbering from the previous 9123numbered. If you use a @code{+n} switch, the numbering from the previous
8785numbered snippet will be continued in the current one. In literal examples, 9124numbered snippet will be continued in the current one. In literal examples,
8786Org will interpret strings like @samp{(ref:name)} as labels, and use them as 9125Org will interpret strings like @samp{(ref:name)} as labels, and use them as
8787targets for special hyperlinks like @code{[[(name)]]} (i.e. the reference name 9126targets for special hyperlinks like @code{[[(name)]]} (i.e.@: the reference name
8788enclosed in single parenthesis). In HTML, hovering the mouse over such a 9127enclosed in single parenthesis). In HTML, hovering the mouse over such a
8789link will remote-highlight the corresponding code line, which is kind of 9128link will remote-highlight the corresponding code line, which is kind of
8790cool. 9129cool.
@@ -8792,7 +9131,7 @@ cool.
8792You can also add a @code{-r} switch which @i{removes} the labels from the 9131You can also add a @code{-r} switch which @i{removes} the labels from the
8793source code@footnote{Adding @code{-k} to @code{-n -r} will @i{keep} the 9132source code@footnote{Adding @code{-k} to @code{-n -r} will @i{keep} the
8794labels in the source code while using line numbers for the links, which might 9133labels in the source code while using line numbers for the links, which might
8795be useful to explain those in an org-mode example code.}. With the @code{-n} 9134be useful to explain those in an Org mode example code.}. With the @code{-n}
8796switch, links to these references will be labeled by the line numbers from 9135switch, links to these references will be labeled by the line numbers from
8797the code listing, otherwise links will use the labels with no parentheses. 9136the code listing, otherwise links will use the labels with no parentheses.
8798Here is an example: 9137Here is an example:
@@ -8811,8 +9150,12 @@ If the syntax for the label format conflicts with the language syntax, use a
8811@code{-l} switch to change the format, for example @samp{#+BEGIN_SRC pascal 9150@code{-l} switch to change the format, for example @samp{#+BEGIN_SRC pascal
8812-n -r -l "((%s))"}. See also the variable @code{org-coderef-label-format}. 9151-n -r -l "((%s))"}. See also the variable @code{org-coderef-label-format}.
8813 9152
8814HTML export also allows examples to be published as text areas, @xref{Text 9153HTML export also allows examples to be published as text areas (@pxref{Text
8815areas in HTML export}. 9154areas in HTML export}).
9155
9156Because the @code{#+BEGIN_...} and @code{#+END_...} patterns need to be added
9157so often, shortcuts are provided using the Easy Templates facility
9158(@pxref{Easy Templates}).
8816 9159
8817@table @kbd 9160@table @kbd
8818@kindex C-c ' 9161@kindex C-c '
@@ -8851,14 +9194,14 @@ include your @file{.emacs} file, you could use:
8851#+INCLUDE: "~/.emacs" src emacs-lisp 9194#+INCLUDE: "~/.emacs" src emacs-lisp
8852@end example 9195@end example
8853@noindent 9196@noindent
8854The optional second and third parameter are the markup (e.g. @samp{quote}, 9197The optional second and third parameter are the markup (e.g.@: @samp{quote},
8855@samp{example}, or @samp{src}), and, if the markup is @samp{src}, the 9198@samp{example}, or @samp{src}), and, if the markup is @samp{src}, the
8856language for formatting the contents. The markup is optional; if it is not 9199language for formatting the contents. The markup is optional; if it is not
8857given, the text will be assumed to be in Org-mode format and will be 9200given, the text will be assumed to be in Org mode format and will be
8858processed normally. The include line will also allow additional keyword 9201processed normally. The include line will also allow additional keyword
8859parameters @code{:prefix1} and @code{:prefix} to specify prefixes for the 9202parameters @code{:prefix1} and @code{:prefix} to specify prefixes for the
8860first line and for each following line, @code{:minlevel} in order to get 9203first line and for each following line, @code{:minlevel} in order to get
8861org-mode content demoted to a specified level, as well as any options 9204Org mode content demoted to a specified level, as well as any options
8862accepted by the selected markup. For example, to include a file as an item, 9205accepted by the selected markup. For example, to include a file as an item,
8863use 9206use
8864 9207
@@ -8866,6 +9209,17 @@ use
8866#+INCLUDE: "~/snippets/xx" :prefix1 " + " :prefix " " 9209#+INCLUDE: "~/snippets/xx" :prefix1 " + " :prefix " "
8867@end example 9210@end example
8868 9211
9212You can also include a portion of a file by specifying a lines range using
9213the @code{:lines} parameter. The line at the upper end of the range will not
9214be included. The start and/or the end of the range may be omitted to use the
9215obvious defaults.
9216
9217@example
9218#+INCLUDE: "~/.emacs" :lines "5-10" @r{Include lines 5 to 10, 10 excluded}
9219#+INCLUDE: "~/.emacs" :lines "-10" @r{Include lines 1 to 10, 10 excluded}
9220#+INCLUDE: "~/.emacs" :lines "10-" @r{Include lines from 10 to EOF}
9221@end example
9222
8869@table @kbd 9223@table @kbd
8870@kindex C-c ' 9224@kindex C-c '
8871@item C-c ' 9225@item C-c '
@@ -8890,7 +9244,7 @@ an index} for more information.
8890 9244
8891 9245
8892 9246
8893@node Macro replacement, Embedded LaTeX, Index entries, Markup 9247@node Macro replacement, Embedded @LaTeX{}, Index entries, Markup
8894@section Macro replacement 9248@section Macro replacement
8895@cindex macro replacement, during export 9249@cindex macro replacement, during export
8896@cindex #+MACRO 9250@cindex #+MACRO
@@ -8915,7 +9269,7 @@ Macro expansion takes place during export, and some people use it to
8915construct complex HTML code. 9269construct complex HTML code.
8916 9270
8917 9271
8918@node Embedded LaTeX, , Macro replacement, Markup 9272@node Embedded @LaTeX{}, , Macro replacement, Markup
8919@section Embedded @LaTeX{} 9273@section Embedded @LaTeX{}
8920@cindex @TeX{} interpretation 9274@cindex @TeX{} interpretation
8921@cindex @LaTeX{} interpretation 9275@cindex @LaTeX{} interpretation
@@ -8925,7 +9279,7 @@ include scientific notes, which often require mathematical symbols and the
8925occasional formula. @LaTeX{}@footnote{@LaTeX{} is a macro system based on 9279occasional formula. @LaTeX{}@footnote{@LaTeX{} is a macro system based on
8926Donald E. Knuth's @TeX{} system. Many of the features described here as 9280Donald E. Knuth's @TeX{} system. Many of the features described here as
8927``@LaTeX{}'' are really from @TeX{}, but for simplicity I am blurring this 9281``@LaTeX{}'' are really from @TeX{}, but for simplicity I am blurring this
8928distinction.} is widely used to typeset scientific documents. Org-mode 9282distinction.} is widely used to typeset scientific documents. Org mode
8929supports embedding @LaTeX{} code into its files, because many academics are 9283supports embedding @LaTeX{} code into its files, because many academics are
8930used to writing and reading @LaTeX{} source code, and because it can be 9284used to writing and reading @LaTeX{} source code, and because it can be
8931readily processed to produce pretty output for a number of export backends. 9285readily processed to produce pretty output for a number of export backends.
@@ -8933,12 +9287,12 @@ readily processed to produce pretty output for a number of export backends.
8933@menu 9287@menu
8934* Special symbols:: Greek letters and other symbols 9288* Special symbols:: Greek letters and other symbols
8935* Subscripts and superscripts:: Simple syntax for raising/lowering text 9289* Subscripts and superscripts:: Simple syntax for raising/lowering text
8936* LaTeX fragments:: Complex formulas made easy 9290* @LaTeX{} fragments:: Complex formulas made easy
8937* Previewing LaTeX fragments:: What will this snippet look like? 9291* Previewing @LaTeX{} fragments:: What will this snippet look like?
8938* CDLaTeX mode:: Speed up entering of formulas 9292* CDLaTeX mode:: Speed up entering of formulas
8939@end menu 9293@end menu
8940 9294
8941@node Special symbols, Subscripts and superscripts, Embedded LaTeX, Embedded LaTeX 9295@node Special symbols, Subscripts and superscripts, Embedded @LaTeX{}, Embedded @LaTeX{}
8942@subsection Special symbols 9296@subsection Special symbols
8943@cindex math symbols 9297@cindex math symbols
8944@cindex special symbols 9298@cindex special symbols
@@ -8951,7 +9305,7 @@ You can use @LaTeX{} macros to insert special symbols like @samp{\alpha} to
8951indicate the Greek letter, or @samp{\to} to indicate an arrow. Completion 9305indicate the Greek letter, or @samp{\to} to indicate an arrow. Completion
8952for these macros is available, just type @samp{\} and maybe a few letters, 9306for these macros is available, just type @samp{\} and maybe a few letters,
8953and press @kbd{M-@key{TAB}} to see possible completions. Unlike @LaTeX{} 9307and press @kbd{M-@key{TAB}} to see possible completions. Unlike @LaTeX{}
8954code, Org-mode allows these macros to be present without surrounding math 9308code, Org mode allows these macros to be present without surrounding math
8955delimiters, for example: 9309delimiters, for example:
8956 9310
8957@example 9311@example
@@ -8985,7 +9339,7 @@ buffer content which remains plain ASCII, but it overlays the UTF-8 character
8985for display purposes only. 9339for display purposes only.
8986@end table 9340@end table
8987 9341
8988@node Subscripts and superscripts, LaTeX fragments, Special symbols, Embedded LaTeX 9342@node Subscripts and superscripts, @LaTeX{} fragments, Special symbols, Embedded @LaTeX{}
8989@subsection Subscripts and superscripts 9343@subsection Subscripts and superscripts
8990@cindex subscript 9344@cindex subscript
8991@cindex superscript 9345@cindex superscript
@@ -9023,13 +9377,13 @@ In addition to showing entities as UTF-8 characters, this command will also
9023format sub- and superscripts in a WYSIWYM way. 9377format sub- and superscripts in a WYSIWYM way.
9024@end table 9378@end table
9025 9379
9026@node LaTeX fragments, Previewing LaTeX fragments, Subscripts and superscripts, Embedded LaTeX 9380@node @LaTeX{} fragments, Previewing @LaTeX{} fragments, Subscripts and superscripts, Embedded @LaTeX{}
9027@subsection @LaTeX{} fragments 9381@subsection @LaTeX{} fragments
9028@cindex @LaTeX{} fragments 9382@cindex @LaTeX{} fragments
9029 9383
9030@vindex org-format-latex-header 9384@vindex org-format-latex-header
9031Going beyond symbols and sub- and superscripts, a full formula language is 9385Going beyond symbols and sub- and superscripts, a full formula language is
9032needed. Org-mode can contain @LaTeX{} math fragments, and it supports ways 9386needed. Org mode can contain @LaTeX{} math fragments, and it supports ways
9033to process these for several export backends. When exporting to @LaTeX{}, 9387to process these for several export backends. When exporting to @LaTeX{},
9034the code is obviously left as it is. When exporting to HTML, Org invokes the 9388the code is obviously left as it is. When exporting to HTML, Org invokes the
9035@uref{http://www.mathjax.org, MathJax library} (@pxref{Math formatting in 9389@uref{http://www.mathjax.org, MathJax library} (@pxref{Math formatting in
@@ -9038,7 +9392,7 @@ this regularly or on pages with significant page views, you should install
9038@file{MathJax} on your own 9392@file{MathJax} on your own
9039server in order to limit the load of our server.}. Finally, it can also 9393server in order to limit the load of our server.}. Finally, it can also
9040process the mathematical expressions into images@footnote{For this to work 9394process the mathematical expressions into images@footnote{For this to work
9041you need to be on a system with a working @LaTeX{} installation. You also 9395you need to be on a system with a working @LaTeX{} installation. You also
9042need the @file{dvipng} program, available at 9396need the @file{dvipng} program, available at
9043@url{http://sourceforge.net/projects/dvipng/}. The @LaTeX{} header that will 9397@url{http://sourceforge.net/projects/dvipng/}. The @LaTeX{} header that will
9044be used when processing a fragment can be configured with the variable 9398be used when processing a fragment can be configured with the variable
@@ -9082,10 +9436,10 @@ can configure the option @code{org-format-latex-options} to deselect the
9082ones you do not wish to have interpreted by the @LaTeX{} converter. 9436ones you do not wish to have interpreted by the @LaTeX{} converter.
9083 9437
9084@vindex org-export-with-LaTeX-fragments 9438@vindex org-export-with-LaTeX-fragments
9085LaTeX processing can be configured with the variable 9439@LaTeX{} processing can be configured with the variable
9086@code{org-export-with-LaTeX-fragments}. The default setting is @code{t} 9440@code{org-export-with-LaTeX-fragments}. The default setting is @code{t}
9087which means @file{MathJax} for HTML, and no processing for DocBook, ASCII and 9441which means @file{MathJax} for HTML, and no processing for DocBook, ASCII and
9088LaTeX backends. You can also set this variable on a per-file basis using one 9442@LaTeX{} backends. You can also set this variable on a per-file basis using one
9089of these lines: 9443of these lines:
9090 9444
9091@example 9445@example
@@ -9095,9 +9449,9 @@ of these lines:
9095#+OPTIONS: LaTeX:verbatim @r{Verbatim export, for jsMath or so} 9449#+OPTIONS: LaTeX:verbatim @r{Verbatim export, for jsMath or so}
9096@end example 9450@end example
9097 9451
9098@node Previewing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX 9452@node Previewing @LaTeX{} fragments, CDLaTeX mode, @LaTeX{} fragments, Embedded @LaTeX{}
9099@subsection Previewing LaTeX fragments 9453@subsection Previewing @LaTeX{} fragments
9100@cindex LaTeX fragments, preview 9454@cindex @LaTeX{} fragments, preview
9101 9455
9102If you have @file{dvipng} installed, @LaTeX{} fragments can be processed to 9456If you have @file{dvipng} installed, @LaTeX{} fragments can be processed to
9103produce preview images of the typeset expressions: 9457produce preview images of the typeset expressions:
@@ -9118,22 +9472,22 @@ Remove the overlay preview images.
9118 9472
9119@vindex org-format-latex-options 9473@vindex org-format-latex-options
9120You can customize the variable @code{org-format-latex-options} to influence 9474You can customize the variable @code{org-format-latex-options} to influence
9121some aspects of the preview. In particular, the @code{:scale} (and for HTML 9475some aspects of the preview. In particular, the @code{:scale} (and for HTML
9122export, @code{:html-scale}) property can be used to adjust the size of the 9476export, @code{:html-scale}) property can be used to adjust the size of the
9123preview images. 9477preview images.
9124 9478
9125@node CDLaTeX mode, , Previewing LaTeX fragments, Embedded LaTeX 9479@node CDLaTeX mode, , Previewing @LaTeX{} fragments, Embedded @LaTeX{}
9126@subsection Using CDLa@TeX{} to enter math 9480@subsection Using CD@LaTeX{} to enter math
9127@cindex CDLa@TeX{} 9481@cindex CD@LaTeX{}
9128 9482
9129CDLa@TeX{} mode is a minor mode that is normally used in combination with a 9483CD@LaTeX{} mode is a minor mode that is normally used in combination with a
9130major @LaTeX{} mode like AUC@TeX{} in order to speed-up insertion of 9484major @LaTeX{} mode like AUC@TeX{} in order to speed-up insertion of
9131environments and math templates. Inside Org-mode, you can make use of 9485environments and math templates. Inside Org mode, you can make use of
9132some of the features of CDLa@TeX{} mode. You need to install 9486some of the features of CD@LaTeX{} mode. You need to install
9133@file{cdlatex.el} and @file{texmathp.el} (the latter comes also with 9487@file{cdlatex.el} and @file{texmathp.el} (the latter comes also with
9134AUC@TeX{}) from @url{http://www.astro.uva.nl/~dominik/Tools/cdlatex}. 9488AUC@TeX{}) from @url{http://www.astro.uva.nl/~dominik/Tools/cdlatex}.
9135Don't use CDLa@TeX{} mode itself under Org-mode, but use the light 9489Don't use CD@LaTeX{} mode itself under Org mode, but use the light
9136version @code{org-cdlatex-mode} that comes as part of Org-mode. Turn it 9490version @code{org-cdlatex-mode} that comes as part of Org mode. Turn it
9137on for the current buffer with @code{M-x org-cdlatex-mode}, or for all 9491on for the current buffer with @code{M-x org-cdlatex-mode}, or for all
9138Org files with 9492Org files with
9139 9493
@@ -9142,7 +9496,7 @@ Org files with
9142@end lisp 9496@end lisp
9143 9497
9144When this mode is enabled, the following features are present (for more 9498When this mode is enabled, the following features are present (for more
9145details see the documentation of CDLa@TeX{} mode): 9499details see the documentation of CD@LaTeX{} mode):
9146@itemize @bullet 9500@itemize @bullet
9147@kindex C-c @{ 9501@kindex C-c @{
9148@item 9502@item
@@ -9150,7 +9504,7 @@ Environment templates can be inserted with @kbd{C-c @{}.
9150@item 9504@item
9151@kindex @key{TAB} 9505@kindex @key{TAB}
9152The @key{TAB} key will do template expansion if the cursor is inside a 9506The @key{TAB} key will do template expansion if the cursor is inside a
9153@LaTeX{} fragment@footnote{Org-mode has a method to test if the cursor is 9507@LaTeX{} fragment@footnote{Org mode has a method to test if the cursor is
9154inside such a fragment, see the documentation of the function 9508inside such a fragment, see the documentation of the function
9155@code{org-inside-LaTeX-fragment-p}.}. For example, @key{TAB} will 9509@code{org-inside-LaTeX-fragment-p}.}. For example, @key{TAB} will
9156expand @code{fr} to @code{\frac@{@}@{@}} and position the cursor 9510expand @code{fr} to @code{\frac@{@}@{@}} and position the cursor
@@ -9187,18 +9541,20 @@ is normal.
9187@chapter Exporting 9541@chapter Exporting
9188@cindex exporting 9542@cindex exporting
9189 9543
9190Org-mode documents can be exported into a variety of other formats. For 9544Org mode documents can be exported into a variety of other formats. For
9191printing and sharing of notes, ASCII export produces a readable and simple 9545printing and sharing of notes, ASCII export produces a readable and simple
9192version of an Org file. HTML export allows you to publish a notes file on 9546version of an Org file. HTML export allows you to publish a notes file on
9193the web, while the XOXO format provides a solid base for exchange with a 9547the web, while the XOXO format provides a solid base for exchange with a
9194broad range of other applications. @LaTeX{} export lets you use Org-mode and 9548broad range of other applications. @LaTeX{} export lets you use Org mode and
9195its structured editing functions to easily create @LaTeX{} files. DocBook 9549its structured editing functions to easily create @LaTeX{} files. DocBook
9196export makes it possible to convert Org files to many other formats using 9550export makes it possible to convert Org files to many other formats using
9197DocBook tools. For project management you can create gantt and resource 9551DocBook tools. OpenDocument Text(@acronym{ODT}) export allows seamless
9198charts by using TaskJuggler export. To incorporate entries with associated 9552collaboration across organizational boundaries. For project management you
9199times like deadlines or appointments into a desktop calendar program like 9553can create gantt and resource charts by using TaskJuggler export. To
9200iCal, Org-mode can also produce extracts in the iCalendar format. Currently 9554incorporate entries with associated times like deadlines or appointments into
9201Org-mode only supports export, not import of these different formats. 9555a desktop calendar program like iCal, Org mode can also produce extracts in
9556the iCalendar format. Currently Org mode only supports export, not import of
9557these different formats.
9202 9558
9203Org supports export of selected regions when @code{transient-mark-mode} is 9559Org supports export of selected regions when @code{transient-mark-mode} is
9204enabled (default in Emacs 23). 9560enabled (default in Emacs 23).
@@ -9209,8 +9565,9 @@ enabled (default in Emacs 23).
9209* The export dispatcher:: How to access exporter commands 9565* The export dispatcher:: How to access exporter commands
9210* ASCII/Latin-1/UTF-8 export:: Exporting to flat files with encoding 9566* ASCII/Latin-1/UTF-8 export:: Exporting to flat files with encoding
9211* HTML export:: Exporting to HTML 9567* HTML export:: Exporting to HTML
9212* LaTeX and PDF export:: Exporting to @LaTeX{}, and processing to PDF 9568* @LaTeX{} and PDF export:: Exporting to @LaTeX{}, and processing to PDF
9213* DocBook export:: Exporting to DocBook 9569* DocBook export:: Exporting to DocBook
9570* OpenDocument Text export:: Exporting to OpenDocument Text
9214* TaskJuggler export:: Exporting to TaskJuggler 9571* TaskJuggler export:: Exporting to TaskJuggler
9215* Freemind export:: Exporting to Freemind mind maps 9572* Freemind export:: Exporting to Freemind mind maps
9216* XOXO export:: Exporting to XOXO 9573* XOXO export:: Exporting to XOXO
@@ -9219,26 +9576,35 @@ enabled (default in Emacs 23).
9219 9576
9220@node Selective export, Export options, Exporting, Exporting 9577@node Selective export, Export options, Exporting, Exporting
9221@section Selective export 9578@section Selective export
9222@cindex export, selective by tags 9579@cindex export, selective by tags or TODO keyword
9223 9580
9224@vindex org-export-select-tags 9581@vindex org-export-select-tags
9225@vindex org-export-exclude-tags 9582@vindex org-export-exclude-tags
9583@cindex org-export-with-tasks
9226You may use tags to select the parts of a document that should be exported, 9584You may use tags to select the parts of a document that should be exported,
9227or to exclude parts from export. This behavior is governed by two variables: 9585or to exclude parts from export. This behavior is governed by two variables:
9228@code{org-export-select-tags} and @code{org-export-exclude-tags}. 9586@code{org-export-select-tags} and @code{org-export-exclude-tags},
9587respectively defaulting to @code{'(:export:)} and @code{'(:noexport:)}.
9229 9588
9230Org first checks if any of the @emph{select} tags is present in the buffer. 9589@enumerate
9231If yes, all trees that do not carry one of these tags will be excluded. If a 9590@item
9232selected tree is a subtree, the heading hierarchy above it will also be 9591Org first checks if any of the @emph{select} tags is present in the
9233selected for export, but not the text below those headings. 9592buffer. If yes, all trees that do not carry one of these tags will be
9593excluded. If a selected tree is a subtree, the heading hierarchy above it
9594will also be selected for export, but not the text below those headings.
9234 9595
9235@noindent 9596@item
9236If none of the select tags is found, the whole buffer will be selected for 9597If none of the select tags is found, the whole buffer will be selected for
9237export. 9598export.
9238 9599
9239@noindent 9600@item
9240Finally, all subtrees that are marked by any of the @emph{exclude} tags will 9601Finally, all subtrees that are marked by any of the @emph{exclude} tags will
9241be removed from the export buffer. 9602be removed from the export buffer.
9603@end enumerate
9604
9605The variable @code{org-export-with-tasks} can be configured to select which
9606kind of tasks should be included for export. See the docstring of the
9607variable for more information.
9242 9608
9243@node Export options, The export dispatcher, Selective export, Exporting 9609@node Export options, The export dispatcher, Selective export, Exporting
9244@section Export options 9610@section Export options
@@ -9279,30 +9645,31 @@ Insert template with export options, see example below.
9279@vindex user-full-name 9645@vindex user-full-name
9280@vindex user-mail-address 9646@vindex user-mail-address
9281@vindex org-export-default-language 9647@vindex org-export-default-language
9648@vindex org-export-date-timestamp-format
9282@example 9649@example
9283#+TITLE: the title to be shown (default is the buffer name) 9650#+TITLE: the title to be shown (default is the buffer name)
9284#+AUTHOR: the author (default taken from @code{user-full-name}) 9651#+AUTHOR: the author (default taken from @code{user-full-name})
9285#+DATE: a date, fixed, or a format string for @code{format-time-string} 9652#+DATE: a date, an Org timestamp@footnote{@code{org-export-date-timestamp-format} defines how this timestamp will be exported.}, or a format string for @code{format-time-string}
9286#+EMAIL: his/her email address (default from @code{user-mail-address}) 9653#+EMAIL: his/her email address (default from @code{user-mail-address})
9287#+DESCRIPTION: the page description, e.g. for the XHTML meta tag 9654#+DESCRIPTION: the page description, e.g.@: for the XHTML meta tag
9288#+KEYWORDS: the page keywords, e.g. for the XHTML meta tag 9655#+KEYWORDS: the page keywords, e.g.@: for the XHTML meta tag
9289#+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language}) 9656#+LANGUAGE: language for HTML, e.g.@: @samp{en} (@code{org-export-default-language})
9290#+TEXT: Some descriptive text to be inserted at the beginning. 9657#+TEXT: Some descriptive text to be inserted at the beginning.
9291#+TEXT: Several lines may be given. 9658#+TEXT: Several lines may be given.
9292#+OPTIONS: H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t f:t TeX:t ... 9659#+OPTIONS: H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t f:t TeX:t ...
9293#+BIND: lisp-var lisp-val, e.g.: org-export-latex-low-levels itemize 9660#+BIND: lisp-var lisp-val, e.g.@:: @code{org-export-latex-low-levels itemize}
9294 @r{You need to confirm using these, or configure @code{org-export-allow-BIND}} 9661 @r{You need to confirm using these, or configure @code{org-export-allow-BIND}}
9295#+LINK_UP: the ``up'' link of an exported page 9662#+LINK_UP: the ``up'' link of an exported page
9296#+LINK_HOME: the ``home'' link of an exported page 9663#+LINK_HOME: the ``home'' link of an exported page
9297#+LATEX_HEADER: extra line(s) for the LaTeX header, like \usepackage@{xyz@} 9664#+LATEX_HEADER: extra line(s) for the @LaTeX{} header, like \usepackage@{xyz@}
9298#+EXPORT_SELECT_TAGS: Tags that select a tree for export 9665#+EXPORT_SELECT_TAGS: Tags that select a tree for export
9299#+EXPORT_EXCLUDE_TAGS: Tags that exclude a tree from export 9666#+EXPORT_EXCLUDE_TAGS: Tags that exclude a tree from export
9300#+XSLT: the XSLT stylesheet used by DocBook exporter to generate FO file 9667#+XSLT: the XSLT stylesheet used by DocBook exporter to generate FO file
9301@end example 9668@end example
9302 9669
9303@noindent 9670@noindent
9304The OPTIONS line is a compact@footnote{If you want to configure many options 9671The @code{#+OPTIONS} line is a compact@footnote{If you want to configure many options
9305this way, you can use several OPTIONS lines.} form to specify export 9672this way, you can use several @code{#+OPTIONS} lines.} form to specify export
9306settings. Here you can: 9673settings. Here you can:
9307@cindex headline levels 9674@cindex headline levels
9308@cindex section-numbers 9675@cindex section-numbers
@@ -9319,6 +9686,11 @@ settings. Here you can:
9319@cindex @LaTeX{} fragments 9686@cindex @LaTeX{} fragments
9320@cindex author info, in export 9687@cindex author info, in export
9321@cindex time info, in export 9688@cindex time info, in export
9689@vindex org-export-plist-vars
9690@vindex org-export-author-info
9691@vindex org-export-creator-info
9692@vindex org-export-email-info
9693@vindex org-export-time-stamp-file
9322@example 9694@example
9323H: @r{set the number of headline levels for export} 9695H: @r{set the number of headline levels for export}
9324num: @r{turn on/off section-numbers} 9696num: @r{turn on/off section-numbers}
@@ -9333,6 +9705,8 @@ toc: @r{turn on/off table of contents, or set level limit (integer)}
9333-: @r{turn on/off conversion of special strings.} 9705-: @r{turn on/off conversion of special strings.}
9334f: @r{turn on/off footnotes like this[1].} 9706f: @r{turn on/off footnotes like this[1].}
9335todo: @r{turn on/off inclusion of TODO keywords into exported text} 9707todo: @r{turn on/off inclusion of TODO keywords into exported text}
9708tasks: @r{turn on/off inclusion of tasks (TODO items), can be nil to remove}
9709 @r{all tasks, @code{todo} to remove DONE tasks, or list of kwds to keep}
9336pri: @r{turn on/off priority cookies} 9710pri: @r{turn on/off priority cookies}
9337tags: @r{turn on/off inclusion of tags, may also be @code{not-in-toc}} 9711tags: @r{turn on/off inclusion of tags, may also be @code{not-in-toc}}
9338<: @r{turn on/off inclusion of any time/date stamps like DEADLINES} 9712<: @r{turn on/off inclusion of any time/date stamps like DEADLINES}
@@ -9348,11 +9722,13 @@ d: @r{turn on/off inclusion of drawers}
9348@end example 9722@end example
9349@noindent 9723@noindent
9350These options take effect in both the HTML and @LaTeX{} export, except for 9724These options take effect in both the HTML and @LaTeX{} export, except for
9351@code{TeX} and @code{LaTeX}, which are respectively @code{t} and @code{nil} 9725@code{TeX} and @code{LaTeX} options, which are respectively @code{t} and
9352for the @LaTeX{} export. The default values for these and many other options 9726@code{nil} for the @LaTeX{} export.
9353are given by a set of variables. For a list of such variables, the 9727
9354corresponding OPTIONS keys and also the publishing keys (@pxref{Project 9728The default values for these and many other options are given by a set of
9355alist}), see the constant @code{org-export-plist-vars}. 9729variables. For a list of such variables, the corresponding OPTIONS keys and
9730also the publishing keys (@pxref{Project alist}), see the constant
9731@code{org-export-plist-vars}.
9356 9732
9357When exporting only a single subtree by selecting it with @kbd{C-c @@} before 9733When exporting only a single subtree by selecting it with @kbd{C-c @@} before
9358calling an export command, the subtree can overrule some of the file's export 9734calling an export command, the subtree can overrule some of the file's export
@@ -9381,11 +9757,11 @@ separate Emacs process@footnote{To make this behavior the default, customize
9381the variable @code{org-export-run-in-background}.}. 9757the variable @code{org-export-run-in-background}.}.
9382@orgcmd{C-c C-e v,org-export-visible} 9758@orgcmd{C-c C-e v,org-export-visible}
9383Like @kbd{C-c C-e}, but only export the text that is currently visible 9759Like @kbd{C-c C-e}, but only export the text that is currently visible
9384(i.e. not hidden by outline visibility). 9760(i.e.@: not hidden by outline visibility).
9385@orgcmd{C-u C-u C-c C-e,org-export} 9761@orgcmd{C-u C-u C-c C-e,org-export}
9386@vindex org-export-run-in-background 9762@vindex org-export-run-in-background
9387Call the exporter, but reverse the setting of 9763Call the exporter, but reverse the setting of
9388@code{org-export-run-in-background}, i.e. request background processing if 9764@code{org-export-run-in-background}, i.e.@: request background processing if
9389not set, or force processing in the current Emacs process if set. 9765not set, or force processing in the current Emacs process if set.
9390@end table 9766@end table
9391 9767
@@ -9395,7 +9771,7 @@ not set, or force processing in the current Emacs process if set.
9395@cindex Latin-1 export 9771@cindex Latin-1 export
9396@cindex UTF-8 export 9772@cindex UTF-8 export
9397 9773
9398ASCII export produces a simple and very readable version of an Org-mode 9774ASCII export produces a simple and very readable version of an Org mode
9399file, containing only plain ASCII. Latin-1 and UTF-8 export augment the file 9775file, containing only plain ASCII. Latin-1 and UTF-8 export augment the file
9400with special characters and symbols available in these encodings. 9776with special characters and symbols available in these encodings.
9401 9777
@@ -9409,7 +9785,7 @@ Export as ASCII file. For an Org file, @file{myfile.org}, the ASCII file
9409will be @file{myfile.txt}. The file will be overwritten without 9785will be @file{myfile.txt}. The file will be overwritten without
9410warning. If there is an active region@footnote{This requires 9786warning. If there is an active region@footnote{This requires
9411@code{transient-mark-mode} be turned on.}, only the region will be 9787@code{transient-mark-mode} be turned on.}, only the region will be
9412exported. If the selected region is a single tree@footnote{To select the 9788exported. If the selected region is a single tree@footnote{To select the
9413current subtree, use @kbd{C-c @@}.}, the tree head will 9789current subtree, use @kbd{C-c @@}.}, the tree head will
9414become the document title. If the tree head entry has or inherits an 9790become the document title. If the tree head entry has or inherits an
9415@code{EXPORT_FILE_NAME} property, that name will be used for the 9791@code{EXPORT_FILE_NAME} property, that name will be used for the
@@ -9450,17 +9826,18 @@ Links will be exported in a footnote-like style, with the descriptive part in
9450the text and the link in a note before the next heading. See the variable 9826the text and the link in a note before the next heading. See the variable
9451@code{org-export-ascii-links-to-notes} for details and other options. 9827@code{org-export-ascii-links-to-notes} for details and other options.
9452 9828
9453@node HTML export, LaTeX and PDF export, ASCII/Latin-1/UTF-8 export, Exporting 9829@node HTML export, @LaTeX{} and PDF export, ASCII/Latin-1/UTF-8 export, Exporting
9454@section HTML export 9830@section HTML export
9455@cindex HTML export 9831@cindex HTML export
9456 9832
9457Org-mode contains an HTML (XHTML 1.0 strict) exporter with extensive 9833Org mode contains an HTML (XHTML 1.0 strict) exporter with extensive
9458HTML formatting, in ways similar to John Gruber's @emph{markdown} 9834HTML formatting, in ways similar to John Gruber's @emph{markdown}
9459language, but with additional support for tables. 9835language, but with additional support for tables.
9460 9836
9461@menu 9837@menu
9462* HTML Export commands:: How to invoke HTML export 9838* HTML Export commands:: How to invoke HTML export
9463* Quoting HTML tags:: Using direct HTML in Org-mode 9839* HTML preamble and postamble:: How to insert a preamble and a postamble
9840* Quoting HTML tags:: Using direct HTML in Org mode
9464* Links in HTML export:: How links will be interpreted and formatted 9841* Links in HTML export:: How links will be interpreted and formatted
9465* Tables in HTML export:: How to modify the formatting of tables 9842* Tables in HTML export:: How to modify the formatting of tables
9466* Images in HTML export:: How to insert figures into HTML output 9843* Images in HTML export:: How to insert figures into HTML output
@@ -9470,7 +9847,7 @@ language, but with additional support for tables.
9470* JavaScript support:: Info and Folding in a web browser 9847* JavaScript support:: Info and Folding in a web browser
9471@end menu 9848@end menu
9472 9849
9473@node HTML Export commands, Quoting HTML tags, HTML export, HTML export 9850@node HTML Export commands, HTML preamble and postamble, HTML export, HTML export
9474@subsection HTML export commands 9851@subsection HTML export commands
9475 9852
9476@cindex region, active 9853@cindex region, active
@@ -9479,11 +9856,11 @@ language, but with additional support for tables.
9479@table @kbd 9856@table @kbd
9480@orgcmd{C-c C-e h,org-export-as-html} 9857@orgcmd{C-c C-e h,org-export-as-html}
9481@cindex property, EXPORT_FILE_NAME 9858@cindex property, EXPORT_FILE_NAME
9482Export as HTML file @file{myfile.html}. For an Org file @file{myfile.org}, 9859Export as HTML file. For an Org file @file{myfile.org},
9483the ASCII file will be @file{myfile.html}. The file will be overwritten 9860the HTML file will be @file{myfile.html}. The file will be overwritten
9484without warning. If there is an active region@footnote{This requires 9861without warning. If there is an active region@footnote{This requires
9485@code{transient-mark-mode} be turned on.}, only the region will be 9862@code{transient-mark-mode} be turned on.}, only the region will be
9486exported. If the selected region is a single tree@footnote{To select the 9863exported. If the selected region is a single tree@footnote{To select the
9487current subtree, use @kbd{C-c @@}.}, the tree head will become the document 9864current subtree, use @kbd{C-c @@}.}, the tree head will become the document
9488title. If the tree head entry has, or inherits, an @code{EXPORT_FILE_NAME} 9865title. If the tree head entry has, or inherits, an @code{EXPORT_FILE_NAME}
9489property, that name will be used for the export. 9866property, that name will be used for the export.
@@ -9498,11 +9875,11 @@ the region. This is good for cut-and-paste operations.
9498@item C-c C-e v h/b/H/R 9875@item C-c C-e v h/b/H/R
9499Export only the visible part of the document. 9876Export only the visible part of the document.
9500@item M-x org-export-region-as-html 9877@item M-x org-export-region-as-html
9501Convert the region to HTML under the assumption that it was Org-mode 9878Convert the region to HTML under the assumption that it was Org mode
9502syntax before. This is a global command that can be invoked in any 9879syntax before. This is a global command that can be invoked in any
9503buffer. 9880buffer.
9504@item M-x org-replace-region-by-HTML 9881@item M-x org-replace-region-by-HTML
9505Replace the active region (assumed to be in Org-mode syntax) by HTML 9882Replace the active region (assumed to be in Org mode syntax) by HTML
9506code. 9883code.
9507@end table 9884@end table
9508 9885
@@ -9519,7 +9896,43 @@ specify it with a numeric prefix argument. For example,
9519@noindent 9896@noindent
9520creates two levels of headings and does the rest as items. 9897creates two levels of headings and does the rest as items.
9521 9898
9522@node Quoting HTML tags, Links in HTML export, HTML Export commands, HTML export 9899
9900@node HTML preamble and postamble, Quoting HTML tags, HTML Export commands, HTML export
9901@subsection HTML preamble and postamble
9902@vindex org-export-html-preamble
9903@vindex org-export-html-postamble
9904@vindex org-export-html-preamble-format
9905@vindex org-export-html-postamble-format
9906@vindex org-export-html-validation-link
9907@vindex org-export-author-info
9908@vindex org-export-email-info
9909@vindex org-export-creator-info
9910@vindex org-export-time-stamp-file
9911
9912The HTML exporter lets you define a preamble and a postamble.
9913
9914The default value for @code{org-export-html-preamble} is @code{t}, which
9915means that the preamble is inserted depending on the relevant formatting
9916string in @code{org-export-html-preamble-format}.
9917
9918Setting @code{org-export-html-preamble} to a string will override the default
9919formatting string. Setting it to a function, will insert the output of the
9920function, which must be a string; such a function takes no argument but you
9921can check against the value of @code{opt-plist}, which contains the list of
9922publishing properties for the current file. Setting to @code{nil} will not
9923insert any preamble.
9924
9925The default value for @code{org-export-html-postamble} is @code{'auto}, which
9926means that the HTML exporter will look for the value of
9927@code{org-export-author-info}, @code{org-export-email-info},
9928@code{org-export-creator-info} and @code{org-export-time-stamp-file},
9929@code{org-export-html-validation-link} and build the postamble from these
9930values. Setting @code{org-export-html-postamble} to @code{t} will insert the
9931postamble from the relevant formatting string found in
9932@code{org-export-html-postamble-format}. Setting it to @code{nil} will not
9933insert any postamble.
9934
9935@node Quoting HTML tags, Links in HTML export, HTML preamble and postamble, HTML export
9523@subsection Quoting HTML tags 9936@subsection Quoting HTML tags
9524 9937
9525Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and 9938Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and
@@ -9568,7 +9981,7 @@ and @code{style} attributes for a link:
9568 9981
9569@cindex #+ATTR_HTML 9982@cindex #+ATTR_HTML
9570@example 9983@example
9571#+ATTR_HTML: title="The Org-mode homepage" style="color:red;" 9984#+ATTR_HTML: title="The Org mode homepage" style="color:red;"
9572[[http://orgmode.org]] 9985[[http://orgmode.org]]
9573@end example 9986@end example
9574 9987
@@ -9577,7 +9990,7 @@ and @code{style} attributes for a link:
9577@cindex tables, in HTML 9990@cindex tables, in HTML
9578@vindex org-export-html-table-tag 9991@vindex org-export-html-table-tag
9579 9992
9580Org-mode tables are exported to HTML using the table tag defined in 9993Org mode tables are exported to HTML using the table tag defined in
9581@code{org-export-html-table-tag}. The default setting makes tables without 9994@code{org-export-html-table-tag}. The default setting makes tables without
9582cell borders and frame. If you would like to change this for individual 9995cell borders and frame. If you would like to change this for individual
9583tables, place something like the following before the table: 9996tables, place something like the following before the table:
@@ -9586,7 +9999,7 @@ tables, place something like the following before the table:
9586@cindex #+ATTR_HTML 9999@cindex #+ATTR_HTML
9587@example 10000@example
9588#+CAPTION: This is a table with lines around and between cells 10001#+CAPTION: This is a table with lines around and between cells
9589#+ATTR_HTML: border="2" rules="all" frame="all" 10002#+ATTR_HTML: border="2" rules="all" frame="border"
9590@end example 10003@end example
9591 10004
9592@node Images in HTML export, Math formatting in HTML export, Tables in HTML export, HTML export 10005@node Images in HTML export, Math formatting in HTML export, Tables in HTML export, HTML export
@@ -9624,18 +10037,18 @@ support text viewers and accessibility, and align it to the right.
9624@end example 10037@end example
9625 10038
9626@noindent 10039@noindent
9627and you could use @code{http} addresses just as well. 10040You could use @code{http} addresses just as well.
9628 10041
9629@node Math formatting in HTML export, Text areas in HTML export, Images in HTML export, HTML export 10042@node Math formatting in HTML export, Text areas in HTML export, Images in HTML export, HTML export
9630@subsection Math formatting in HTML export 10043@subsection Math formatting in HTML export
9631@cindex MathJax 10044@cindex MathJax
9632@cindex dvipng 10045@cindex dvipng
9633 10046
9634@LaTeX{} math snippets (@pxref{LaTeX fragments}) can be displayed in two 10047@LaTeX{} math snippets (@pxref{@LaTeX{} fragments}) can be displayed in two
9635different ways on HTML pages. The default is to use the 10048different ways on HTML pages. The default is to use the
9636@uref{http://www.mathjax.org, MathJax system} which should work out of the 10049@uref{http://www.mathjax.org, MathJax system} which should work out of the
9637box with Org mode installation because @code{http://orgmode.org} serves 10050box with Org mode installation because @code{http://orgmode.org} serves
9638@file{MathJax} for Org-mode users for small applications and for testing 10051@file{MathJax} for Org mode users for small applications and for testing
9639purposes. @b{If you plan to use this regularly or on pages with significant 10052purposes. @b{If you plan to use this regularly or on pages with significant
9640page views, you should install@footnote{Installation instructions can be 10053page views, you should install@footnote{Installation instructions can be
9641found on the MathJax website, see 10054found on the MathJax website, see
@@ -9701,10 +10114,10 @@ addition to any of the standard classes like for headlines, tables, etc.
9701@example 10114@example
9702p.author @r{author information, including email} 10115p.author @r{author information, including email}
9703p.date @r{publishing date} 10116p.date @r{publishing date}
9704p.creator @r{creator info, about org-mode version} 10117p.creator @r{creator info, about org mode version}
9705.title @r{document title} 10118.title @r{document title}
9706.todo @r{TODO keywords, all not-done states} 10119.todo @r{TODO keywords, all not-done states}
9707.done @r{the DONE keywords, all stated the count as done} 10120.done @r{the DONE keywords, all states that count as done}
9708.WAITING @r{each TODO keyword also uses a class named after itself} 10121.WAITING @r{each TODO keyword also uses a class named after itself}
9709.timestamp @r{timestamp} 10122.timestamp @r{timestamp}
9710.timestamp-kwd @r{keyword associated with a timestamp, like SCHEDULED} 10123.timestamp-kwd @r{keyword associated with a timestamp, like SCHEDULED}
@@ -9827,32 +10240,34 @@ You can choose default values for these options by customizing the variable
9827@code{org-infojs-options}. If you always want to apply the script to your 10240@code{org-infojs-options}. If you always want to apply the script to your
9828pages, configure the variable @code{org-export-html-use-infojs}. 10241pages, configure the variable @code{org-export-html-use-infojs}.
9829 10242
9830@node LaTeX and PDF export, DocBook export, HTML export, Exporting 10243@node @LaTeX{} and PDF export, DocBook export, HTML export, Exporting
9831@section @LaTeX{} and PDF export 10244@section @LaTeX{} and PDF export
9832@cindex @LaTeX{} export 10245@cindex @LaTeX{} export
9833@cindex PDF export 10246@cindex PDF export
9834@cindex Guerry, Bastien 10247@cindex Guerry, Bastien
9835 10248
9836Org-mode contains a @LaTeX{} exporter written by Bastien Guerry. With 10249Org mode contains a @LaTeX{} exporter written by Bastien Guerry. With
9837further processing@footnote{The default LaTeX output is designed for 10250further processing@footnote{The default @LaTeX{} output is designed for
9838processing with pdftex or latex. It includes packages that are not 10251processing with @code{pdftex} or @LaTeX{}. It includes packages that are not
9839compatible with xetex and possibly luatex. See the variables 10252compatible with @code{xetex} and possibly @code{luatex}. See the variables
9840@code{org-export-latex-default-packages-alist} and 10253@code{org-export-latex-default-packages-alist} and
9841@code{org-export-latex-packages-alist}.}, this backend is also used to 10254@code{org-export-latex-packages-alist}.}, this backend is also used to
9842produce PDF output. Since the @LaTeX{} output uses @file{hyperref} to 10255produce PDF output. Since the @LaTeX{} output uses @file{hyperref} to
9843implement links and cross references, the PDF output file will be fully 10256implement links and cross references, the PDF output file will be fully
9844linked. 10257linked. Beware of the fact that your @code{org} file has to be properly
10258structured in order to be correctly exported: respect the hierarchy of
10259sections.
9845 10260
9846@menu 10261@menu
9847* LaTeX/PDF export commands:: Which key invokes which commands 10262* @LaTeX{}/PDF export commands::
9848* Header and sectioning:: Setting up the export file structure 10263* Header and sectioning:: Setting up the export file structure
9849* Quoting LaTeX code:: Incorporating literal @LaTeX{} code 10264* Quoting @LaTeX{} code:: Incorporating literal @LaTeX{} code
9850* Tables in LaTeX export:: Options for exporting tables to @LaTeX{} 10265* Tables in @LaTeX{} export:: Options for exporting tables to @LaTeX{}
9851* Images in LaTeX export:: How to insert figures into @LaTeX{} output 10266* Images in @LaTeX{} export:: How to insert figures into @LaTeX{} output
9852* Beamer class export:: Turning the file into a presentation 10267* Beamer class export:: Turning the file into a presentation
9853@end menu 10268@end menu
9854 10269
9855@node LaTeX/PDF export commands, Header and sectioning, LaTeX and PDF export, LaTeX and PDF export 10270@node @LaTeX{}/PDF export commands, Header and sectioning, @LaTeX{} and PDF export, @LaTeX{} and PDF export
9856@subsection @LaTeX{} export commands 10271@subsection @LaTeX{} export commands
9857 10272
9858@cindex region, active 10273@cindex region, active
@@ -9861,24 +10276,24 @@ linked.
9861@table @kbd 10276@table @kbd
9862@orgcmd{C-c C-e l,org-export-as-latex} 10277@orgcmd{C-c C-e l,org-export-as-latex}
9863@cindex property EXPORT_FILE_NAME 10278@cindex property EXPORT_FILE_NAME
9864Export as @LaTeX{} file @file{myfile.tex}. For an Org file 10279Export as @LaTeX{} file. For an Org file
9865@file{myfile.org}, the ASCII file will be @file{myfile.tex}. The file will 10280@file{myfile.org}, the @LaTeX{} file will be @file{myfile.tex}. The file will
9866be overwritten without warning. If there is an active region@footnote{This 10281be overwritten without warning. If there is an active region@footnote{This
9867requires @code{transient-mark-mode} be turned on.}, only the region will be 10282requires @code{transient-mark-mode} be turned on.}, only the region will be
9868exported. If the selected region is a single tree@footnote{To select the 10283exported. If the selected region is a single tree@footnote{To select the
9869current subtree, use @kbd{C-c @@}.}, the tree head will become the document 10284current subtree, use @kbd{C-c @@}.}, the tree head will become the document
9870title. If the tree head entry has or inherits an @code{EXPORT_FILE_NAME} 10285title. If the tree head entry has or inherits an @code{EXPORT_FILE_NAME}
9871property, that name will be used for the export. 10286property, that name will be used for the export.
9872@orgcmd{C-c C-e L,org-export-as-latex-to-buffer} 10287@orgcmd{C-c C-e L,org-export-as-latex-to-buffer}
9873Export to a temporary buffer. Do not create a file. 10288Export to a temporary buffer. Do not create a file.
9874@item C-c C-e v l/L 10289@item C-c C-e v l/L
9875Export only the visible part of the document. 10290Export only the visible part of the document.
9876@item M-x org-export-region-as-latex 10291@item M-x org-export-region-as-latex
9877Convert the region to @LaTeX{} under the assumption that it was Org-mode 10292Convert the region to @LaTeX{} under the assumption that it was Org mode
9878syntax before. This is a global command that can be invoked in any 10293syntax before. This is a global command that can be invoked in any
9879buffer. 10294buffer.
9880@item M-x org-replace-region-by-latex 10295@item M-x org-replace-region-by-latex
9881Replace the active region (assumed to be in Org-mode syntax) by @LaTeX{} 10296Replace the active region (assumed to be in Org mode syntax) by @LaTeX{}
9882code. 10297code.
9883@orgcmd{C-c C-e p,org-export-as-pdf} 10298@orgcmd{C-c C-e p,org-export-as-pdf}
9884Export as @LaTeX{} and then process to PDF. 10299Export as @LaTeX{} and then process to PDF.
@@ -9895,7 +10310,7 @@ convert them to a custom string depending on
9895@code{org-latex-low-levels}. 10310@code{org-latex-low-levels}.
9896 10311
9897If you want that transition to occur at a different level, specify it 10312If you want that transition to occur at a different level, specify it
9898with a numeric prefix argument. For example, 10313with a numeric prefix argument. For example,
9899 10314
9900@example 10315@example
9901@kbd{C-2 C-c C-e l} 10316@kbd{C-2 C-c C-e l}
@@ -9904,13 +10319,13 @@ with a numeric prefix argument. For example,
9904@noindent 10319@noindent
9905creates two levels of headings and does the rest as items. 10320creates two levels of headings and does the rest as items.
9906 10321
9907@node Header and sectioning, Quoting LaTeX code, LaTeX/PDF export commands, LaTeX and PDF export 10322@node Header and sectioning, Quoting @LaTeX{} code, @LaTeX{}/PDF export commands, @LaTeX{} and PDF export
9908@subsection Header and sectioning structure 10323@subsection Header and sectioning structure
9909@cindex @LaTeX{} class 10324@cindex @LaTeX{} class
9910@cindex @LaTeX{} sectioning structure 10325@cindex @LaTeX{} sectioning structure
9911@cindex @LaTeX{} header 10326@cindex @LaTeX{} header
9912@cindex header, for LaTeX files 10327@cindex header, for @LaTeX{} files
9913@cindex sectioning structure, for LaTeX export 10328@cindex sectioning structure, for @LaTeX{} export
9914 10329
9915By default, the @LaTeX{} output uses the class @code{article}. 10330By default, the @LaTeX{} output uses the class @code{article}.
9916 10331
@@ -9938,10 +10353,10 @@ can also use @code{#+LATEX_HEADER: \usepackage@{xyz@}} to add lines to the
9938header. See the docstring of @code{org-export-latex-classes} for more 10353header. See the docstring of @code{org-export-latex-classes} for more
9939information. 10354information.
9940 10355
9941@node Quoting LaTeX code, Tables in LaTeX export, Header and sectioning, LaTeX and PDF export 10356@node Quoting @LaTeX{} code, Tables in @LaTeX{} export, Header and sectioning, @LaTeX{} and PDF export
9942@subsection Quoting @LaTeX{} code 10357@subsection Quoting @LaTeX{} code
9943 10358
9944Embedded @LaTeX{} as described in @ref{Embedded LaTeX}, will be correctly 10359Embedded @LaTeX{} as described in @ref{Embedded @LaTeX{}}, will be correctly
9945inserted into the @LaTeX{} file. This includes simple macros like 10360inserted into the @LaTeX{} file. This includes simple macros like
9946@samp{\ref@{LABEL@}} to create a cross reference to a figure. Furthermore, 10361@samp{\ref@{LABEL@}} to create a cross reference to a figure. Furthermore,
9947you can add special code that should only be present in @LaTeX{} export with 10362you can add special code that should only be present in @LaTeX{} export with
@@ -9950,7 +10365,7 @@ the following constructs:
9950@cindex #+LaTeX 10365@cindex #+LaTeX
9951@cindex #+BEGIN_LaTeX 10366@cindex #+BEGIN_LaTeX
9952@example 10367@example
9953#+LaTeX: Literal LaTeX code for export 10368#+LaTeX: Literal @LaTeX{} code for export
9954@end example 10369@end example
9955 10370
9956@noindent or 10371@noindent or
@@ -9963,16 +10378,18 @@ All lines between these markers are exported literally
9963@end example 10378@end example
9964 10379
9965 10380
9966@node Tables in LaTeX export, Images in LaTeX export, Quoting LaTeX code, LaTeX and PDF export 10381@node Tables in @LaTeX{} export, Images in @LaTeX{} export, Quoting @LaTeX{} code, @LaTeX{} and PDF export
9967@subsection Tables in @LaTeX{} export 10382@subsection Tables in @LaTeX{} export
9968@cindex tables, in @LaTeX{} export 10383@cindex tables, in @LaTeX{} export
9969 10384
9970For @LaTeX{} export of a table, you can specify a label and a caption 10385For @LaTeX{} export of a table, you can specify a label, a caption and
9971(@pxref{Images and tables}). You can also use the @code{ATTR_LaTeX} line to 10386placement options (@pxref{Images and tables}). You can also use the
9972request a @code{longtable} environment for the table, so that it may span 10387@code{ATTR_LaTeX} line to request a @code{longtable} environment for the
9973several pages, or provide the @code{multicolumn} keyword that will make the 10388table, so that it may span several pages, or to change the default table
9974table span the page in a multicolumn environment (@code{table*} environment). 10389environment from @code{table} to @code{table*} or to change the default inner
9975Finally, you can set the alignment string: 10390tabular environment to @code{tabularx} or @code{tabulary}. Finally, you can
10391set the alignment string, and (with @code{tabularx} or @code{tabulary}) the
10392width:
9976 10393
9977@cindex #+CAPTION 10394@cindex #+CAPTION
9978@cindex #+LABEL 10395@cindex #+LABEL
@@ -9985,8 +10402,20 @@ Finally, you can set the alignment string:
9985| ..... | ..... | 10402| ..... | ..... |
9986@end example 10403@end example
9987 10404
10405or to specify a multicolumn table with @code{tabulary}
10406
10407@cindex #+CAPTION
10408@cindex #+LABEL
10409@cindex #+ATTR_LaTeX
10410@example
10411#+CAPTION: A wide table with tabulary
10412#+LABEL: tbl:wide
10413#+ATTR_LaTeX: table* tabulary width=\textwidth
10414| ..... | ..... |
10415| ..... | ..... |
10416@end example
9988 10417
9989@node Images in LaTeX export, Beamer class export, Tables in LaTeX export, LaTeX and PDF export 10418@node Images in @LaTeX{} export, Beamer class export, Tables in @LaTeX{} export, @LaTeX{} and PDF export
9990@subsection Images in @LaTeX{} export 10419@subsection Images in @LaTeX{} export
9991@cindex images, inline in @LaTeX{} 10420@cindex images, inline in @LaTeX{}
9992@cindex inlining images in @LaTeX{} 10421@cindex inlining images in @LaTeX{}
@@ -9997,11 +10426,18 @@ output file resulting from @LaTeX{} processing. Org will use an
9997@code{\includegraphics} macro to insert the image. If you have specified a 10426@code{\includegraphics} macro to insert the image. If you have specified a
9998caption and/or a label as described in @ref{Images and tables}, the figure 10427caption and/or a label as described in @ref{Images and tables}, the figure
9999will be wrapped into a @code{figure} environment and thus become a floating 10428will be wrapped into a @code{figure} environment and thus become a floating
10000element. You can use an @code{#+ATTR_LaTeX:} line to specify the various 10429element. You can use an @code{#+ATTR_LaTeX:} line to specify various other
10001options that can be used in the optional argument of the 10430options. You can ask org to export an image as a float without specifying
10002@code{\includegraphics} macro. To modify the placement option of the 10431a label or a caption by using the keyword @code{float} in this line. Various
10003@code{figure} environment, add something like @samp{placement=[h!]} to the 10432optional arguments to the @code{\includegraphics} macro can also be specified
10004Attributes. 10433in this fashion. To modify the placement option of the floating environment,
10434add something like @samp{placement=[h!]} to the attributes. It is to be noted
10435this option can be used with tables as well@footnote{One can also take
10436advantage of this option to pass other, unrelated options into the figure or
10437table environment. For an example see the section ``Exporting org files'' in
10438@url{http://orgmode.org/worg/org-hacks.html}}. For example the
10439@code{#+ATTR_LaTeX:} line below is exported as the @code{figure} environment
10440below it.
10005 10441
10006If you would like to let text flow around the image, add the word @samp{wrap} 10442If you would like to let text flow around the image, add the word @samp{wrap}
10007to the @code{#+ATTR_LaTeX:} line, which will make the figure occupy the left 10443to the @code{#+ATTR_LaTeX:} line, which will make the figure occupy the left
@@ -10023,17 +10459,21 @@ for @code{\includegraphics} and @code{wrapfigure}.
10023[[./img/hst.png]] 10459[[./img/hst.png]]
10024@end example 10460@end example
10025 10461
10462If you wish to include an image which spans multiple columns in a page, you
10463can use the keyword @code{multicolumn} in the @code{#+ATTR_LaTeX} line. This
10464will export the image wrapped in a @code{figure*} environment.
10465
10026If you need references to a label created in this way, write 10466If you need references to a label created in this way, write
10027@samp{\ref@{fig:SED-HR4049@}} just like in @LaTeX{}. 10467@samp{\ref@{fig:SED-HR4049@}} just like in @LaTeX{}.
10028 10468
10029@node Beamer class export, , Images in LaTeX export, LaTeX and PDF export 10469@node Beamer class export, , Images in @LaTeX{} export, @LaTeX{} and PDF export
10030@subsection Beamer class export 10470@subsection Beamer class export
10031 10471
10032The LaTeX class @file{beamer} allows production of high quality presentations 10472The @LaTeX{} class @file{beamer} allows production of high quality presentations
10033using LaTeX and pdf processing. Org-mode has special support for turning an 10473using @LaTeX{} and pdf processing. Org mode has special support for turning an
10034Org-mode file or tree into a @file{beamer} presentation. 10474Org mode file or tree into a @file{beamer} presentation.
10035 10475
10036When the LaTeX class for the current buffer (as set with @code{#+LaTeX_CLASS: 10476When the @LaTeX{} class for the current buffer (as set with @code{#+LaTeX_CLASS:
10037beamer}) or subtree (set with a @code{LaTeX_CLASS} property) is 10477beamer}) or subtree (set with a @code{LaTeX_CLASS} property) is
10038@code{beamer}, a special export mode will turn the file or tree into a beamer 10478@code{beamer}, a special export mode will turn the file or tree into a beamer
10039presentation. Any tree with not-too-deep level nesting should in principle be 10479presentation. Any tree with not-too-deep level nesting should in principle be
@@ -10153,7 +10593,7 @@ Here is a simple example Org document that is intended for beamer export.
10153 10593
10154For more information, see the documentation on Worg. 10594For more information, see the documentation on Worg.
10155 10595
10156@node DocBook export, TaskJuggler export, LaTeX and PDF export, Exporting 10596@node DocBook export, OpenDocument Text export, @LaTeX{} and PDF export, Exporting
10157@section DocBook export 10597@section DocBook export
10158@cindex DocBook export 10598@cindex DocBook export
10159@cindex PDF export 10599@cindex PDF export
@@ -10255,7 +10695,7 @@ exported DocBook XML files invalid by not quoting DocBook code correctly.
10255@cindex DocBook recursive sections 10695@cindex DocBook recursive sections
10256 10696
10257DocBook exporter exports Org files as articles using the @code{article} 10697DocBook exporter exports Org files as articles using the @code{article}
10258element in DocBook. Recursive sections, i.e. @code{section} elements, are 10698element in DocBook. Recursive sections, i.e.@: @code{section} elements, are
10259used in exported articles. Top level headlines in Org files are exported as 10699used in exported articles. Top level headlines in Org files are exported as
10260top level sections, and lower level headlines are exported as nested 10700top level sections, and lower level headlines are exported as nested
10261sections. The entire structure of Org files will be exported completely, no 10701sections. The entire structure of Org files will be exported completely, no
@@ -10309,7 +10749,7 @@ set:
10309@cindex #+LABEL 10749@cindex #+LABEL
10310@cindex #+ATTR_DOCBOOK 10750@cindex #+ATTR_DOCBOOK
10311@example 10751@example
10312#+CAPTION: The logo of Org-mode 10752#+CAPTION: The logo of Org mode
10313#+LABEL: unicorn-svg 10753#+LABEL: unicorn-svg
10314#+ATTR_DOCBOOK: scalefit="1" width="100%" depth="100%" 10754#+ATTR_DOCBOOK: scalefit="1" width="100%" depth="100%"
10315[[./img/org-mode-unicorn.svg]] 10755[[./img/org-mode-unicorn.svg]]
@@ -10350,7 +10790,840 @@ special characters included in XHTML entities:
10350" 10790"
10351@end example 10791@end example
10352 10792
10353@node TaskJuggler export, Freemind export, DocBook export, Exporting 10793@c begin opendocument
10794
10795@node OpenDocument Text export, TaskJuggler export, DocBook export, Exporting
10796@section OpenDocument Text export
10797@cindex K, Jambunathan
10798@cindex ODT
10799@cindex OpenDocument
10800@cindex export, OpenDocument
10801@cindex LibreOffice
10802@cindex org-odt.el
10803@cindex org-modules
10804
10805Orgmode@footnote{Versions 7.8 or later} supports export to OpenDocument Text
10806(@acronym{ODT}) format using the @file{org-odt.el} module. Documents created
10807by this exporter use the @cite{OpenDocument-v1.2
10808specification}@footnote{@url{http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html,
10809Open Document Format for Office Applications (OpenDocument) Version 1.2}} and
10810are compatible with LibreOffice 3.4.
10811
10812@menu
10813* Pre-requisites for @acronym{ODT} export:: What packages @acronym{ODT} exporter relies on
10814* @acronym{ODT} export commands:: How to invoke @acronym{ODT} export
10815* Applying custom styles:: How to apply custom styles to the output
10816* Links in @acronym{ODT} export:: How links will be interpreted and formatted
10817* Tables in @acronym{ODT} export:: How Tables are exported
10818* Images in @acronym{ODT} export:: How to insert images
10819* Math formatting in @acronym{ODT} export:: How @LaTeX{} fragments are formatted
10820* Literal examples in @acronym{ODT} export:: How source and example blocks are formatted
10821* Advanced topics in @acronym{ODT} export:: Read this if you are a power user
10822@end menu
10823
10824@node Pre-requisites for @acronym{ODT} export, @acronym{ODT} export commands, OpenDocument Text export, OpenDocument Text export
10825@subsection Pre-requisites for @acronym{ODT} export
10826@cindex zip
10827The @acronym{ODT} exporter relies on the @file{zip} program to create the final
10828output. Check the availability of this program before proceeding further.
10829
10830@node @acronym{ODT} export commands, Applying custom styles, Pre-requisites for @acronym{ODT} export, OpenDocument Text export
10831@subsection @acronym{ODT} export commands
10832
10833@subsubheading Exporting to @acronym{ODT}
10834@anchor{x-export-to-odt}
10835
10836@cindex region, active
10837@cindex active region
10838@cindex transient-mark-mode
10839@table @kbd
10840@orgcmd{C-c C-e o,org-export-as-odt}
10841@cindex property EXPORT_FILE_NAME
10842
10843Export as OpenDocument Text file.
10844@vindex org-export-odt-preferred-output-format
10845If @code{org-export-odt-preferred-output-format} is specified, automatically
10846convert the exported file to that format.
10847@xref{x-export-to-other-formats,,Automatically exporting to other formats}.
10848
10849For an Org file @file{myfile.org}, the @acronym{ODT} file will be
10850@file{myfile.odt}. The file will be overwritten without warning. If there
10851is an active region,@footnote{This requires @code{transient-mark-mode} to be
10852turned on} only the region will be exported. If the selected region is a
10853single tree,@footnote{To select the current subtree, use @kbd{C-c @@}} the
10854tree head will become the document title. If the tree head entry has, or
10855inherits, an @code{EXPORT_FILE_NAME} property, that name will be used for the
10856export.
10857
10858@orgcmd{C-c C-e O,org-export-as-odt-and-open}
10859Export as OpenDocument Text file and open the resulting file.
10860@vindex org-export-odt-preferred-output-format
10861If @code{org-export-odt-preferred-output-format} is specified, open the
10862converted file instead.
10863@xref{x-export-to-other-formats,,Automatically exporting to other formats}.
10864@end table
10865
10866@subsubheading Automatically exporting to other formats
10867@anchor{x-export-to-other-formats}
10868@vindex org-export-odt-preferred-output-format
10869Very often, you will find yourself exporting to @acronym{ODT} format, only to
10870immediately save the exported document to a different format like @samp{pdf}.
10871In such cases, you will find it convenient to configure a converter
10872(@pxref{Exporting and converting to other formats}) and specify your
10873preferred output format by customizing the variable
10874@code{org-export-odt-preferred-output-format}. This way, the export commands
10875(@pxref{x-export-to-odt,,Exporting to ODT}) can be extended to also export to
10876the preferred format.
10877
10878@node Applying custom styles, Links in @acronym{ODT} export, @acronym{ODT} export commands, OpenDocument Text export
10879@subsection Applying custom styles
10880@cindex styles, custom
10881@cindex template, custom
10882
10883The @acronym{ODT} exporter ships with a set of OpenDocument styles
10884(@pxref{Working with OpenDocument style files}) that ensure a well-formatted
10885output. These factory styles, however, may not cater to your specific
10886tastes. To customize the output, you can either modify the above styles
10887files directly, or generate the required styles using an application like
10888LibreOffice. The latter method is suitable for expert and non-expert
10889users alike, and is described here.
10890
10891@subsubsection Applying custom styles - the easy way
10892
10893@enumerate
10894@item
10895Create a sample @file{example.org} file with the below settings and export it
10896to @acronym{ODT} format.
10897
10898@example
10899#+OPTIONS: H:10 num:t
10900@end example
10901
10902@item
10903Open the above @file{example.odt} using LibreOffice. Use the @file{Stylist}
10904to locate the target styles - these typically have the @samp{Org} prefix -
10905and modify those to your taste. Save the modified file either as an
10906OpenDocument Text (@file{.odt}) or OpenDocument Template (@file{.ott}) file.
10907
10908@item
10909@cindex #+ODT_STYLES_FILE
10910@vindex org-export-odt-styles-file
10911Customize the variable @code{org-export-odt-styles-file} and point it to the
10912newly created file. For additional configuration options
10913@pxref{x-overriding-factory-styles,,Overriding factory styles}.
10914
10915If you would like to choose a style on a per-file basis, you can use the
10916@code{#+ODT_STYLES_FILE} option. A typical setting will look like
10917
10918@example
10919#+ODT_STYLES_FILE: "/path/to/example.ott"
10920@end example
10921
10922or
10923
10924@example
10925#+ODT_STYLES_FILE: ("/path/to/file.ott" ("styles.xml" "image/hdr.png"))
10926@end example
10927
10928@end enumerate
10929
10930@subsubsection Using third-party styles and templates
10931
10932You can use third-party styles and templates for customizing your output.
10933This will produce the desired output only if the template provides all
10934style names that the @samp{ODT} exporter relies on. Unless this condition is
10935met, the output is going to be less than satisfactory. So it is highly
10936recommended that you only work with templates that are directly derived from
10937the factory settings.
10938
10939@node Links in @acronym{ODT} export, Tables in @acronym{ODT} export, Applying custom styles, OpenDocument Text export
10940@subsection Links in @acronym{ODT} export
10941@cindex tables, in DocBook export
10942
10943The @acronym{ODT} exporter creates cross-references (aka bookmarks) for
10944internal links. It creates Internet-style links for all other links.
10945
10946@node Tables in @acronym{ODT} export, Images in @acronym{ODT} export, Links in @acronym{ODT} export, OpenDocument Text export
10947@subsection Tables in @acronym{ODT} export
10948@cindex tables, in DocBook export
10949
10950Export of native Org mode tables (@pxref{Tables}) and simple @file{table.el}
10951tables is supported. However, export of complex @file{table.el} tables -
10952tables that have column or row spans - is not supported. Such tables are
10953stripped from the exported document.
10954
10955By default, a table is exported with top and bottom frames and with
10956rules separating row and column groups (@pxref{Column groups}). If the table
10957specifies alignment and relative width for its columns (@pxref{Column width
10958and alignment}) then these are honored on export.@footnote{The column widths
10959are interpreted as weighted ratios with the default weight being 1}
10960
10961@cindex #+ATTR_ODT
10962If you are not satisfied with the default formatting of tables, you can
10963create custom table styles and associate them with a table using
10964the @code{#+ATTR_ODT} line. @xref{Customizing tables in @acronym{ODT} export}.
10965
10966@node Images in @acronym{ODT} export, Math formatting in @acronym{ODT} export, Tables in @acronym{ODT} export, OpenDocument Text export
10967@subsection Images in @acronym{ODT} export
10968@cindex images, embedding in @acronym{ODT}
10969@cindex embedding images in @acronym{ODT}
10970
10971@subsubheading Embedding images
10972You can embed images within the exported document by providing a link to the
10973desired image file with no link description. For example, to embed
10974@samp{img.png} do either of the following:
10975
10976@example
10977[[file:img.png]]
10978@end example
10979
10980@example
10981[[./img.png]]
10982@end example
10983
10984@subsubheading Embedding clickable images
10985You can create clickable images by providing a link whose description is a
10986link to an image file. For example, to embed a image
10987@file{org-mode-unicorn.png} which when clicked jumps to
10988@uref{http://Orgmode.org} website, do the following
10989
10990@example
10991[[http://orgmode.org][./org-mode-unicorn.png]]
10992@end example
10993
10994@subsubheading Sizing and scaling of embedded images
10995
10996You can control the size and scale of the embedded images using the
10997@code{#+ATTR_ODT} attribute.
10998
10999@vindex org-export-odt-pixels-per-inch
11000Note that the exporter specifies the desired size of the image in the final
11001document in units of centimeters. In order to scale the embedded images, the
11002exporter needs to compute the size of the image. This is done by retrieving
11003the image size in pixels and converting the pixel units to centimeters using
11004@code{org-export-odt-pixels-per-inch}. The default value of this variable is
11005set to @code{display-pixels-per-inch}. You can tweak this variable to
11006achieve the best results.
11007
11008The examples below illustrate the various possibilities.
11009
11010@table @asis
11011
11012@item Explicitly size the image
11013To embed @file{img.png} as a 10 cm x 10 cm image, do the following:
11014
11015@example
11016#+ATTR_ODT: :width 10 :height 10
11017[[./img.png]]
11018@end example
11019
11020@item Scale the image
11021To embed @file{img.png} at half its size, do the following:
11022
11023@example
11024#+ATTR_ODT: :scale 0.5
11025[[./img.png]]
11026@end example
11027
11028@item Scale the image to a specific width
11029To embed @file{img.png} with a width of 10 cm while retaining the original
11030height:width ratio, do the following:
11031
11032@example
11033#+ATTR_ODT: :width 10
11034[[./img.png]]
11035@end example
11036
11037@item Scale the image to a specific height
11038To embed @file{img.png} with a height of 10 cm while retaining the original
11039height:width ratio, do the following
11040
11041@example
11042#+ATTR_ODT: :height 10
11043[[./img.png]]
11044@end example
11045@end table
11046
11047@node Math formatting in @acronym{ODT} export, Literal examples in @acronym{ODT} export, Images in @acronym{ODT} export, OpenDocument Text export
11048@subsection Math formatting in @acronym{ODT} export
11049
11050The @acronym{ODT} exporter has special support for handling math.
11051
11052@menu
11053* Working with @LaTeX{} math snippets:: How to embed @LaTeX{} math fragments
11054* Working with MathML or OpenDocument formula files:: How to embed equations in native format
11055@end menu
11056
11057@node Working with @LaTeX{} math snippets, Working with MathML or OpenDocument formula files, Math formatting in @acronym{ODT} export, Math formatting in @acronym{ODT} export
11058@subsubsection Working with @LaTeX{} math snippets
11059
11060@LaTeX{} math snippets (@pxref{@LaTeX{} fragments}) can be embedded in the ODT
11061document in one of the following ways:
11062
11063@cindex MathML
11064@enumerate
11065@item MathML
11066
11067This option is activated on a per-file basis with
11068
11069@example
11070#+OPTIONS: LaTeX:t
11071@end example
11072
11073With this option, @LaTeX{} fragments are first converted into MathML
11074fragments using an external @LaTeX{}-to-MathML converter program. The
11075resulting MathML fragments are then embedded as an OpenDocument Formula in
11076the exported document.
11077
11078@vindex org-latex-to-mathml-convert-command
11079@vindex org-latex-to-mathml-jar-file
11080
11081You can specify the @LaTeX{}-to-MathML converter by customizing the variables
11082@code{org-latex-to-mathml-convert-command} and
11083@code{org-latex-to-mathml-jar-file}.
11084
11085If you prefer to use @file{MathToWeb}@footnote{See
11086@uref{http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl, MathToWeb}} as your
11087converter, you can configure the above variables as shown below.
11088
11089@lisp
11090(setq org-latex-to-mathml-convert-command
11091 "java -jar %j -unicode -force -df %o %I"
11092 org-latex-to-mathml-jar-file
11093 "/path/to/mathtoweb.jar")
11094@end lisp
11095
11096You can use the following commands to quickly verify the reliability of
11097the @LaTeX{}-to-MathML converter.
11098
11099@table @kbd
11100
11101@item M-x org-export-as-odf
11102Convert a @LaTeX{} math snippet to OpenDocument formula (@file{.odf}) file.
11103
11104@item M-x org-export-as-odf-and-open
11105Convert a @LaTeX{} math snippet to OpenDocument formula (@file{.odf}) file and
11106open the formula file with the system-registered application.
11107@end table
11108
11109@cindex dvipng
11110@item PNG images
11111
11112This option is activated on a per-file basis with
11113
11114@example
11115#+OPTIONS: LaTeX:dvipng
11116@end example
11117
11118With this option, @LaTeX{} fragments are processed into PNG images and the
11119resulting images are embedded in the exported document. This method requires
11120that the @file{dvipng} program be available on your system.
11121@end enumerate
11122
11123@node Working with MathML or OpenDocument formula files, , Working with @LaTeX{} math snippets, Math formatting in @acronym{ODT} export
11124@subsubsection Working with MathML or OpenDocument formula files
11125
11126For various reasons, you may find embedding @LaTeX{} math snippets in an
11127@acronym{ODT} document less than reliable. In that case, you can embed a
11128math equation by linking to its MathML(@file{.mml}) source or its
11129OpenDocument formula (@file{.odf}) file as shown below:
11130
11131@example
11132[[./equation.mml]]
11133@end example
11134
11135or
11136
11137@example
11138[[./equation.odf]]
11139@end example
11140
11141@node Literal examples in @acronym{ODT} export, Advanced topics in @acronym{ODT} export, Math formatting in @acronym{ODT} export, OpenDocument Text export
11142@subsection Literal examples in @acronym{ODT} export
11143
11144Export of literal examples (@pxref{Literal examples}) with full fontification
11145is supported. This feature is enabled by default and is activated
11146automatically if an enhanced version of @file{htmlfontify.el} is available in
11147the @code{load-path}.@footnote{The @file{htmlfontify.el} that ships with
11148standard Emacs <= 24.1 has no support for @acronym{ODT} fontification. A
11149copy of the proposed version is available as an attachment to
11150@url{http://debbugs.gnu.org/cgi/bugreport.cgi?msg=5;filename=htmlfontify.el;att=9;bug=9914,
11151Emacs Bug #9914}.}
11152
11153@vindex org-export-odt-fontify-srcblocks
11154
11155The character styles used for fontification of the literal blocks are
11156auto-generated by the exporter in conjunction with @file{htmlfontify.el}
11157library and need not be included in the default @file{styles.xml} file.
11158These auto-generated styles have the @samp{OrgSrc} prefix and inherit their color
11159based on the face used by Emacs @code{font-lock} library.
11160
11161@vindex org-export-odt-create-custom-styles-for-srcblocks
11162If you prefer to use your own custom styles for fontification and disable
11163their auto-generation altogether, you can do so by customizing the variable
11164@code{org-export-odt-create-custom-styles-for-srcblocks}.
11165
11166You can turn off fontification support for literal examples by customizing
11167the variable @code{org-export-odt-fontify-srcblocks}.
11168
11169
11170@node Advanced topics in @acronym{ODT} export, , Literal examples in @acronym{ODT} export, OpenDocument Text export
11171@subsection Advanced topics in @acronym{ODT} export
11172
11173If you rely heavily on @acronym{ODT} export, you may want to exploit the full
11174set of features that the exporter offers. This section describes features
11175that would be of interest to power users.
11176
11177@menu
11178* Exporting and converting to other formats:: How to produce @samp{pdf} and other formats
11179* Working with OpenDocument style files:: Explore the internals
11180* Creating one-off styles:: How to produce custom highlighting etc
11181* Customizing tables in @acronym{ODT} export:: How to define and use Table templates
11182* Validating OpenDocument XML:: How to debug corrupt OpenDocument files
11183@end menu
11184
11185@node Exporting and converting to other formats, Working with OpenDocument style files, Advanced topics in @acronym{ODT} export, Advanced topics in @acronym{ODT} export
11186@subsubsection Exporting and converting to other formats
11187@cindex convert
11188@cindex doc, docx
11189
11190The @acronym{ODT} exporter adds support for exporting Org outlines to formats
11191that are not supported natively by Org. It also adds support to convert
11192document from one format to another. To use these features, you need to
11193configure a command-line converter. Once a command-line converter is
11194configured you can use it to extend the list of formats to which Org can
11195export. @xref{x-export-to-other-formats,,Automatically exporting to other
11196formats}. You can also use it to perform one-off document conversion as
11197detailed below.
11198
11199@vindex org-export-odt-convert
11200@table @kbd
11201
11202@item M-x org-export-odt-convert
11203Convert an existing document from one format to another as determined by the
11204variable @code{org-export-odt-convert-capabilities}
11205(@pxref{x-odt-converter-capabilities,,Configure converter
11206capabilities}). @strong{Please note} that you can use this command to even
11207convert documents that are produced outside of Org and in other formats than
11208@acronym{ODT} format.
11209@end table
11210
11211@subsubheading Pre-configured converters
11212
11213@cindex converter
11214The @acronym{ODT} exporter supports two converters out of the box:
11215
11216@enumerate
11217
11218@cindex @file{unoconv}
11219@item @file{unoconv}
11220
11221This converter is available as an installable package in your favorite
11222distribution.
11223
11224@cindex @file{BasicODConverter}
11225@item @file{BasicODConverter}
11226
11227@vindex org-odt-data-dir
11228This converter is distributed as a LibreOffice extension and can be found in
11229your Org distribution. See the subdirectory pointed to by the variable
11230@code{org-odt-data-dir}.
11231
11232@end enumerate
11233
11234@subsubheading Installing a new converter
11235If you prefer to use a converter other than the two mentioned above, then you
11236may have to do additional configuration. You can proceed as follows:
11237
11238@enumerate
11239@item Register the converter
11240
11241@vindex org-export-odt-convert-processes
11242Name your converter and add it to the list of known converters by customizing
11243the variable @code{org-export-odt-convert-processes}. Also specify how the
11244converter can be invoked via command-line to effect the conversion.
11245
11246@item Configure its capabilities
11247@vindex org-export-odt-convert-capabilities
11248
11249@anchor{x-odt-converter-capabilities}
11250
11251Specify the set of formats the converter can handle by customizing the
11252variable @code{org-export-odt-convert-capabilities}. Use the default value
11253for this variable as a guide for configuring your converter. As suggested by
11254the default setting, you can specify the full set of formats supported by the
11255converter and not limit yourself to specifying formats that are related to
11256just the OpenDocument Text format.
11257
11258@item Choose the converter
11259
11260@vindex org-export-odt-convert-process
11261Select the newly added converter as the preferred one by customizing the
11262variable @code{org-export-odt-convert-process}.
11263@end enumerate
11264
11265@node Working with OpenDocument style files, Creating one-off styles, Exporting and converting to other formats, Advanced topics in @acronym{ODT} export
11266@subsubsection Working with OpenDocument style files
11267@cindex styles, custom
11268@cindex template, custom
11269
11270This section explores the internals of the @acronym{ODT} exporter and the
11271means by which it produces styled documents. Read this section if you are
11272interested in exploring the automatic and custom OpenDocument styles used by
11273the exporter.
11274
11275@anchor{x-factory-styles}
11276@subsubheading Factory styles
11277
11278The @acronym{ODT} exporter relies on two files for generating its output.
11279These files are bundled with the distribution under the directory pointed to
11280by the variable @code{org-odt-styles-dir}. The two files are:
11281
11282@itemize
11283@anchor{x-orgodtstyles-xml}
11284@item
11285@file{OrgOdtStyles.xml}
11286
11287This file contributes to the @file{styles.xml} file of the final @samp{ODT}
11288document. This file gets modified for the following purposes:
11289@enumerate
11290
11291@item
11292To control outline numbering based on user settings.
11293
11294@item
11295To add styles generated by @file{htmlfontify.el} for fontification of code
11296blocks.
11297@end enumerate
11298
11299@anchor{x-orgodtcontenttemplate-xml}
11300@item
11301@file{OrgOdtContentTemplate.xml}
11302
11303This file contributes to the @file{content.xml} file of the final @samp{ODT}
11304document. The contents of the Org outline are inserted between the
11305@samp{<office:text>}@dots{}@samp{</office:text>} elements of this file.
11306
11307Apart from serving as a template file for the final @file{content.xml}, the
11308file serves the following purposes:
11309@enumerate
11310
11311@item
11312It contains automatic styles for formatting of tables which are referenced by
11313the exporter.
11314
11315@item
11316It contains @samp{<text:sequence-decl>}@dots{}@samp{</text:sequence-decl>}
11317elements that control how various entities - tables, images, equations etc -
11318are numbered.
11319@end enumerate
11320@end itemize
11321
11322@anchor{x-overriding-factory-styles}
11323@subsubheading Overriding factory styles
11324The following two variables control the location from which the @acronym{ODT}
11325exporter picks up the custom styles and content template files. You can
11326customize these variables to override the factory styles used by the
11327exporter.
11328
11329@itemize
11330@anchor{x-org-export-odt-styles-file}
11331@item
11332@code{org-export-odt-styles-file}
11333
11334Use this variable to specify the @file{styles.xml} that will be used in the
11335final output. You can specify one of the following values:
11336
11337@enumerate
11338@item A @file{styles.xml} file
11339
11340Use this file instead of the default @file{styles.xml}
11341
11342@item A @file{.odt} or @file{.ott} file
11343
11344Use the @file{styles.xml} contained in the specified OpenDocument Text or
11345Template file
11346
11347@item A @file{.odt} or @file{.ott} file and a subset of files contained within them
11348
11349Use the @file{styles.xml} contained in the specified OpenDocument Text or
11350Template file. Additionally extract the specified member files and embed
11351those within the final @samp{ODT} document.
11352
11353Use this option if the @file{styles.xml} file references additional files
11354like header and footer images.
11355
11356@item @code{nil}
11357
11358Use the default @file{styles.xml}
11359@end enumerate
11360
11361@anchor{x-org-export-odt-content-template-file}
11362@item
11363@code{org-export-odt-content-template-file}
11364
11365Use this variable to specify the blank @file{content.xml} that will be used
11366in the final output.
11367@end itemize
11368
11369@node Creating one-off styles, Customizing tables in @acronym{ODT} export, Working with OpenDocument style files, Advanced topics in @acronym{ODT} export
11370@subsubsection Creating one-off styles
11371
11372There are times when you would want one-off formatting in the exported
11373document. You can achieve this by embedding raw OpenDocument XML in the Org
11374file. The use of this feature is better illustrated with couple of examples.
11375
11376@enumerate
11377@item Embedding ODT tags as part of regular text
11378
11379You can include simple OpenDocument tags by prefixing them with
11380@samp{@@}. For example, to highlight a region of text do the following:
11381
11382@example
11383@@<text:span text:style-name="Highlight">This is a
11384highlighted text@@</text:span>. But this is a
11385regular text.
11386@end example
11387
11388@strong{Hint:} To see the above example in action, edit your
11389@file{styles.xml}(@pxref{x-orgodtstyles-xml,,Factory styles}) and add a
11390custom @samp{Highlight} style as shown below.
11391
11392@example
11393<style:style style:name="Highlight" style:family="text">
11394 <style:text-properties fo:background-color="#ff0000"/>
11395</style:style>
11396@end example
11397
11398@item Embedding a one-line OpenDocument XML
11399
11400You can add a simple OpenDocument one-liner using the @code{#+ODT:}
11401directive. For example, to force a page break do the following:
11402
11403@example
11404#+ODT: <text:p text:style-name="PageBreak"/>
11405@end example
11406
11407@strong{Hint:} To see the above example in action, edit your
11408@file{styles.xml}(@pxref{x-orgodtstyles-xml,,Factory styles}) and add a
11409custom @samp{PageBreak} style as shown below.
11410
11411@example
11412<style:style style:name="PageBreak" style:family="paragraph"
11413 style:parent-style-name="Text_20_body">
11414 <style:paragraph-properties fo:break-before="page"/>
11415</style:style>
11416@end example
11417
11418@item Embedding a block of OpenDocument XML
11419
11420You can add a large block of OpenDocument XML using the
11421@code{#+BEGIN_ODT}@dots{}@code{#+END_ODT} construct.
11422
11423For example, to create a one-off paragraph that uses bold text, do the
11424following:
11425
11426@example
11427#+BEGIN_ODT
11428<text:p text:style-name="Text_20_body_20_bold">
11429This paragraph is specially formatted and uses bold text.
11430</text:p>
11431#+END_ODT
11432@end example
11433
11434@end enumerate
11435
11436@node Customizing tables in @acronym{ODT} export, Validating OpenDocument XML, Creating one-off styles, Advanced topics in @acronym{ODT} export
11437@subsubsection Customizing tables in @acronym{ODT} export
11438@cindex tables, in ODT export
11439
11440@cindex #+ATTR_ODT
11441You can override the default formatting of the table by specifying a custom
11442table style with the @code{#+ATTR_ODT} line. For a discussion on default
11443formatting of tables @pxref{Tables in @acronym{ODT} export}.
11444
11445This feature closely mimics the way table templates are defined in the
11446OpenDocument-v1.2
11447specification.@footnote{@url{http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html,
11448OpenDocument-v1.2 Specification}}
11449
11450
11451
11452@subsubheading Custom table styles - an illustration
11453
11454To have a quick preview of this feature, install the below setting and export
11455the table that follows.
11456
11457@lisp
11458(setq org-export-odt-table-styles
11459 (append org-export-odt-table-styles
11460 '(("TableWithHeaderRowAndColumn" "Custom"
11461 ((use-first-row-styles . t)
11462 (use-first-column-styles . t)))
11463 ("TableWithFirstRowandLastRow" "Custom"
11464 ((use-first-row-styles . t)
11465 (use-last-row-styles . t))))))
11466@end lisp
11467
11468@example
11469#+ATTR_ODT: TableWithHeaderRowAndColumn
11470| Name | Phone | Age |
11471| Peter | 1234 | 17 |
11472| Anna | 4321 | 25 |
11473@end example
11474
11475In the above example, you used a template named @samp{Custom} and installed
11476two table styles with the names @samp{TableWithHeaderRowAndColumn} and
11477@samp{TableWithFirstRowandLastRow}. (@strong{Important:} The OpenDocument
11478styles needed for producing the above template have been pre-defined for you.
11479These styles are available under the section marked @samp{Custom Table
11480Template} in @file{OrgOdtContentTemplate.xml}
11481(@pxref{x-orgodtcontenttemplate-xml,,Factory styles}). If you need
11482additional templates you have to define these styles yourselves.
11483
11484@subsubheading Custom table styles - the nitty-gritty
11485To use this feature proceed as follows:
11486
11487@enumerate
11488@item
11489Create a table template@footnote{See the @code{<table:table-template>}
11490element of the OpenDocument-v1.2 specification}
11491
11492A table template is nothing but a set of @samp{table-cell} and
11493@samp{paragraph} styles for each of the following table cell categories:
11494
11495@itemize @minus
11496@item Body
11497@item First column
11498@item Last column
11499@item First row
11500@item Last row
11501@item Even row
11502@item Odd row
11503@item Even column
11504@item Odd Column
11505@end itemize
11506
11507The names for the above styles must be chosen based on the name of the table
11508template using a well-defined convention.
11509
11510The naming convention is better illustrated with an example. For a table
11511template with the name @samp{Custom}, the needed style names are listed in
11512the following table.
11513
11514@multitable {Table cell type} {CustomEvenColumnTableCell} {CustomEvenColumnTableParagraph}
11515@headitem Table cell type
11516@tab @code{table-cell} style
11517@tab @code{paragraph} style
11518@item
11519@tab
11520@tab
11521@item Body
11522@tab @samp{CustomTableCell}
11523@tab @samp{CustomTableParagraph}
11524@item First column
11525@tab @samp{CustomFirstColumnTableCell}
11526@tab @samp{CustomFirstColumnTableParagraph}
11527@item Last column
11528@tab @samp{CustomLastColumnTableCell}
11529@tab @samp{CustomLastColumnTableParagraph}
11530@item First row
11531@tab @samp{CustomFirstRowTableCell}
11532@tab @samp{CustomFirstRowTableParagraph}
11533@item Last row
11534@tab @samp{CustomLastRowTableCell}
11535@tab @samp{CustomLastRowTableParagraph}
11536@item Even row
11537@tab @samp{CustomEvenRowTableCell}
11538@tab @samp{CustomEvenRowTableParagraph}
11539@item Odd row
11540@tab @samp{CustomOddRowTableCell}
11541@tab @samp{CustomOddRowTableParagraph}
11542@item Even column
11543@tab @samp{CustomEvenColumnTableCell}
11544@tab @samp{CustomEvenColumnTableParagraph}
11545@item Odd column
11546@tab @samp{CustomOddColumnTableCell}
11547@tab @samp{CustomOddColumnTableParagraph}
11548@end multitable
11549
11550To create a table template with the name @samp{Custom}, define the above
11551styles in the
11552@code{<office:automatic-styles>}...@code{</office:automatic-styles>} element
11553of the content template file (@pxref{x-orgodtcontenttemplate-xml,,Factory
11554styles}).
11555
11556@item
11557Define a table style@footnote{See the attributes @code{table:template-name},
11558@code{table:use-first-row-styles}, @code{table:use-last-row-styles},
11559@code{table:use-first-column-styles}, @code{table:use-last-column-styles},
11560@code{table:use-banding-rows-styles}, and
11561@code{table:use-banding-column-styles} of the @code{<table:table>} element in
11562the OpenDocument-v1.2 specification}
11563
11564@vindex org-export-odt-table-styles
11565To define a table style, create an entry for the style in the variable
11566@code{org-export-odt-table-styles} and specify the following:
11567
11568@itemize @minus
11569@item the name of the table template created in step (1)
11570@item the set of cell styles in that template that are to be activated
11571@end itemize
11572
11573For example, the entry below defines two different table styles
11574@samp{TableWithHeaderRowsAndColumns} and @samp{TableWithHeaderColumns} based
11575on the same template @samp{Custom}. The styles achieve their intended effect
11576by selectively activating the individual cell styles in that template.
11577
11578@lisp
11579(setq org-export-odt-table-styles
11580 (append org-export-odt-table-styles
11581 '(("TableWithHeaderRowAndColumn" "Custom"
11582 ((use-first-row-styles . t)
11583 (use-first-column-styles . t)))
11584 ("TableWithFirstRowandLastRow" "Custom"
11585 ((use-first-row-styles . t)
11586 (use-last-row-styles . t))))))
11587@end lisp
11588
11589@item
11590Associate a table with the table style
11591
11592To do this, specify the table style created in step (2) as part of
11593the @code{ATTR_ODT} line as shown below.
11594
11595@example
11596#+ATTR_ODT: TableWithHeaderRowAndColumn
11597| Name | Phone | Age |
11598| Peter | 1234 | 17 |
11599| Anna | 4321 | 25 |
11600@end example
11601@end enumerate
11602
11603@node Validating OpenDocument XML, , Customizing tables in @acronym{ODT} export, Advanced topics in @acronym{ODT} export
11604@subsubsection Validating OpenDocument XML
11605
11606Occasionally, you will discover that the document created by the
11607@acronym{ODT} exporter cannot be opened by your favorite application. One of
11608the common reasons for this is that the @file{.odt} file is corrupt. In such
11609cases, you may want to validate the document against the OpenDocument RELAX
11610NG Compact Syntax (RNC) schema.
11611
11612For de-compressing the @file{.odt} file@footnote{@file{.odt} files are
11613nothing but @samp{zip} archives}: @inforef{File Archives,,emacs}. For
11614general help with validation (and schema-sensitive editing) of XML files:
11615@inforef{Introduction,,nxml-mode}.
11616
11617@vindex org-export-odt-schema-dir
11618If you have ready access to OpenDocument @file{.rnc} files and the needed
11619schema-locating rules in a single folder, you can customize the variable
11620@code{org-export-odt-schema-dir} to point to that directory. The
11621@acronym{ODT} exporter will take care of updating the
11622@code{rng-schema-locating-files} for you.
11623
11624@c end opendocument
11625
11626@node TaskJuggler export, Freemind export, OpenDocument Text export, Exporting
10354@section TaskJuggler export 11627@section TaskJuggler export
10355@cindex TaskJuggler export 11628@cindex TaskJuggler export
10356@cindex Project management 11629@cindex Project management
@@ -10361,12 +11634,12 @@ resource assignments based on the project outline and the constraints that
10361you have provided. 11634you have provided.
10362 11635
10363The TaskJuggler exporter is a bit different from other exporters, such as the 11636The TaskJuggler exporter is a bit different from other exporters, such as the
10364HTML and LaTeX exporters for example, in that it does not export all the 11637@code{HTML} and @LaTeX{} exporters for example, in that it does not export all the
10365nodes of a document or strictly follow the order of the nodes in the 11638nodes of a document or strictly follow the order of the nodes in the
10366document. 11639document.
10367 11640
10368Instead the TaskJuggler exporter looks for a tree that defines the tasks and 11641Instead the TaskJuggler exporter looks for a tree that defines the tasks and
10369a optionally tree that defines the resources for this project. It then 11642a optionally tree that defines the resources for this project. It then
10370creates a TaskJuggler file based on these trees and the attributes defined in 11643creates a TaskJuggler file based on these trees and the attributes defined in
10371all the nodes. 11644all the nodes.
10372 11645
@@ -10383,30 +11656,30 @@ Export as TaskJuggler file and then open the file with TaskJugglerUI.
10383@subsection Tasks 11656@subsection Tasks
10384 11657
10385@vindex org-export-taskjuggler-project-tag 11658@vindex org-export-taskjuggler-project-tag
10386Create your tasks as you usually do with Org-mode. Assign efforts to each 11659Create your tasks as you usually do with Org mode. Assign efforts to each
10387task using properties (it's easiest to do this in the column view). You 11660task using properties (it is easiest to do this in the column view). You
10388should end up with something similar to the example by Peter Jones in 11661should end up with something similar to the example by Peter Jones in
10389@url{http://www.contextualdevelopment.com/static/artifacts/articles/2008/project-planning/project-planning.org}. 11662@url{http://www.contextualdevelopment.com/static/artifacts/articles/2008/project-planning/project-planning.org}.
10390Now mark the top node of your tasks with a tag named 11663Now mark the top node of your tasks with a tag named
10391@code{:taskjuggler_project:} (or whatever you customized 11664@code{:taskjuggler_project:} (or whatever you customized
10392@code{org-export-taskjuggler-project-tag} to). You are now ready to export 11665@code{org-export-taskjuggler-project-tag} to). You are now ready to export
10393the project plan with @kbd{C-c C-e J} which will export the project plan and 11666the project plan with @kbd{C-c C-e J} which will export the project plan and
10394open a gantt chart in TaskJugglerUI. 11667open a gantt chart in TaskJugglerUI.
10395 11668
10396@subsection Resources 11669@subsection Resources
10397 11670
10398@vindex org-export-taskjuggler-resource-tag 11671@vindex org-export-taskjuggler-resource-tag
10399Next you can define resources and assign those to work on specific tasks. You 11672Next you can define resources and assign those to work on specific tasks. You
10400can group your resources hierarchically. Tag the top node of the resources 11673can group your resources hierarchically. Tag the top node of the resources
10401with @code{:taskjuggler_resource:} (or whatever you customized 11674with @code{:taskjuggler_resource:} (or whatever you customized
10402@code{org-export-taskjuggler-resource-tag} to). You can optionally assign an 11675@code{org-export-taskjuggler-resource-tag} to). You can optionally assign an
10403identifier (named @samp{resource_id}) to the resources (using the standard 11676identifier (named @samp{resource_id}) to the resources (using the standard
10404Org properties commands, @pxref{Property syntax}) or you can let the exporter 11677Org properties commands, @pxref{Property syntax}) or you can let the exporter
10405generate identifiers automatically (the exporter picks the first word of the 11678generate identifiers automatically (the exporter picks the first word of the
10406headline as the identifier as long as it is unique---see the documentation of 11679headline as the identifier as long as it is unique---see the documentation of
10407@code{org-taskjuggler-get-unique-id}). Using that identifier you can then 11680@code{org-taskjuggler-get-unique-id}). Using that identifier you can then
10408allocate resources to tasks. This is again done with the @samp{allocate} 11681allocate resources to tasks. This is again done with the @samp{allocate}
10409property on the tasks. Do this in column view or when on the task type 11682property on the tasks. Do this in column view or when on the task type
10410@kbd{C-c C-x p allocate @key{RET} <resource_id> @key{RET}}. 11683@kbd{C-c C-x p allocate @key{RET} <resource_id> @key{RET}}.
10411 11684
10412Once the allocations are done you can again export to TaskJuggler and check 11685Once the allocations are done you can again export to TaskJuggler and check
@@ -10415,9 +11688,9 @@ time.
10415 11688
10416@subsection Export of properties 11689@subsection Export of properties
10417 11690
10418The exporter also takes TODO state information into consideration, i.e. if a 11691The exporter also takes TODO state information into consideration, i.e.@: if a
10419task is marked as done it will have the corresponding attribute in 11692task is marked as done it will have the corresponding attribute in
10420TaskJuggler (@samp{complete 100}). Also it will export any property on a task 11693TaskJuggler (@samp{complete 100}). Also it will export any property on a task
10421resource or resource node which is known to TaskJuggler, such as 11694resource or resource node which is known to TaskJuggler, such as
10422@samp{limits}, @samp{vacation}, @samp{shift}, @samp{booking}, 11695@samp{limits}, @samp{vacation}, @samp{shift}, @samp{booking},
10423@samp{efficiency}, @samp{journalentry}, @samp{rate} for resources or 11696@samp{efficiency}, @samp{journalentry}, @samp{rate} for resources or
@@ -10430,12 +11703,12 @@ resource or resource node which is known to TaskJuggler, such as
10430The exporter will handle dependencies that are defined in the tasks either 11703The exporter will handle dependencies that are defined in the tasks either
10431with the @samp{ORDERED} attribute (@pxref{TODO dependencies}), with the 11704with the @samp{ORDERED} attribute (@pxref{TODO dependencies}), with the
10432@samp{BLOCKER} attribute (see @file{org-depend.el}) or alternatively with a 11705@samp{BLOCKER} attribute (see @file{org-depend.el}) or alternatively with a
10433@samp{depends} attribute. Both the @samp{BLOCKER} and the @samp{depends} 11706@samp{depends} attribute. Both the @samp{BLOCKER} and the @samp{depends}
10434attribute can be either @samp{previous-sibling} or a reference to an 11707attribute can be either @samp{previous-sibling} or a reference to an
10435identifier (named @samp{task_id}) which is defined for another task in the 11708identifier (named @samp{task_id}) which is defined for another task in the
10436project. @samp{BLOCKER} and the @samp{depends} attribute can define multiple 11709project. @samp{BLOCKER} and the @samp{depends} attribute can define multiple
10437dependencies separated by either space or comma. You can also specify 11710dependencies separated by either space or comma. You can also specify
10438optional attributes on the dependency by simply appending it. The following 11711optional attributes on the dependency by simply appending it. The following
10439examples should illustrate this: 11712examples should illustrate this:
10440 11713
10441@example 11714@example
@@ -10451,15 +11724,15 @@ examples should illustrate this:
10451 :END: 11724 :END:
10452** Markup Guidelines 11725** Markup Guidelines
10453 :PROPERTIES: 11726 :PROPERTIES:
10454 :Effort: 2.0 11727 :Effort: 2d
10455 :END: 11728 :END:
10456** Workflow Guidelines 11729** Workflow Guidelines
10457 :PROPERTIES: 11730 :PROPERTIES:
10458 :Effort: 2.0 11731 :Effort: 2d
10459 :END: 11732 :END:
10460* Presentation 11733* Presentation
10461 :PROPERTIES: 11734 :PROPERTIES:
10462 :Effort: 2.0 11735 :Effort: 2d
10463 :BLOCKER: training_material @{ gapduration 1d @} preparation 11736 :BLOCKER: training_material @{ gapduration 1d @} preparation
10464 :END: 11737 :END:
10465@end example 11738@end example
@@ -10467,16 +11740,16 @@ examples should illustrate this:
10467@subsection Reports 11740@subsection Reports
10468 11741
10469@vindex org-export-taskjuggler-default-reports 11742@vindex org-export-taskjuggler-default-reports
10470TaskJuggler can produce many kinds of reports (e.g. gantt chart, resource 11743TaskJuggler can produce many kinds of reports (e.g.@: gantt chart, resource
10471allocation, etc). The user defines what kind of reports should be generated 11744allocation, etc). The user defines what kind of reports should be generated
10472for a project in the TaskJuggler file. The exporter will automatically insert 11745for a project in the TaskJuggler file. The exporter will automatically insert
10473some default reports in the file. These defaults are defined in 11746some default reports in the file. These defaults are defined in
10474@code{org-export-taskjuggler-default-reports}. They can be modified using 11747@code{org-export-taskjuggler-default-reports}. They can be modified using
10475customize along with a number of other options. For a more complete list, see 11748customize along with a number of other options. For a more complete list, see
10476@kbd{M-x customize-group @key{RET} org-export-taskjuggler @key{RET}}. 11749@kbd{M-x customize-group @key{RET} org-export-taskjuggler @key{RET}}.
10477 11750
10478For more information and examples see the Org-taskjuggler tutorial at 11751For more information and examples see the Org-taskjuggler tutorial at
10479@uref{http://orgmode.org/worg/org-tutorials/org-taskjuggler.php}. 11752@uref{http://orgmode.org/worg/org-tutorials/org-taskjuggler.html}.
10480 11753
10481@node Freemind export, XOXO export, TaskJuggler export, Exporting 11754@node Freemind export, XOXO export, TaskJuggler export, Exporting
10482@section Freemind export 11755@section Freemind export
@@ -10487,20 +11760,22 @@ The Freemind exporter was written by Lennart Borgman.
10487 11760
10488@table @kbd 11761@table @kbd
10489@orgcmd{C-c C-e m,org-export-as-freemind} 11762@orgcmd{C-c C-e m,org-export-as-freemind}
10490Export as Freemind mind map @file{myfile.mm}. 11763Export as Freemind mind map. For an Org file @file{myfile.org}, the Freemind
11764file will be @file{myfile.mm}.
10491@end table 11765@end table
10492 11766
10493@node XOXO export, iCalendar export, Freemind export, Exporting 11767@node XOXO export, iCalendar export, Freemind export, Exporting
10494@section XOXO export 11768@section XOXO export
10495@cindex XOXO export 11769@cindex XOXO export
10496 11770
10497Org-mode contains an exporter that produces XOXO-style output. 11771Org mode contains an exporter that produces XOXO-style output.
10498Currently, this exporter only handles the general outline structure and 11772Currently, this exporter only handles the general outline structure and
10499does not interpret any additional Org-mode features. 11773does not interpret any additional Org mode features.
10500 11774
10501@table @kbd 11775@table @kbd
10502@orgcmd{C-c C-e x,org-export-as-xoxo} 11776@orgcmd{C-c C-e x,org-export-as-xoxo}
10503Export as XOXO file @file{myfile.html}. 11777Export as XOXO file. For an Org file @file{myfile.org}, the XOXO file will be
11778@file{myfile.html}.
10504@orgkey{C-c C-e v x} 11779@orgkey{C-c C-e v x}
10505Export only the visible part of the document. 11780Export only the visible part of the document.
10506@end table 11781@end table
@@ -10514,10 +11789,10 @@ Export only the visible part of the document.
10514@vindex org-icalendar-use-scheduled 11789@vindex org-icalendar-use-scheduled
10515@vindex org-icalendar-categories 11790@vindex org-icalendar-categories
10516@vindex org-icalendar-alarm-time 11791@vindex org-icalendar-alarm-time
10517Some people use Org-mode for keeping track of projects, but still prefer a 11792Some people use Org mode for keeping track of projects, but still prefer a
10518standard calendar application for anniversaries and appointments. In this 11793standard calendar application for anniversaries and appointments. In this
10519case it can be useful to show deadlines and other time-stamped items in Org 11794case it can be useful to show deadlines and other time-stamped items in Org
10520files in the calendar application. Org-mode can export calendar information 11795files in the calendar application. Org mode can export calendar information
10521in the standard iCalendar format. If you also want to have TODO entries 11796in the standard iCalendar format. If you also want to have TODO entries
10522included in the export, configure the variable 11797included in the export, configure the variable
10523@code{org-icalendar-include-todo}. Plain timestamps are exported as VEVENT, 11798@code{org-icalendar-include-todo}. Plain timestamps are exported as VEVENT,
@@ -10607,7 +11882,7 @@ and many other properties of a project.
10607* Sources and destinations:: From here to there 11882* Sources and destinations:: From here to there
10608* Selecting files:: What files are part of the project? 11883* Selecting files:: What files are part of the project?
10609* Publishing action:: Setting the function doing the publishing 11884* Publishing action:: Setting the function doing the publishing
10610* Publishing options:: Tweaking HTML export 11885* Publishing options:: Tweaking HTML/@LaTeX{} export
10611* Publishing links:: Which links keep working after publishing? 11886* Publishing links:: Which links keep working after publishing?
10612* Sitemap:: Generating a list of all pages 11887* Sitemap:: Generating a list of all pages
10613* Generating an index:: An index that reaches across pages 11888* Generating an index:: An index that reaches across pages
@@ -10624,8 +11899,8 @@ variable, called @code{org-publish-project-alist}. Each element of the list
10624configures one project, and may be in one of the two following forms: 11899configures one project, and may be in one of the two following forms:
10625 11900
10626@lisp 11901@lisp
10627 ("project-name" :property value :property value ...) 11902 ("project-name" :property value :property value ...)
10628 @r{i.e. a well-formed property list with alternating keys and values} 11903 @r{i.e.@: a well-formed property list with alternating keys and values}
10629@r{or} 11904@r{or}
10630 ("project-name" :components ("project-name" "project-name" ...)) 11905 ("project-name" :components ("project-name" "project-name" ...))
10631 11906
@@ -10762,6 +12037,8 @@ respective variable for details.
10762@vindex org-export-with-drawers 12037@vindex org-export-with-drawers
10763@vindex org-export-with-tags 12038@vindex org-export-with-tags
10764@vindex org-export-with-todo-keywords 12039@vindex org-export-with-todo-keywords
12040@vindex org-export-with-tasks
12041@vindex org-export-with-done-tasks
10765@vindex org-export-with-priority 12042@vindex org-export-with-priority
10766@vindex org-export-with-TeX-macros 12043@vindex org-export-with-TeX-macros
10767@vindex org-export-with-LaTeX-fragments 12044@vindex org-export-with-LaTeX-fragments
@@ -10769,11 +12046,13 @@ respective variable for details.
10769@vindex org-export-with-fixed-width 12046@vindex org-export-with-fixed-width
10770@vindex org-export-with-timestamps 12047@vindex org-export-with-timestamps
10771@vindex org-export-author-info 12048@vindex org-export-author-info
10772@vindex org-export-email 12049@vindex org-export-email-info
10773@vindex org-export-creator-info 12050@vindex org-export-creator-info
12051@vindex org-export-time-stamp-file
10774@vindex org-export-with-tables 12052@vindex org-export-with-tables
10775@vindex org-export-highlight-first-table-line 12053@vindex org-export-highlight-first-table-line
10776@vindex org-export-html-style-include-default 12054@vindex org-export-html-style-include-default
12055@vindex org-export-html-style-include-scripts
10777@vindex org-export-html-style 12056@vindex org-export-html-style
10778@vindex org-export-html-style-extra 12057@vindex org-export-html-style-extra
10779@vindex org-export-html-link-org-files-as-html 12058@vindex org-export-html-link-org-files-as-html
@@ -10785,8 +12064,6 @@ respective variable for details.
10785@vindex org-export-publishing-directory 12064@vindex org-export-publishing-directory
10786@vindex org-export-html-preamble 12065@vindex org-export-html-preamble
10787@vindex org-export-html-postamble 12066@vindex org-export-html-postamble
10788@vindex org-export-html-auto-preamble
10789@vindex org-export-html-auto-postamble
10790@vindex user-full-name 12067@vindex user-full-name
10791@vindex user-mail-address 12068@vindex user-mail-address
10792@vindex org-export-select-tags 12069@vindex org-export-select-tags
@@ -10810,6 +12087,7 @@ respective variable for details.
10810@item @code{:drawers} @tab @code{org-export-with-drawers} 12087@item @code{:drawers} @tab @code{org-export-with-drawers}
10811@item @code{:tags} @tab @code{org-export-with-tags} 12088@item @code{:tags} @tab @code{org-export-with-tags}
10812@item @code{:todo-keywords} @tab @code{org-export-with-todo-keywords} 12089@item @code{:todo-keywords} @tab @code{org-export-with-todo-keywords}
12090@item @code{:tasks} @tab @code{org-export-with-tasks}
10813@item @code{:priority} @tab @code{org-export-with-priority} 12091@item @code{:priority} @tab @code{org-export-with-priority}
10814@item @code{:TeX-macros} @tab @code{org-export-with-TeX-macros} 12092@item @code{:TeX-macros} @tab @code{org-export-with-TeX-macros}
10815@item @code{:LaTeX-fragments} @tab @code{org-export-with-LaTeX-fragments} 12093@item @code{:LaTeX-fragments} @tab @code{org-export-with-LaTeX-fragments}
@@ -10817,28 +12095,27 @@ respective variable for details.
10817@item @code{:skip-before-1st-heading} @tab @code{org-export-skip-text-before-1st-heading} 12095@item @code{:skip-before-1st-heading} @tab @code{org-export-skip-text-before-1st-heading}
10818@item @code{:fixed-width} @tab @code{org-export-with-fixed-width} 12096@item @code{:fixed-width} @tab @code{org-export-with-fixed-width}
10819@item @code{:timestamps} @tab @code{org-export-with-timestamps} 12097@item @code{:timestamps} @tab @code{org-export-with-timestamps}
12098@item @code{:author} @tab @code{user-full-name}
12099@item @code{:email} @tab @code{user-mail-address} : @code{addr;addr;..}
10820@item @code{:author-info} @tab @code{org-export-author-info} 12100@item @code{:author-info} @tab @code{org-export-author-info}
10821@item @code{:email-info} @tab @code{org-export-email-info} 12101@item @code{:email-info} @tab @code{org-export-email-info}
10822@item @code{:creator-info} @tab @code{org-export-creator-info} 12102@item @code{:creator-info} @tab @code{org-export-creator-info}
10823@item @code{:tables} @tab @code{org-export-with-tables} 12103@item @code{:tables} @tab @code{org-export-with-tables}
10824@item @code{:table-auto-headline} @tab @code{org-export-highlight-first-table-line} 12104@item @code{:table-auto-headline} @tab @code{org-export-highlight-first-table-line}
10825@item @code{:style-include-default} @tab @code{org-export-html-style-include-default} 12105@item @code{:style-include-default} @tab @code{org-export-html-style-include-default}
12106@item @code{:style-include-scripts} @tab @code{org-export-html-style-include-scripts}
10826@item @code{:style} @tab @code{org-export-html-style} 12107@item @code{:style} @tab @code{org-export-html-style}
10827@item @code{:style-extra} @tab @code{org-export-html-style-extra} 12108@item @code{:style-extra} @tab @code{org-export-html-style-extra}
10828@item @code{:convert-org-links} @tab @code{org-export-html-link-org-files-as-html} 12109@item @code{:convert-org-links} @tab @code{org-export-html-link-org-files-as-html}
10829@item @code{:inline-images} @tab @code{org-export-html-inline-images} 12110@item @code{:inline-images} @tab @code{org-export-html-inline-images}
10830@item @code{:html-extension} @tab @code{org-export-html-extension} 12111@item @code{:html-extension} @tab @code{org-export-html-extension}
12112@item @code{:html-preamble} @tab @code{org-export-html-preamble}
12113@item @code{:html-postamble} @tab @code{org-export-html-postamble}
10831@item @code{:xml-declaration} @tab @code{org-export-html-xml-declaration} 12114@item @code{:xml-declaration} @tab @code{org-export-html-xml-declaration}
10832@item @code{:html-table-tag} @tab @code{org-export-html-table-tag} 12115@item @code{:html-table-tag} @tab @code{org-export-html-table-tag}
10833@item @code{:expand-quoted-html} @tab @code{org-export-html-expand} 12116@item @code{:expand-quoted-html} @tab @code{org-export-html-expand}
10834@item @code{:timestamp} @tab @code{org-export-html-with-timestamp} 12117@item @code{:timestamp} @tab @code{org-export-html-with-timestamp}
10835@item @code{:publishing-directory} @tab @code{org-export-publishing-directory} 12118@item @code{:publishing-directory} @tab @code{org-export-publishing-directory}
10836@item @code{:preamble} @tab @code{org-export-html-preamble}
10837@item @code{:postamble} @tab @code{org-export-html-postamble}
10838@item @code{:auto-preamble} @tab @code{org-export-html-auto-preamble}
10839@item @code{:auto-postamble} @tab @code{org-export-html-auto-postamble}
10840@item @code{:author} @tab @code{user-full-name}
10841@item @code{:email} @tab @code{user-mail-address} : @code{addr;addr;..}
10842@item @code{:select-tags} @tab @code{org-export-select-tags} 12119@item @code{:select-tags} @tab @code{org-export-select-tags}
10843@item @code{:exclude-tags} @tab @code{org-export-exclude-tags} 12120@item @code{:exclude-tags} @tab @code{org-export-exclude-tags}
10844@item @code{:latex-image-options} @tab @code{org-export-latex-image-default-option} 12121@item @code{:latex-image-options} @tab @code{org-export-latex-image-default-option}
@@ -10846,8 +12123,11 @@ respective variable for details.
10846 12123
10847Most of the @code{org-export-with-*} variables have the same effect in 12124Most of the @code{org-export-with-*} variables have the same effect in
10848both HTML and @LaTeX{} exporters, except for @code{:TeX-macros} and 12125both HTML and @LaTeX{} exporters, except for @code{:TeX-macros} and
10849@code{:LaTeX-fragments}, respectively @code{nil} and @code{t} in the 12126@code{:LaTeX-fragments} options, respectively @code{nil} and @code{t} in the
10850@LaTeX{} export. 12127@LaTeX{} export. See @code{org-export-plist-vars} to check this list of
12128options.
12129
12130
10851 12131
10852@vindex org-publish-project-alist 12132@vindex org-publish-project-alist
10853When a property is given a value in @code{org-publish-project-alist}, 12133When a property is given a value in @code{org-publish-project-alist},
@@ -10869,9 +12149,9 @@ to link to that, use an @code{http:} link instead of a @code{file:} link,
10869because @code{file:} links are converted to link to the corresponding 12149because @code{file:} links are converted to link to the corresponding
10870@file{html} file. 12150@file{html} file.
10871 12151
10872You may also link to related files, such as images. Provided you are careful 12152You may also link to related files, such as images. Provided you are careful
10873with relative file names, and provided you have also configured Org to upload 12153with relative file names, and provided you have also configured Org to upload
10874the related files, these links will work too. See @ref{Complex example}, for 12154the related files, these links will work too. See @ref{Complex example}, for
10875an example of this usage. 12155an example of this usage.
10876 12156
10877Sometimes an Org file to be published may contain links that are 12157Sometimes an Org file to be published may contain links that are
@@ -10905,11 +12185,11 @@ a map of files for a given project.
10905or @code{org-publish-all}. 12185or @code{org-publish-all}.
10906 12186
10907@item @code{:sitemap-filename} 12187@item @code{:sitemap-filename}
10908@tab Filename for output of sitemap. Defaults to @file{sitemap.org} (which 12188@tab Filename for output of sitemap. Defaults to @file{sitemap.org} (which
10909becomes @file{sitemap.html}). 12189becomes @file{sitemap.html}).
10910 12190
10911@item @code{:sitemap-title} 12191@item @code{:sitemap-title}
10912@tab Title of sitemap page. Defaults to name of file. 12192@tab Title of sitemap page. Defaults to name of file.
10913 12193
10914@item @code{:sitemap-function} 12194@item @code{:sitemap-function}
10915@tab Plug-in function to use for generation of the sitemap. 12195@tab Plug-in function to use for generation of the sitemap.
@@ -10921,20 +12201,42 @@ of links to all files in the project.
10921(default) or @code{last} to display folders first or last, 12201(default) or @code{last} to display folders first or last,
10922respectively. Any other value will mix files and folders. 12202respectively. Any other value will mix files and folders.
10923 12203
10924@item @code{:sitemap-alphabetically} 12204@item @code{:sitemap-sort-files}
10925@tab The site map is normally sorted alphabetically. Set this explicitly to 12205@tab How the files are sorted in the site map. Set this to
10926@code{nil} to turn off sorting. 12206@code{alphabetically} (default), @code{chronologically} or
12207@code{anti-chronologically}. @code{chronologically} sorts the files with
12208older date first while @code{anti-chronologically} sorts the files with newer
12209date first. @code{alphabetically} sorts the files alphabetically. The date of
12210a file is retrieved with @code{org-publish-find-date}.
10927 12211
10928@item @code{:sitemap-ignore-case} 12212@item @code{:sitemap-ignore-case}
10929@tab Should sorting be case-sensitive? Default @code{nil}. 12213@tab Should sorting be case-sensitive? Default @code{nil}.
10930 12214
12215@item @code{:sitemap-file-entry-format}
12216@tab With this option one can tell how a sitemap's entry is formatted in the
12217sitemap. This is a format string with some escape sequences: @code{%t} stands
12218for the title of the file, @code{%a} stands for the author of the file and
12219@code{%d} stands for the date of the file. The date is retrieved with the
12220@code{org-publish-find-date} function and formatted with
12221@code{org-publish-sitemap-date-format}. Default @code{%t}.
12222
12223@item @code{:sitemap-date-format}
12224@tab Format string for the @code{format-time-string} function that tells how
12225a sitemap entry's date is to be formatted. This property bypasses
12226@code{org-publish-sitemap-date-format} which defaults to @code{%Y-%m-%d}.
12227
12228@item @code{:sitemap-sans-extension}
12229@tab When non-nil, remove filenames' extensions from the generated sitemap.
12230Useful to have cool URIs (see @uref{http://www.w3.org/Provider/Style/URI}).
12231Defaults to @code{nil}.
12232
10931@end multitable 12233@end multitable
10932 12234
10933@node Generating an index, , Sitemap, Configuration 12235@node Generating an index, , Sitemap, Configuration
10934@subsection Generating an index 12236@subsection Generating an index
10935@cindex index, in a publishing project 12237@cindex index, in a publishing project
10936 12238
10937Org-mode can generate an index across the files of a publishing project. 12239Org mode can generate an index across the files of a publishing project.
10938 12240
10939@multitable @columnfractions 0.25 0.75 12241@multitable @columnfractions 0.25 0.75
10940@item @code{:makeindex} 12242@item @code{:makeindex}
@@ -10942,10 +12244,10 @@ Org-mode can generate an index across the files of a publishing project.
10942publish it as @file{theindex.html}. 12244publish it as @file{theindex.html}.
10943@end multitable 12245@end multitable
10944 12246
10945The file will be create when first publishing a project with the 12247The file will be created when first publishing a project with the
10946@code{:makeindex} set. The file only contains a statement @code{#+include: 12248@code{:makeindex} set. The file only contains a statement @code{#+include:
10947"theindex.inc"}. You can then built around this include statement by adding 12249"theindex.inc"}. You can then build around this include statement by adding
10948a title, style information etc. 12250a title, style information, etc.
10949 12251
10950@node Uploading files, Sample configuration, Configuration, Publishing 12252@node Uploading files, Sample configuration, Configuration, Publishing
10951@section Uploading files 12253@section Uploading files
@@ -10954,7 +12256,7 @@ a title, style information etc.
10954 12256
10955For those people already utilizing third party sync tools such as 12257For those people already utilizing third party sync tools such as
10956@command{rsync} or @command{unison}, it might be preferable not to use the built in 12258@command{rsync} or @command{unison}, it might be preferable not to use the built in
10957@i{remote} publishing facilities of Org-mode which rely heavily on 12259@i{remote} publishing facilities of Org mode which rely heavily on
10958Tramp. Tramp, while very useful and powerful, tends not to be 12260Tramp. Tramp, while very useful and powerful, tends not to be
10959so efficient for multiple file transfer and has been known to cause problems 12261so efficient for multiple file transfer and has been known to cause problems
10960under heavy usage. 12262under heavy usage.
@@ -11015,12 +12317,12 @@ directory on the local machine.
11015 12317
11016This more complicated example publishes an entire website, including 12318This more complicated example publishes an entire website, including
11017Org files converted to HTML, image files, Emacs Lisp source code, and 12319Org files converted to HTML, image files, Emacs Lisp source code, and
11018style sheets. The publishing directory is remote and private files are 12320style sheets. The publishing directory is remote and private files are
11019excluded. 12321excluded.
11020 12322
11021To ensure that links are preserved, care should be taken to replicate 12323To ensure that links are preserved, care should be taken to replicate
11022your directory structure on the web server, and to use relative file 12324your directory structure on the web server, and to use relative file
11023paths. For example, if your Org files are kept in @file{~/org} and your 12325paths. For example, if your Org files are kept in @file{~/org} and your
11024publishable images in @file{~/images}, you would link to an image with 12326publishable images in @file{~/images}, you would link to an image with
11025@c 12327@c
11026@example 12328@example
@@ -11028,7 +12330,7 @@ file:../images/myimage.png
11028@end example 12330@end example
11029@c 12331@c
11030On the web server, the relative path to the image should be the 12332On the web server, the relative path to the image should be the
11031same. You can accomplish this by setting up an "images" folder in the 12333same. You can accomplish this by setting up an "images" folder in the
11032right place on the web server, and publishing images to it. 12334right place on the web server, and publishing images to it.
11033 12335
11034@lisp 12336@lisp
@@ -11044,8 +12346,7 @@ right place on the web server, and publishing images to it.
11044 :table-of-contents nil 12346 :table-of-contents nil
11045 :style "<link rel=\"stylesheet\" 12347 :style "<link rel=\"stylesheet\"
11046 href=\"../other/mystyle.css\" type=\"text/css\"/>" 12348 href=\"../other/mystyle.css\" type=\"text/css\"/>"
11047 :auto-preamble t 12349 :html-preamble t)
11048 :auto-postamble nil)
11049 12350
11050 ("images" 12351 ("images"
11051 :base-directory "~/images/" 12352 :base-directory "~/images/"
@@ -11078,8 +12379,8 @@ Publish every project.
11078@end table 12379@end table
11079 12380
11080@vindex org-publish-use-timestamps-flag 12381@vindex org-publish-use-timestamps-flag
11081Org uses timestamps to track when a file has changed. The above functions 12382Org uses timestamps to track when a file has changed. The above functions
11082normally only publish changed files. You can override this and force 12383normally only publish changed files. You can override this and force
11083publishing of all files by giving a prefix argument to any of the commands 12384publishing of all files by giving a prefix argument to any of the commands
11084above, or by customizing the variable @code{org-publish-use-timestamps-flag}. 12385above, or by customizing the variable @code{org-publish-use-timestamps-flag}.
11085This may be necessary in particular if files include other files via 12386This may be necessary in particular if files include other files via
@@ -11094,8 +12395,8 @@ This may be necessary in particular if files include other files via
11094@cindex Davison, Dan 12395@cindex Davison, Dan
11095@cindex source code, working with 12396@cindex source code, working with
11096 12397
11097Source code can be included in Org-mode documents using a @samp{src} block, 12398Source code can be included in Org mode documents using a @samp{src} block,
11098e.g. 12399e.g.@:
11099 12400
11100@example 12401@example
11101#+BEGIN_SRC emacs-lisp 12402#+BEGIN_SRC emacs-lisp
@@ -11105,25 +12406,26 @@ e.g.
11105#+END_SRC 12406#+END_SRC
11106@end example 12407@end example
11107 12408
11108Org-mode provides a number of features for working with live source code, 12409Org mode provides a number of features for working with live source code,
11109including editing of code blocks in their native major-mode, evaluation of 12410including editing of code blocks in their native major-mode, evaluation of
11110code blocks, tangling of code blocks, and exporting code blocks and their 12411code blocks, converting code blocks into source files (known as @dfn{tangling}
12412in literate programming), and exporting code blocks and their
11111results in several formats. This functionality was contributed by Eric 12413results in several formats. This functionality was contributed by Eric
11112Schulte and Dan Davison, and was originally named Org-babel. 12414Schulte and Dan Davison, and was originally named Org-babel.
11113 12415
11114The following sections describe Org-mode's code block handling facilities. 12416The following sections describe Org mode's code block handling facilities.
11115 12417
11116@menu 12418@menu
11117* Structure of code blocks:: Code block syntax described 12419* Structure of code blocks:: Code block syntax described
11118* Editing source code:: Language major-mode editing 12420* Editing source code:: Language major-mode editing
11119* Exporting code blocks:: Export contents and/or results 12421* Exporting code blocks:: Export contents and/or results
11120* Extracting source code:: Create pure source code files 12422* Extracting source code:: Create pure source code files
11121* Evaluating code blocks:: Place results of evaluation in the Org-mode buffer 12423* Evaluating code blocks:: Place results of evaluation in the Org mode buffer
11122* Library of Babel:: Use and contribute to a library of useful code blocks 12424* Library of Babel:: Use and contribute to a library of useful code blocks
11123* Languages:: List of supported code block languages 12425* Languages:: List of supported code block languages
11124* Header arguments:: Configure code block functionality 12426* Header arguments:: Configure code block functionality
11125* Results of evaluation:: How evaluation results are handled 12427* Results of evaluation:: How evaluation results are handled
11126* Noweb reference syntax:: Literate programming in Org-mode 12428* Noweb reference syntax:: Literate programming in Org mode
11127* Key bindings and useful functions:: Work quickly with code blocks 12429* Key bindings and useful functions:: Work quickly with code blocks
11128* Batch execution:: Call functions from the command line 12430* Batch execution:: Call functions from the command line
11129@end menu 12431@end menu
@@ -11135,17 +12437,26 @@ The following sections describe Org-mode's code block handling facilities.
11135@section Structure of code blocks 12437@section Structure of code blocks
11136@cindex code block, structure 12438@cindex code block, structure
11137@cindex source code, block structure 12439@cindex source code, block structure
12440@cindex #+NAME
12441@cindex #+BEGIN_SRC
11138 12442
11139The structure of code blocks is as follows: 12443Live code blocks can be specified with a @samp{src} block or
12444inline.@footnote{Note that @samp{src} blocks may be inserted using Org mode's
12445@ref{Easy Templates} system} The structure of a @samp{src} block is
11140 12446
11141@example 12447@example
11142#+srcname: <name> 12448#+NAME: <name>
11143#+begin_src <language> <switches> <header arguments> 12449#+BEGIN_SRC <language> <switches> <header arguments>
11144 <body> 12450 <body>
11145#+end_src 12451#+END_SRC
11146@end example 12452@end example
11147 12453
11148code blocks can also be embedded in text as so called inline code blocks as 12454The @code{#+NAME:} line is optional, and can be used to name the code
12455block. Live code blocks require that a language be specified on the
12456@code{#+BEGIN_SRC} line. Switches and header arguments are optional.
12457@cindex source code, inline
12458
12459Live code blocks can also be specified inline using
11149 12460
11150@example 12461@example
11151src_<language>@{<body>@} 12462src_<language>@{<body>@}
@@ -11158,24 +12469,30 @@ src_<language>[<header arguments>]@{<body>@}
11158@end example 12469@end example
11159 12470
11160@table @code 12471@table @code
11161@item <name> 12472@item <#+NAME: name>
11162This name is associated with the code block. This is similar to the 12473This line associates a name with the code block. This is similar to the
11163@samp{#+tblname} lines that can be used to name tables in Org-mode files. 12474@code{#+TBLNAME: NAME} lines that can be used to name tables in Org mode
11164Referencing the name of a code block makes it possible to evaluate the 12475files. Referencing the name of a code block makes it possible to evaluate
11165block from other places in the file, other files, or from Org-mode table 12476the block from other places in the file, from other files, or from Org mode
11166formulas (see @ref{The spreadsheet}). 12477table formulas (see @ref{The spreadsheet}). Names are assumed to be unique
12478and the behavior of Org mode when two or more blocks share the same name is
12479undefined.
12480@cindex #+NAME
11167@item <language> 12481@item <language>
11168The language of the code in the block. 12482The language of the code in the block (see @ref{Languages}).
12483@cindex source code, language
11169@item <switches> 12484@item <switches>
11170Switches controlling exportation of the code block (see switches discussion in 12485Optional switches control code block export (see the discussion of switches in
11171@ref{Literal examples}) 12486@ref{Literal examples})
12487@cindex source code, switches
11172@item <header arguments> 12488@item <header arguments>
11173Optional header arguments control many aspects of evaluation, export and 12489Optional header arguments control many aspects of evaluation, export and
11174tangling of code blocks. See the @ref{Header arguments} 12490tangling of code blocks (see @ref{Header arguments}).
11175section. Header arguments can also be set on a per-buffer or per-subtree 12491Header arguments can also be set on a per-buffer or per-subtree
11176basis using properties. 12492basis using properties.
12493@item source code, header arguments
11177@item <body> 12494@item <body>
11178The source code. 12495Source code in the specified language.
11179@end table 12496@end table
11180 12497
11181@comment node-name, next, previous, up 12498@comment node-name, next, previous, up
@@ -11187,21 +12504,21 @@ The source code.
11187@cindex source code, editing 12504@cindex source code, editing
11188 12505
11189@kindex C-c ' 12506@kindex C-c '
11190Use @kbd{C-c '} to edit the current code block. This brings up 12507Use @kbd{C-c '} to edit the current code block. This brings up
11191a language major-mode edit buffer containing the body of the code 12508a language major-mode edit buffer containing the body of the code
11192block. Saving this buffer will write the new contents back to the Org 12509block. Saving this buffer will write the new contents back to the Org
11193buffer. Use @kbd{C-c '} again to exit. 12510buffer. Use @kbd{C-c '} again to exit.
11194 12511
11195The @code{org-src-mode} minor mode will be active in the edit buffer. The 12512The @code{org-src-mode} minor mode will be active in the edit buffer. The
11196following variables can be used to configure the behavior of the edit 12513following variables can be used to configure the behavior of the edit
11197buffer. See also the customization group @code{org-edit-structure} for 12514buffer. See also the customization group @code{org-edit-structure} for
11198further configuration options. 12515further configuration options.
11199 12516
11200@table @code 12517@table @code
11201@item org-src-lang-modes 12518@item org-src-lang-modes
11202If an Emacs major-mode named @code{<lang>-mode} exists, where 12519If an Emacs major-mode named @code{<lang>-mode} exists, where
11203@code{<lang>} is the language named in the header line of the code block, 12520@code{<lang>} is the language named in the header line of the code block,
11204then the edit buffer will be placed in that major-mode. This variable 12521then the edit buffer will be placed in that major-mode. This variable
11205can be used to map arbitrary language names to existing major modes. 12522can be used to map arbitrary language names to existing major modes.
11206@item org-src-window-setup 12523@item org-src-window-setup
11207Controls the way Emacs windows are rearranged when the edit buffer is created. 12524Controls the way Emacs windows are rearranged when the edit buffer is created.
@@ -11209,10 +12526,13 @@ Controls the way Emacs windows are rearranged when the edit buffer is created.
11209This variable is especially useful for tangling languages such as 12526This variable is especially useful for tangling languages such as
11210Python, in which whitespace indentation in the output is critical. 12527Python, in which whitespace indentation in the output is critical.
11211@item org-src-ask-before-returning-to-edit-buffer 12528@item org-src-ask-before-returning-to-edit-buffer
11212By default, Org will ask before returning to an open edit buffer. Set 12529By default, Org will ask before returning to an open edit buffer. Set this
11213this variable to nil to switch without asking. 12530variable to nil to switch without asking.
11214@end table 12531@end table
11215 12532
12533To turn on native code fontification in the @emph{Org} buffer, configure the
12534variable @code{org-src-fontify-natively}.
12535
11216@comment node-name, next, previous, up 12536@comment node-name, next, previous, up
11217@comment Exporting code blocks, Extracting source code, Editing source code, Working With Source Code 12537@comment Exporting code blocks, Extracting source code, Editing source code, Working With Source Code
11218 12538
@@ -11221,12 +12541,12 @@ this variable to nil to switch without asking.
11221@cindex code block, exporting 12541@cindex code block, exporting
11222@cindex source code, exporting 12542@cindex source code, exporting
11223 12543
11224It is possible to export the @emph{contents} of code blocks, the 12544It is possible to export the @emph{code} of code blocks, the @emph{results}
11225@emph{results} of code block evaluation, @emph{neither}, or @emph{both}. For 12545of code block evaluation, @emph{both} the code and the results of code block
11226most languages, the default exports the contents of code blocks. However, for 12546evaluation, or @emph{none}. For most languages, the default exports code.
11227some languages (e.g. @code{ditaa}) the default exports the results of code 12547However, for some languages (e.g.@: @code{ditaa}) the default exports the
11228block evaluation. For information on exporting code block bodies, see 12548results of code block evaluation. For information on exporting code block
11229@ref{Literal examples}. 12549bodies, see @ref{Literal examples}.
11230 12550
11231The @code{:exports} header argument can be used to specify export 12551The @code{:exports} header argument can be used to specify export
11232behavior: 12552behavior:
@@ -11234,11 +12554,11 @@ behavior:
11234@subsubheading Header arguments: 12554@subsubheading Header arguments:
11235@table @code 12555@table @code
11236@item :exports code 12556@item :exports code
11237The default in most languages. The body of the code block is exported, as 12557The default in most languages. The body of the code block is exported, as
11238described in @ref{Literal examples}. 12558described in @ref{Literal examples}.
11239@item :exports results 12559@item :exports results
11240The code block will be evaluated and the results will be placed in the 12560The code block will be evaluated and the results will be placed in the
11241Org-mode buffer for export, either updating previous results of the code 12561Org mode buffer for export, either updating previous results of the code
11242block located anywhere in the buffer or, if no previous results exist, 12562block located anywhere in the buffer or, if no previous results exist,
11243placing the results immediately after the code block. The body of the code 12563placing the results immediately after the code block. The body of the code
11244block will not be exported. 12564block will not be exported.
@@ -11251,14 +12571,15 @@ Neither the code block nor its results will be exported.
11251It is possible to inhibit the evaluation of code blocks during export. 12571It is possible to inhibit the evaluation of code blocks during export.
11252Setting the @code{org-export-babel-evaluate} variable to @code{nil} will 12572Setting the @code{org-export-babel-evaluate} variable to @code{nil} will
11253ensure that no code blocks are evaluated as part of the export process. This 12573ensure that no code blocks are evaluated as part of the export process. This
11254can be useful in situations where potentially untrusted Org-mode files are 12574can be useful in situations where potentially untrusted Org mode files are
11255exported in an automated fashion, for example when Org-mode is used as the 12575exported in an automated fashion, for example when Org mode is used as the
11256markup language for a wiki. 12576markup language for a wiki.
11257 12577
11258@comment node-name, next, previous, up 12578@comment node-name, next, previous, up
11259@comment Extracting source code, Evaluating code blocks, Exporting code blocks, Working With Source Code 12579@comment Extracting source code, Evaluating code blocks, Exporting code blocks, Working With Source Code
11260@node Extracting source code, Evaluating code blocks, Exporting code blocks, Working With Source Code 12580@node Extracting source code, Evaluating code blocks, Exporting code blocks, Working With Source Code
11261@section Extracting source code 12581@section Extracting source code
12582@cindex tangling
11262@cindex source code, extracting 12583@cindex source code, extracting
11263@cindex code block, extracting source code 12584@cindex code block, extracting source code
11264 12585
@@ -11273,7 +12594,7 @@ using @code{org-babel-expand-src-block} which can expand both variable and
11273@item :tangle no 12594@item :tangle no
11274The default. The code block is not included in the tangled output. 12595The default. The code block is not included in the tangled output.
11275@item :tangle yes 12596@item :tangle yes
11276Include the code block in the tangled output. The output file name is the 12597Include the code block in the tangled output. The output file name is the
11277name of the org file with the extension @samp{.org} replaced by the extension 12598name of the org file with the extension @samp{.org} replaced by the extension
11278for the block language. 12599for the block language.
11279@item :tangle filename 12600@item :tangle filename
@@ -11283,10 +12604,10 @@ Include the code block in the tangled output to file @samp{filename}.
11283@kindex C-c C-v t 12604@kindex C-c C-v t
11284@subsubheading Functions 12605@subsubheading Functions
11285@table @code 12606@table @code
11286@item org-babel-tangle 12607@item org-babel-tangle
11287Tangle the current file. Bound to @kbd{C-c C-v t}. 12608Tangle the current file. Bound to @kbd{C-c C-v t}.
11288@item org-babel-tangle-file 12609@item org-babel-tangle-file
11289Choose a file to tangle. Bound to @kbd{C-c C-v f}. 12610Choose a file to tangle. Bound to @kbd{C-c C-v f}.
11290@end table 12611@end table
11291 12612
11292@subsubheading Hooks 12613@subsubheading Hooks
@@ -11303,14 +12624,15 @@ of tangled code files.
11303@cindex source code, evaluating 12624@cindex source code, evaluating
11304 12625
11305Code blocks can be evaluated@footnote{Whenever code is evaluated there is a 12626Code blocks can be evaluated@footnote{Whenever code is evaluated there is a
11306potential for that code to do harm. Org-mode provides a number of safeguards 12627potential for that code to do harm. Org mode provides safeguards to ensure
11307to ensure that it only evaluates code with explicit confirmation from the 12628that code is only evaluated after explicit confirmation from the user. For
11308user. For information on these safeguards (and on how to disable them) see 12629information on these safeguards (and on how to disable them) see @ref{Code
11309@ref{Code evaluation security}.} and the results placed in the Org-mode 12630evaluation security}.} and the results of evaluation optionally placed in the
11310buffer. By default, evaluation is only turned on for @code{emacs-lisp} code 12631Org mode buffer. By default, the evaluation facility is only enabled for
11311blocks, however support exists for evaluating blocks in many languages. See 12632Lisp code blocks specified as @code{emacs-lisp}. However, source code blocks
11312@ref{Languages} for a list of supported languages. See @ref{Structure of 12633in many languages can be evaluated within Org mode (see @ref{Languages} for a
11313code blocks} for information on the syntax used to define a code block. 12634list of supported languages and @ref{Structure of code blocks} for
12635information on the syntax used to define a code block).
11314 12636
11315@kindex C-c C-c 12637@kindex C-c C-c
11316There are a number of ways to evaluate code blocks. The simplest is to press 12638There are a number of ways to evaluate code blocks. The simplest is to press
@@ -11318,49 +12640,77 @@ There are a number of ways to evaluate code blocks. The simplest is to press
11318@code{org-babel-no-eval-on-ctrl-c-ctrl-c} variable can be used to remove code 12640@code{org-babel-no-eval-on-ctrl-c-ctrl-c} variable can be used to remove code
11319evaluation from the @kbd{C-c C-c} key binding.}. This will call the 12641evaluation from the @kbd{C-c C-c} key binding.}. This will call the
11320@code{org-babel-execute-src-block} function to evaluate the block and insert 12642@code{org-babel-execute-src-block} function to evaluate the block and insert
11321its results into the Org-mode buffer. 12643its results into the Org mode buffer.
12644@cindex #+CALL
11322 12645
11323It is also possible to evaluate named code blocks from anywhere in an 12646It is also possible to evaluate named code blocks from anywhere in an
11324Org-mode buffer or an Org-mode table. @code{#+call} (or synonymously 12647Org mode buffer or an Org mode table. Live code blocks located in the current
11325@code{#+function} or @code{#+lob}) lines can be used to remotely execute code 12648Org mode buffer or in the ``Library of Babel'' (see @ref{Library of Babel})
11326blocks located in the current Org-mode buffer or in the ``Library of Babel'' 12649can be executed. Named code blocks can be executed with a separate
11327(see @ref{Library of Babel}). These lines use the following syntax. 12650@code{#+CALL:} line or inline within a block of text.
12651
12652The syntax of the @code{#+CALL:} line is
11328 12653
11329@example 12654@example
11330#+call: <name>(<arguments>) <header arguments> 12655#+CALL: <name>(<arguments>)
11331#+function: <name>(<arguments>) <header arguments> 12656#+CALL: <name>[<inside header arguments>](<arguments>) <end header arguments>
11332#+lob: <name>(<arguments>) <header arguments> 12657@end example
12658
12659The syntax for inline evaluation of named code blocks is
12660
12661@example
12662... call_<name>(<arguments>) ...
12663... call_<name>[<inside header arguments>](<arguments>)[<end header arguments>] ...
11333@end example 12664@end example
11334 12665
11335@table @code 12666@table @code
11336@item <name> 12667@item <name>
11337The name of the code block to be evaluated. 12668The name of the code block to be evaluated (see @ref{Structure of code blocks}).
11338@item <arguments> 12669@item <arguments>
11339Arguments specified in this section will be passed to the code block. 12670Arguments specified in this section will be passed to the code block. These
11340@item <header arguments> 12671arguments use standard function call syntax, rather than
11341Header arguments can be placed after the function invocation. See 12672header argument syntax. For example, a @code{#+CALL:} line that passes the
11342@ref{Header arguments} for more information on header arguments. 12673number four to a code block named @code{double}, which declares the header
12674argument @code{:var n=2}, would be written as @code{#+CALL: double(n=4)}.
12675@item <inside header arguments>
12676Inside header arguments are passed through and applied to the named code
12677block. These arguments use header argument syntax rather than standard
12678function call syntax. Inside header arguments affect how the code block is
12679evaluated. For example, @code{[:results output]} will collect the results of
12680everything printed to @code{STDOUT} during execution of the code block.
12681@item <end header arguments>
12682End header arguments are applied to the calling instance and do not affect
12683evaluation of the named code block. They affect how the results are
12684incorporated into the Org mode buffer and how the call line is exported. For
12685example, @code{:results html} will insert the results of the call line
12686evaluation in the Org buffer, wrapped in a @code{BEGIN_HTML:} block.
12687
12688For more examples of passing header arguments to @code{#+CALL:} lines see
12689@ref{Header arguments in function calls}.
11343@end table 12690@end table
11344 12691
11345
11346@node Library of Babel, Languages, Evaluating code blocks, Working With Source Code 12692@node Library of Babel, Languages, Evaluating code blocks, Working With Source Code
11347@section Library of Babel 12693@section Library of Babel
11348@cindex babel, library of 12694@cindex babel, library of
11349@cindex source code, library 12695@cindex source code, library
11350@cindex code block, library 12696@cindex code block, library
11351 12697
11352The ``Library of Babel'' is a library of code blocks 12698The ``Library of Babel'' consists of code blocks that can be called from any
11353that can be called from any Org-mode file. The library is housed in an 12699Org mode file. Code blocks defined in the ``Library of Babel'' can be called
11354Org-mode file located in the @samp{contrib} directory of Org-mode. 12700remotely as if they were in the current Org mode buffer (see @ref{Evaluating
11355Org-mode users can deposit functions they believe to be generally 12701code blocks} for information on the syntax of remote code block evaluation).
11356useful in the library. 12702
12703
12704The central repository of code blocks in the ``Library of Babel'' is housed
12705in an Org mode file located in the @samp{contrib} directory of Org mode.
12706
12707Users can add code blocks they believe to be generally useful to their
12708``Library of Babel.'' The code blocks can be stored in any Org mode file and
12709then loaded into the library with @code{org-babel-lob-ingest}.
11357 12710
11358Code blocks defined in the ``Library of Babel'' can be called remotely as if
11359they were in the current Org-mode buffer (see @ref{Evaluating code blocks}
11360for information on the syntax of remote code block evaluation).
11361 12711
11362@kindex C-c C-v i 12712@kindex C-c C-v i
11363Code blocks located in any Org-mode file can be loaded into the ``Library of 12713Code blocks located in any Org mode file can be loaded into the ``Library of
11364Babel'' with the @code{org-babel-lob-ingest} function, bound to @kbd{C-c C-v 12714Babel'' with the @code{org-babel-lob-ingest} function, bound to @kbd{C-c C-v
11365i}. 12715i}.
11366 12716
@@ -11374,19 +12724,24 @@ Code blocks in the following languages are supported.
11374 12724
11375@multitable @columnfractions 0.28 0.3 0.22 0.2 12725@multitable @columnfractions 0.28 0.3 0.22 0.2
11376@item @b{Language} @tab @b{Identifier} @tab @b{Language} @tab @b{Identifier} 12726@item @b{Language} @tab @b{Identifier} @tab @b{Language} @tab @b{Identifier}
11377@item Asymptote @tab asymptote @tab C @tab C 12727@item Asymptote @tab asymptote @tab Awk @tab awk
12728@item Emacs Calc @tab calc @tab C @tab C
11378@item C++ @tab C++ @tab Clojure @tab clojure 12729@item C++ @tab C++ @tab Clojure @tab clojure
11379@item CSS @tab css @tab ditaa @tab ditaa 12730@item CSS @tab css @tab ditaa @tab ditaa
11380@item Graphviz @tab dot @tab Emacs Lisp @tab emacs-lisp 12731@item Graphviz @tab dot @tab Emacs Lisp @tab emacs-lisp
11381@item gnuplot @tab gnuplot @tab Haskell @tab haskell 12732@item gnuplot @tab gnuplot @tab Haskell @tab haskell
11382@item LaTeX @tab latex @tab MATLAB @tab matlab 12733@item Java @tab java @tab @tab
12734@item Javascript @tab js @tab LaTeX @tab latex
12735@item Ledger @tab ledger @tab Lisp @tab lisp
12736@item Lilypond @tab lilypond @tab MATLAB @tab matlab
11383@item Mscgen @tab mscgen @tab Objective Caml @tab ocaml 12737@item Mscgen @tab mscgen @tab Objective Caml @tab ocaml
11384@item Octave @tab octave @tab Oz @tab oz 12738@item Octave @tab octave @tab Org mode @tab org
11385@item Perl @tab perl @tab Python @tab python 12739@item Oz @tab oz @tab Perl @tab perl
12740@item Plantuml @tab plantuml @tab Python @tab python
11386@item R @tab R @tab Ruby @tab ruby 12741@item R @tab R @tab Ruby @tab ruby
11387@item Sass @tab sass @tab GNU Screen @tab screen 12742@item Sass @tab sass @tab Scheme @tab scheme
11388@item shell @tab sh @tab SQL @tab sql 12743@item GNU Screen @tab screen @tab shell @tab sh
11389@item SQLite @tab sqlite 12744@item SQL @tab sql @tab SQLite @tab sqlite
11390@end multitable 12745@end multitable
11391 12746
11392Language-specific documentation is available for some languages. If 12747Language-specific documentation is available for some languages. If
@@ -11444,7 +12799,7 @@ specific (and having higher priority) than the last.
11444* System-wide header arguments:: Set global default values 12799* System-wide header arguments:: Set global default values
11445* Language-specific header arguments:: Set default values by language 12800* Language-specific header arguments:: Set default values by language
11446* Buffer-wide header arguments:: Set default values for a specific buffer 12801* Buffer-wide header arguments:: Set default values for a specific buffer
11447* Header arguments in Org-mode properties:: Set default values for a buffer or heading 12802* Header arguments in Org mode properties:: Set default values for a buffer or heading
11448* Code block specific header arguments:: The most common way to set values 12803* Code block specific header arguments:: The most common way to set values
11449* Header arguments in function calls:: The most specific level 12804* Header arguments in function calls:: The most specific level
11450@end menu 12805@end menu
@@ -11495,12 +12850,11 @@ Each language can define its own set of default header arguments. See the
11495language-specific documentation available online at 12850language-specific documentation available online at
11496@uref{http://orgmode.org/worg/org-contrib/babel}. 12851@uref{http://orgmode.org/worg/org-contrib/babel}.
11497 12852
11498@node Buffer-wide header arguments, Header arguments in Org-mode properties, Language-specific header arguments, Using header arguments 12853@node Buffer-wide header arguments, Header arguments in Org mode properties, Language-specific header arguments, Using header arguments
11499@subsubheading Buffer-wide header arguments 12854@subsubheading Buffer-wide header arguments
11500Buffer-wide header arguments may be specified through the use of a special 12855Buffer-wide header arguments may be specified as properties through the use
11501line placed anywhere in an Org-mode file. The line consists of the 12856of @code{#+PROPERTY:} lines placed anywhere in an Org mode file (see
11502@code{#+BABEL:} keyword followed by a series of header arguments which may be 12857@ref{Property syntax}).
11503specified using the standard header argument syntax.
11504 12858
11505For example the following would set @code{session} to @code{*R*}, and 12859For example the following would set @code{session} to @code{*R*}, and
11506@code{results} to @code{silent} for every code block in the buffer, ensuring 12860@code{results} to @code{silent} for every code block in the buffer, ensuring
@@ -11508,24 +12862,27 @@ that all execution took place in the same session, and no results would be
11508inserted into the buffer. 12862inserted into the buffer.
11509 12863
11510@example 12864@example
11511#+BABEL: :session *R* :results silent 12865#+PROPERTY: session *R*
12866#+PROPERTY: results silent
11512@end example 12867@end example
11513 12868
11514@node Header arguments in Org-mode properties, Code block specific header arguments, Buffer-wide header arguments, Using header arguments 12869@node Header arguments in Org mode properties, Code block specific header arguments, Buffer-wide header arguments, Using header arguments
11515@subsubheading Header arguments in Org-mode properties 12870@subsubheading Header arguments in Org mode properties
11516 12871
11517Header arguments are also read from Org-mode properties (see @ref{Property 12872Header arguments are also read from Org mode properties (see @ref{Property
11518syntax}), which can be set on a buffer-wide or per-heading basis. An example 12873syntax}), which can be set on a buffer-wide or per-heading basis. An example
11519of setting a header argument for all code blocks in a buffer is 12874of setting a header argument for all code blocks in a buffer is
11520 12875
11521@example 12876@example
11522#+property: tangle yes 12877#+PROPERTY: tangle yes
11523@end example 12878@end example
11524 12879
12880@vindex org-use-property-inheritance
11525When properties are used to set default header arguments, they are looked up 12881When properties are used to set default header arguments, they are looked up
11526with inheritance, so the value of the @code{:cache} header argument will default 12882with inheritance, regardless of the value of
11527to @code{yes} in all code blocks in the subtree rooted at the following 12883@code{org-use-property-inheritance}. In the following example the value of
11528heading: 12884the @code{:cache} header argument will default to @code{yes} in all code
12885blocks in the subtree rooted at the following heading:
11529 12886
11530@example 12887@example
11531* outline header 12888* outline header
@@ -11539,49 +12896,89 @@ heading:
11539Properties defined in this way override the properties set in 12896Properties defined in this way override the properties set in
11540@code{org-babel-default-header-args}. It is convenient to use the 12897@code{org-babel-default-header-args}. It is convenient to use the
11541@code{org-set-property} function bound to @kbd{C-c C-x p} to set properties 12898@code{org-set-property} function bound to @kbd{C-c C-x p} to set properties
11542in Org-mode documents. 12899in Org mode documents.
11543 12900
11544@node Code block specific header arguments, Header arguments in function calls, Header arguments in Org-mode properties, Using header arguments 12901@node Code block specific header arguments, Header arguments in function calls, Header arguments in Org mode properties, Using header arguments
11545@subsubheading Code block specific header arguments 12902@subsubheading Code block specific header arguments
11546 12903
11547The most common way to assign values to header arguments is at the 12904The most common way to assign values to header arguments is at the
11548code block level. This can be done by listing a sequence of header 12905code block level. This can be done by listing a sequence of header
11549arguments and their values as part of the @code{#+begin_src} line. 12906arguments and their values as part of the @code{#+BEGIN_SRC} line.
11550Properties set in this way override both the values of 12907Properties set in this way override both the values of
11551@code{org-babel-default-header-args} and header arguments specified as 12908@code{org-babel-default-header-args} and header arguments specified as
11552properties. In the following example, the @code{:results} header argument 12909properties. In the following example, the @code{:results} header argument
11553is set to @code{silent}, meaning the results of execution will not be 12910is set to @code{silent}, meaning the results of execution will not be
11554inserted in the buffer, and the @code{:exports} header argument is set to 12911inserted in the buffer, and the @code{:exports} header argument is set to
11555@code{code}, meaning only the body of the code block will be 12912@code{code}, meaning only the body of the code block will be
11556preserved on export to HTML or LaTeX. 12913preserved on export to HTML or @LaTeX{}.
11557 12914
11558@example 12915@example
11559#+source: factorial 12916#+NAME: factorial
11560#+begin_src haskell :results silent :exports code :var n=0 12917#+BEGIN_SRC haskell :results silent :exports code :var n=0
11561fac 0 = 1 12918fac 0 = 1
11562fac n = n * fac (n-1) 12919fac n = n * fac (n-1)
11563#+end_src 12920#+END_SRC
11564@end example 12921@end example
11565Similarly, it is possible to set header arguments for inline code blocks: 12922Similarly, it is possible to set header arguments for inline code blocks
11566 12923
11567@example 12924@example
11568src_haskell[:exports both]@{fac 5@} 12925src_haskell[:exports both]@{fac 5@}
11569@end example 12926@end example
11570 12927
12928Code block header arguments can span multiple lines using @code{#+HEADER:} or
12929@code{#+HEADERS:} lines preceding a code block or nested between the
12930@code{#+NAME:} line and the @code{#+BEGIN_SRC} line of a named code block.
12931@cindex #+HEADER:
12932@cindex #+HEADERS:
12933
12934Multi-line header arguments on an un-named code block:
12935@example
12936 #+HEADERS: :var data1=1
12937 #+BEGIN_SRC emacs-lisp :var data2=2
12938 (message "data1:%S, data2:%S" data1 data2)
12939 #+END_SRC
12940
12941 #+results:
12942 : data1:1, data2:2
12943@end example
12944
12945Multi-line header arguments on a named code block:
12946@example
12947 #+NAME: named-block
12948 #+HEADER: :var data=2
12949 #+BEGIN_SRC emacs-lisp
12950 (message "data:%S" data)
12951 #+END_SRC
12952
12953 #+results: named-block
12954 : data:2
12955@end example
12956
11571@node Header arguments in function calls, , Code block specific header arguments, Using header arguments 12957@node Header arguments in function calls, , Code block specific header arguments, Using header arguments
11572@comment node-name, next, previous, up 12958@comment node-name, next, previous, up
11573@subsubheading Header arguments in function calls 12959@subsubheading Header arguments in function calls
11574 12960
11575At the most specific level, header arguments for ``Library of Babel'' or 12961At the most specific level, header arguments for ``Library of Babel'' or
11576function call lines can be set as shown below: 12962@code{#+CALL:} lines can be set as shown in the two examples below. For more
12963information on the structure of @code{#+CALL:} lines see @ref{Evaluating code
12964blocks}.
12965
12966The following will apply the @code{:exports results} header argument to the
12967evaluation of the @code{#+CALL:} line.
12968@example
12969#+CALL: factorial(n=5) :exports results
12970@end example
11577 12971
12972The following will apply the @code{:session special} header argument to the
12973evaluation of the @code{factorial} code block.
11578@example 12974@example
11579#+call: factorial(n=5) :exports results 12975#+CALL: factorial[:session special](n=5)
11580@end example 12976@end example
11581 12977
11582@node Specific header arguments, , Using header arguments, Header arguments 12978@node Specific header arguments, , Using header arguments, Header arguments
11583@subsection Specific header arguments 12979@subsection Specific header arguments
11584The following header arguments are defined: 12980Header arguments consist of an initial colon followed by the name of the
12981argument in lowercase letters. The following header arguments are defined:
11585 12982
11586@menu 12983@menu
11587* var:: Pass arguments to code blocks 12984* var:: Pass arguments to code blocks
@@ -11592,13 +12989,19 @@ The following header arguments are defined:
11592 directory for code block execution 12989 directory for code block execution
11593* exports:: Export code and/or results 12990* exports:: Export code and/or results
11594* tangle:: Toggle tangling and specify file name 12991* tangle:: Toggle tangling and specify file name
12992* mkdirp:: Toggle creation of parent directories of target
12993 files during tangling
11595* comments:: Toggle insertion of comments in tangled 12994* comments:: Toggle insertion of comments in tangled
11596 code files 12995 code files
12996* padline:: Control insertion of padding lines in tangled
12997 code files
11597* no-expand:: Turn off variable assignment and noweb 12998* no-expand:: Turn off variable assignment and noweb
11598 expansion during tangling 12999 expansion during tangling
11599* session:: Preserve the state of code evaluation 13000* session:: Preserve the state of code evaluation
11600* noweb:: Toggle expansion of noweb references 13001* noweb:: Toggle expansion of noweb references
13002* noweb-ref:: Specify block's noweb reference resolution target
11601* cache:: Avoid re-evaluating unchanged code blocks 13003* cache:: Avoid re-evaluating unchanged code blocks
13004* sep:: Delimiter for writing tabular results outside Org
11602* hlines:: Handle horizontal lines in tables 13005* hlines:: Handle horizontal lines in tables
11603* colnames:: Handle column names in tables 13006* colnames:: Handle column names in tables
11604* rownames:: Handle row names in tables 13007* rownames:: Handle row names in tables
@@ -11606,17 +13009,26 @@ The following header arguments are defined:
11606* eval:: Limit evaluation of specific code blocks 13009* eval:: Limit evaluation of specific code blocks
11607@end menu 13010@end menu
11608 13011
13012Additional header arguments are defined on a language-specific basis, see
13013@ref{Languages}.
13014
11609@node var, results, Specific header arguments, Specific header arguments 13015@node var, results, Specific header arguments, Specific header arguments
11610@subsubsection @code{:var} 13016@subsubsection @code{:var}
11611The @code{:var} header argument is used to pass arguments to code blocks. 13017The @code{:var} header argument is used to pass arguments to code blocks.
11612The specifics of how arguments are included in a code block vary by language; 13018The specifics of how arguments are included in a code block vary by language;
11613these are addressed in the language-specific documentation. However, the 13019these are addressed in the language-specific documentation. However, the
11614syntax used to specify arguments is the same across all languages. The 13020syntax used to specify arguments is the same across all languages. In every
11615values passed to arguments can be literal values, values from org-mode tables 13021case, variables require a default value when they are declared.
11616and literal example blocks, or the results of other code blocks. 13022
13023The values passed to arguments can either be literal values, references, or
13024Emacs Lisp code (see @ref{var, Emacs Lisp evaluation of variables}). References
13025include anything in the Org mode file that takes a @code{#+NAME:},
13026@code{#+TBLNAME:}, or @code{#+RESULTS:} line. This includes tables, lists,
13027@code{#+BEGIN_EXAMPLE} blocks, other code blocks, and the results of other
13028code blocks.
11617 13029
11618These values can be indexed in a manner similar to arrays---see the 13030Argument values can be indexed in a manner similar to arrays (see @ref{var,
11619``indexable variable values'' heading below. 13031Indexable variable values}).
11620 13032
11621The following syntax is used to pass arguments to code blocks using the 13033The following syntax is used to pass arguments to code blocks using the
11622@code{:var} header argument. 13034@code{:var} header argument.
@@ -11625,96 +13037,144 @@ The following syntax is used to pass arguments to code blocks using the
11625:var name=assign 13037:var name=assign
11626@end example 13038@end example
11627 13039
11628where @code{assign} can take one of the following forms 13040The argument, @code{assign}, can either be a literal value, such as a string
13041@samp{"string"} or a number @samp{9}, or a reference to a table, a list, a
13042literal example, another code block (with or without arguments), or the
13043results of evaluating another code block.
11629 13044
11630@itemize @bullet 13045Here are examples of passing values by reference:
11631@item literal value 13046
11632either a string @code{"string"} or a number @code{9}. 13047@table @dfn
11633@item reference
11634a table name:
11635 13048
13049@item table
13050an Org mode table named with either a @code{#+NAME:} or @code{#+TBLNAME:} line
11636@example 13051@example
11637#+tblname: example-table 13052#+TBLNAME: example-table
11638| 1 | 13053| 1 |
11639| 2 | 13054| 2 |
11640| 3 | 13055| 3 |
11641| 4 | 13056| 4 |
11642 13057
11643#+source: table-length 13058#+NAME: table-length
11644#+begin_src emacs-lisp :var table=example-table 13059#+BEGIN_SRC emacs-lisp :var table=example-table
11645(length table) 13060(length table)
11646#+end_src 13061#+END_SRC
11647 13062
11648#+results: table-length 13063#+results: table-length
11649: 4 13064: 4
11650@end example 13065@end example
11651 13066
11652a code block name, as assigned by @code{#+srcname:}, followed by 13067@item list
11653parentheses: 13068a simple list named with a @code{#+NAME:} line (note that nesting is not
13069carried through to the source code block)
13070
13071@example
13072#+NAME: example-list
13073 - simple
13074 - not
13075 - nested
13076 - list
13077
13078#+BEGIN_SRC emacs-lisp :var x=example-list
13079 (print x)
13080#+END_SRC
13081
13082#+results:
13083| simple | list |
13084@end example
13085
13086@item code block without arguments
13087a code block name (from the example above), as assigned by @code{#+NAME:},
13088optionally followed by parentheses
11654 13089
11655@example 13090@example
11656#+begin_src emacs-lisp :var length=table-length() 13091#+BEGIN_SRC emacs-lisp :var length=table-length()
11657(* 2 length) 13092(* 2 length)
11658#+end_src 13093#+END_SRC
11659 13094
11660#+results: 13095#+results:
11661: 8 13096: 8
11662@end example 13097@end example
11663 13098
11664In addition, an argument can be passed to the code block referenced 13099@item code block with arguments
11665by @code{:var}. The argument is passed within the parentheses following the 13100a code block name, as assigned by @code{#+NAME:}, followed by parentheses and
11666code block name: 13101optional arguments passed within the parentheses following the
13102code block name using standard function call syntax
11667 13103
11668@example 13104@example
11669#+source: double 13105#+NAME: double
11670#+begin_src emacs-lisp :var input=8 13106#+BEGIN_SRC emacs-lisp :var input=8
11671(* 2 input) 13107(* 2 input)
11672#+end_src 13108#+END_SRC
11673 13109
11674#+results: double 13110#+results: double
11675: 16 13111: 16
11676 13112
11677#+source: squared 13113#+NAME: squared
11678#+begin_src emacs-lisp :var input=double(input=1) 13114#+BEGIN_SRC emacs-lisp :var input=double(input=1)
11679(* input input) 13115(* input input)
11680#+end_src 13116#+END_SRC
11681 13117
11682#+results: squared 13118#+results: squared
11683: 4 13119: 4
11684@end example 13120@end example
11685@end itemize 13121
13122@item literal example
13123a literal example block named with a @code{#+NAME:} line
13124
13125@example
13126#+NAME: literal-example
13127#+BEGIN_EXAMPLE
13128A literal example
13129on two lines
13130#+END_EXAMPLE
13131
13132#+NAME: read-literal-example
13133#+BEGIN_SRC emacs-lisp :var x=literal-example
13134 (concatenate 'string x " for you.")
13135#+END_SRC
13136
13137#+results: read-literal-example
13138: A literal example
13139: on two lines for you.
13140
13141@end example
13142
13143@end table
11686 13144
11687@subsubheading Alternate argument syntax 13145@subsubheading Alternate argument syntax
11688It is also possible to specify arguments in a potentially more natural way 13146It is also possible to specify arguments in a potentially more natural way
11689using the @code{#+source:} line of a code block. As in the following 13147using the @code{#+NAME:} line of a code block. As in the following
11690example arguments can be packed inside of parenthesis, separated by commas, 13148example, arguments can be packed inside of parentheses, separated by commas,
11691following the source name. 13149following the source name.
11692 13150
11693@example 13151@example
11694#+source: double(input=0, x=2) 13152#+NAME: double(input=0, x=2)
11695#+begin_src emacs-lisp 13153#+BEGIN_SRC emacs-lisp
11696(* 2 (+ input x)) 13154(* 2 (+ input x))
11697#+end_src 13155#+END_SRC
11698@end example 13156@end example
11699 13157
11700@subsubheading Indexable variable values 13158@subsubheading Indexable variable values
11701It is possible to reference portions of variable values by ``indexing'' into 13159It is possible to reference portions of variable values by ``indexing'' into
11702the variables. Indexes are 0 based with negative values counting back from 13160the variables. Indexes are 0 based with negative values counting back from
11703the end. If an index is separated by @code{,}s then each subsequent section 13161the end. If an index is separated by @code{,}s then each subsequent section
11704will index into the next deepest nesting or dimension of the value. The 13162will index into the next deepest nesting or dimension of the value. Note
13163that this indexing occurs @emph{before} other table related header arguments
13164like @code{:hlines}, @code{:colnames} and @code{:rownames} are applied. The
11705following example assigns the last cell of the first row the table 13165following example assigns the last cell of the first row the table
11706@code{example-table} to the variable @code{data}: 13166@code{example-table} to the variable @code{data}:
11707 13167
11708@example 13168@example
11709#+results: example-table 13169#+NAME: example-table
11710| 1 | a | 13170| 1 | a |
11711| 2 | b | 13171| 2 | b |
11712| 3 | c | 13172| 3 | c |
11713| 4 | d | 13173| 4 | d |
11714 13174
11715#+begin_src emacs-lisp :var data=example-table[0,-1] 13175#+BEGIN_SRC emacs-lisp :var data=example-table[0,-1]
11716 data 13176 data
11717#+end_src 13177#+END_SRC
11718 13178
11719#+results: 13179#+results:
11720: a 13180: a
@@ -11726,16 +13186,16 @@ example the following assigns the middle three rows of @code{example-table}
11726to @code{data}. 13186to @code{data}.
11727 13187
11728@example 13188@example
11729#+results: example-table 13189#+NAME: example-table
11730| 1 | a | 13190| 1 | a |
11731| 2 | b | 13191| 2 | b |
11732| 3 | c | 13192| 3 | c |
11733| 4 | d | 13193| 4 | d |
11734| 5 | 3 | 13194| 5 | 3 |
11735 13195
11736#+begin_src emacs-lisp :var data=example-table[1:3] 13196#+BEGIN_SRC emacs-lisp :var data=example-table[1:3]
11737 data 13197 data
11738#+end_src 13198#+END_SRC
11739 13199
11740#+results: 13200#+results:
11741| 2 | b | 13201| 2 | b |
@@ -11749,15 +13209,15 @@ interpreted to mean the entire range and as such are equivalent to
11749column is referenced. 13209column is referenced.
11750 13210
11751@example 13211@example
11752#+results: example-table 13212#+NAME: example-table
11753| 1 | a | 13213| 1 | a |
11754| 2 | b | 13214| 2 | b |
11755| 3 | c | 13215| 3 | c |
11756| 4 | d | 13216| 4 | d |
11757 13217
11758#+begin_src emacs-lisp :var data=example-table[,0] 13218#+BEGIN_SRC emacs-lisp :var data=example-table[,0]
11759 data 13219 data
11760#+end_src 13220#+END_SRC
11761 13221
11762#+results: 13222#+results:
11763| 1 | 2 | 3 | 4 | 13223| 1 | 2 | 3 | 4 |
@@ -11768,21 +13228,54 @@ Any number of dimensions can be indexed. Dimensions are separated from one
11768another by commas, as shown in the following example. 13228another by commas, as shown in the following example.
11769 13229
11770@example 13230@example
11771#+source: 3D 13231#+NAME: 3D
11772#+begin_src emacs-lisp 13232#+BEGIN_SRC emacs-lisp
11773 '(((1 2 3) (4 5 6) (7 8 9)) 13233 '(((1 2 3) (4 5 6) (7 8 9))
11774 ((10 11 12) (13 14 15) (16 17 18)) 13234 ((10 11 12) (13 14 15) (16 17 18))
11775 ((19 20 21) (22 23 24) (25 26 27))) 13235 ((19 20 21) (22 23 24) (25 26 27)))
11776#+end_src 13236#+END_SRC
11777 13237
11778#+begin_src emacs-lisp :var data=3D[1,,1] 13238#+BEGIN_SRC emacs-lisp :var data=3D[1,,1]
11779 data 13239 data
11780#+end_src 13240#+END_SRC
11781 13241
11782#+results: 13242#+results:
11783| 11 | 14 | 17 | 13243| 11 | 14 | 17 |
11784@end example 13244@end example
11785 13245
13246@subsubheading Emacs Lisp evaluation of variables
13247
13248Emacs lisp code can be used to initialize variable values. When a variable
13249value starts with @code{(}, @code{[}, @code{'} or @code{`} it will be
13250evaluated as Emacs Lisp and the result of the evaluation will be assigned as
13251the variable value. The following example demonstrates use of this
13252evaluation to reliably pass the file-name of the Org mode buffer to a code
13253block---note that evaluation of header arguments is guaranteed to take place
13254in the original Org mode file, while there is no such guarantee for
13255evaluation of the code block body.
13256
13257@example
13258#+BEGIN_SRC sh :var filename=(buffer-file-name) :exports both
13259 wc -w $filename
13260#+END_SRC
13261@end example
13262
13263Note that values read from tables and lists will not be evaluated as
13264Emacs Lisp, as shown in the following example.
13265
13266@example
13267#+NAME: table
13268| (a b c) |
13269
13270#+HEADERS: :var data=table[0,0]
13271#+BEGIN_SRC perl
13272 $data
13273#+END_SRC
13274
13275#+results:
13276: (a b c)
13277@end example
13278
11786@node results, file, var, Specific header arguments 13279@node results, file, var, Specific header arguments
11787@subsubsection @code{:results} 13280@subsubsection @code{:results}
11788 13281
@@ -11796,7 +13289,7 @@ from the code block
11796@item 13289@item
11797@b{type} header arguments specify what type of result the code block will 13290@b{type} header arguments specify what type of result the code block will
11798return---which has implications for how they will be inserted into the 13291return---which has implications for how they will be inserted into the
11799Org-mode buffer 13292Org mode buffer
11800@item 13293@item
11801@b{handling} header arguments specify how the results of evaluating the code 13294@b{handling} header arguments specify how the results of evaluating the code
11802block should be handled. 13295block should be handled.
@@ -11812,7 +13305,7 @@ This is the default. The result is the value of the last statement in the
11812code block. This header argument places the evaluation in functional 13305code block. This header argument places the evaluation in functional
11813mode. Note that in some languages, e.g., Python, use of this result type 13306mode. Note that in some languages, e.g., Python, use of this result type
11814requires that a @code{return} statement be included in the body of the source 13307requires that a @code{return} statement be included in the body of the source
11815code block. E.g., @code{:results value}. 13308code block. E.g., @code{:results value}.
11816@item @code{output} 13309@item @code{output}
11817The result is the collection of everything printed to STDOUT during the 13310The result is the collection of everything printed to STDOUT during the
11818execution of the code block. This header argument places the 13311execution of the code block. This header argument places the
@@ -11827,36 +13320,40 @@ table or scalar depending on their value.
11827 13320
11828@itemize @bullet 13321@itemize @bullet
11829@item @code{table}, @code{vector} 13322@item @code{table}, @code{vector}
11830The results should be interpreted as an Org-mode table. If a single value is 13323The results should be interpreted as an Org mode table. If a single value is
11831returned, it will be converted into a table with one row and one column. 13324returned, it will be converted into a table with one row and one column.
11832E.g., @code{:results value table}. 13325E.g., @code{:results value table}.
11833@item @code{list} 13326@item @code{list}
11834The results should be interpreted as an Org-mode list. If a single scalar 13327The results should be interpreted as an Org mode list. If a single scalar
11835value is returned it will be converted into a list with only one element. 13328value is returned it will be converted into a list with only one element.
11836@item @code{scalar}, @code{verbatim} 13329@item @code{scalar}, @code{verbatim}
11837The results should be interpreted literally---they will not be 13330The results should be interpreted literally---they will not be
11838converted into a table. The results will be inserted into the Org-mode 13331converted into a table. The results will be inserted into the Org mode
11839buffer as quoted text. E.g., @code{:results value verbatim}. 13332buffer as quoted text. E.g., @code{:results value verbatim}.
11840@item @code{file} 13333@item @code{file}
11841The results will be interpreted as the path to a file, and will be inserted 13334The results will be interpreted as the path to a file, and will be inserted
11842into the Org-mode buffer as a file link. E.g., @code{:results value file}. 13335into the Org mode buffer as a file link. E.g., @code{:results value file}.
11843@item @code{raw}, @code{org} 13336@item @code{raw}, @code{org}
11844The results are interpreted as raw Org-mode code and are inserted directly 13337The results are interpreted as raw Org mode code and are inserted directly
11845into the buffer. If the results look like a table they will be aligned as 13338into the buffer. If the results look like a table they will be aligned as
11846such by Org-mode. E.g., @code{:results value raw}. 13339such by Org mode. E.g., @code{:results value raw}.
11847@item @code{html} 13340@item @code{html}
11848Results are assumed to be HTML and will be enclosed in a @code{begin_html} 13341Results are assumed to be HTML and will be enclosed in a @code{begin_html}
11849block. E.g., @code{:results value html}. 13342block. E.g., @code{:results value html}.
11850@item @code{latex} 13343@item @code{latex}
11851Results assumed to be LaTeX and are enclosed in a @code{begin_latex} block. 13344Results assumed to be @LaTeX{} and are enclosed in a @code{begin_latex} block.
11852E.g., @code{:results value latex}. 13345E.g., @code{:results value latex}.
11853@item @code{code} 13346@item @code{code}
11854Result are assumed to be parseable code and are enclosed in a code block. 13347Result are assumed to be parsable code and are enclosed in a code block.
11855E.g., @code{:results value code}. 13348E.g., @code{:results value code}.
11856@item @code{pp} 13349@item @code{pp}
11857The result is converted to pretty-printed code and is enclosed in a code 13350The result is converted to pretty-printed code and is enclosed in a code
11858block. This option currently supports Emacs Lisp, Python, and Ruby. E.g., 13351block. This option currently supports Emacs Lisp, Python, and Ruby. E.g.,
11859@code{:results value pp}. 13352@code{:results value pp}.
13353@item @code{wrap}
13354The result is wrapped in a @code{begin_result} block. This can be useful for
13355inserting @code{raw} or @code{org} syntax results in such a way that their
13356extend is known and they can be automatically removed or replaced.
11860@end itemize 13357@end itemize
11861 13358
11862@subsubheading Handling 13359@subsubheading Handling
@@ -11866,10 +13363,10 @@ results once they are collected.
11866@itemize @bullet 13363@itemize @bullet
11867@item @code{silent} 13364@item @code{silent}
11868The results will be echoed in the minibuffer but will not be inserted into 13365The results will be echoed in the minibuffer but will not be inserted into
11869the Org-mode buffer. E.g., @code{:results output silent}. 13366the Org mode buffer. E.g., @code{:results output silent}.
11870@item @code{replace} 13367@item @code{replace}
11871The default value. Any existing results will be removed, and the new results 13368The default value. Any existing results will be removed, and the new results
11872will be inserted into the Org-mode buffer in their place. E.g., 13369will be inserted into the Org mode buffer in their place. E.g.,
11873@code{:results output replace}. 13370@code{:results output replace}.
11874@item @code{append} 13371@item @code{append}
11875If there are pre-existing results of the code block then the new results will 13372If there are pre-existing results of the code block then the new results will
@@ -11884,56 +13381,56 @@ inserted as with @code{replace}.
11884@node file, dir, results, Specific header arguments 13381@node file, dir, results, Specific header arguments
11885@subsubsection @code{:file} 13382@subsubsection @code{:file}
11886 13383
11887The header argument @code{:file} is used to specify a path for file output. 13384The header argument @code{:file} is used to specify an external file in which
11888An Org-mode style @code{file:} link is inserted into the buffer as the result 13385to save code block results. After code block evaluation an Org mode style
11889(see @ref{Link format}). Common examples are graphical output from R, 13386@code{[[file:]]} link (see @ref{Link format}) to the file will be inserted
11890gnuplot, ditaa and LaTeX code blocks. 13387into the Org mode buffer. Some languages including R, gnuplot, dot, and
11891 13388ditaa provide special handling of the @code{:file} header argument
11892Note that for some languages, including R, gnuplot, LaTeX and ditaa, 13389automatically wrapping the code block body in the boilerplate code required
11893graphical output is sent to the specified file without the file being 13390to save output to the specified file. This is often useful for saving
11894referenced explicitly in the code block. See the documentation for the 13391graphical output of a code block to the specified file.
11895individual languages for details. In contrast, general purpose languages such
11896as Python and Ruby require that the code explicitly create output
11897corresponding to the path indicated by @code{:file}.
11898 13392
13393The argument to @code{:file} should be either a string specifying the path to
13394a file, or a list of two strings in which case the first element of the list
13395should be the path to a file and the second a description for the link.
11899 13396
11900@node dir, exports, file, Specific header arguments 13397@node dir, exports, file, Specific header arguments
11901@subsubsection @code{:dir} and remote execution 13398@subsubsection @code{:dir} and remote execution
11902 13399
11903While the @code{:file} header argument can be used to specify the path to the 13400While the @code{:file} header argument can be used to specify the path to the
11904output file, @code{:dir} specifies the default directory during code block 13401output file, @code{:dir} specifies the default directory during code block
11905execution. If it is absent, then the directory associated with the current 13402execution. If it is absent, then the directory associated with the current
11906buffer is used. In other words, supplying @code{:dir path} temporarily has 13403buffer is used. In other words, supplying @code{:dir path} temporarily has
11907the same effect as changing the current directory with @kbd{M-x cd path}, and 13404the same effect as changing the current directory with @kbd{M-x cd path}, and
11908then not supplying @code{:dir}. Under the surface, @code{:dir} simply sets 13405then not supplying @code{:dir}. Under the surface, @code{:dir} simply sets
11909the value of the Emacs variable @code{default-directory}. 13406the value of the Emacs variable @code{default-directory}.
11910 13407
11911When using @code{:dir}, you should supply a relative path for file output 13408When using @code{:dir}, you should supply a relative path for file output
11912(e.g. @code{:file myfile.jpg} or @code{:file results/myfile.jpg}) in which 13409(e.g.@: @code{:file myfile.jpg} or @code{:file results/myfile.jpg}) in which
11913case that path will be interpreted relative to the default directory. 13410case that path will be interpreted relative to the default directory.
11914 13411
11915In other words, if you want your plot to go into a folder called @file{Work} 13412In other words, if you want your plot to go into a folder called @file{Work}
11916in your home directory, you could use 13413in your home directory, you could use
11917 13414
11918@example 13415@example
11919#+begin_src R :file myplot.png :dir ~/Work 13416#+BEGIN_SRC R :file myplot.png :dir ~/Work
11920matplot(matrix(rnorm(100), 10), type="l") 13417matplot(matrix(rnorm(100), 10), type="l")
11921#+end_src 13418#+END_SRC
11922@end example 13419@end example
11923 13420
11924@subsubheading Remote execution 13421@subsubheading Remote execution
11925A directory on a remote machine can be specified using tramp file syntax, in 13422A directory on a remote machine can be specified using tramp file syntax, in
11926which case the code will be evaluated on the remote machine. An example is 13423which case the code will be evaluated on the remote machine. An example is
11927 13424
11928@example 13425@example
11929#+begin_src R :file plot.png :dir /dand@@yakuba.princeton.edu: 13426#+BEGIN_SRC R :file plot.png :dir /dand@@yakuba.princeton.edu:
11930plot(1:10, main=system("hostname", intern=TRUE)) 13427plot(1:10, main=system("hostname", intern=TRUE))
11931#+end_src 13428#+END_SRC
11932@end example 13429@end example
11933 13430
11934Text results will be returned to the local Org-mode buffer as usual, and file 13431Text results will be returned to the local Org mode buffer as usual, and file
11935output will be created on the remote machine with relative paths interpreted 13432output will be created on the remote machine with relative paths interpreted
11936relative to the remote directory. An Org-mode link to the remote file will be 13433relative to the remote directory. An Org mode link to the remote file will be
11937created. 13434created.
11938 13435
11939So, in the above example a plot will be created on the remote machine, 13436So, in the above example a plot will be created on the remote machine,
@@ -11945,7 +13442,7 @@ and a link of the following form will be inserted in the org buffer:
11945 13442
11946Most of this functionality follows immediately from the fact that @code{:dir} 13443Most of this functionality follows immediately from the fact that @code{:dir}
11947sets the value of the Emacs variable @code{default-directory}, thanks to 13444sets the value of the Emacs variable @code{default-directory}, thanks to
11948tramp. Those using XEmacs, or GNU Emacs prior to version 23 may need to 13445tramp. Those using XEmacs, or GNU Emacs prior to version 23 may need to
11949install tramp separately in order for these features to work correctly. 13446install tramp separately in order for these features to work correctly.
11950 13447
11951@subsubheading Further points 13448@subsubheading Further points
@@ -11957,10 +13454,10 @@ determine the starting directory for a new session as expected, no attempt is
11957currently made to alter the directory associated with an existing session. 13454currently made to alter the directory associated with an existing session.
11958@item 13455@item
11959@code{:dir} should typically not be used to create files during export with 13456@code{:dir} should typically not be used to create files during export with
11960@code{:exports results} or @code{:exports both}. The reason is that, in order 13457@code{:exports results} or @code{:exports both}. The reason is that, in order
11961to retain portability of exported material between machines, during export 13458to retain portability of exported material between machines, during export
11962links inserted into the buffer will *not* be expanded against @code{default 13459links inserted into the buffer will @emph{not} be expanded against @code{default
11963directory}. Therefore, if @code{default-directory} is altered using 13460directory}. Therefore, if @code{default-directory} is altered using
11964@code{:dir}, it is probable that the file will be created in a location to 13461@code{:dir}, it is probable that the file will be created in a location to
11965which the link does not point. 13462which the link does not point.
11966@end itemize 13463@end itemize
@@ -11969,23 +13466,23 @@ which the link does not point.
11969@subsubsection @code{:exports} 13466@subsubsection @code{:exports}
11970 13467
11971The @code{:exports} header argument specifies what should be included in HTML 13468The @code{:exports} header argument specifies what should be included in HTML
11972or LaTeX exports of the Org-mode file. 13469or @LaTeX{} exports of the Org mode file.
11973 13470
11974@itemize @bullet 13471@itemize @bullet
11975@item @code{code} 13472@item @code{code}
11976The default. The body of code is included into the exported file. E.g., 13473The default. The body of code is included into the exported file. E.g.,
11977@code{:exports code}. 13474@code{:exports code}.
11978@item @code{results} 13475@item @code{results}
11979The result of evaluating the code is included in the exported file. E.g., 13476The result of evaluating the code is included in the exported file. E.g.,
11980@code{:exports results}. 13477@code{:exports results}.
11981@item @code{both} 13478@item @code{both}
11982Both the code and results are included in the exported file. E.g., 13479Both the code and results are included in the exported file. E.g.,
11983@code{:exports both}. 13480@code{:exports both}.
11984@item @code{none} 13481@item @code{none}
11985Nothing is included in the exported file. E.g., @code{:exports none}. 13482Nothing is included in the exported file. E.g., @code{:exports none}.
11986@end itemize 13483@end itemize
11987 13484
11988@node tangle, comments, exports, Specific header arguments 13485@node tangle, mkdirp, exports, Specific header arguments
11989@subsubsection @code{:tangle} 13486@subsubsection @code{:tangle}
11990 13487
11991The @code{:tangle} header argument specifies whether or not the code 13488The @code{:tangle} header argument specifies whether or not the code
@@ -11993,19 +13490,26 @@ block should be included in tangled extraction of source code files.
11993 13490
11994@itemize @bullet 13491@itemize @bullet
11995@item @code{tangle} 13492@item @code{tangle}
11996The code block is exported to a source code file named after the 13493The code block is exported to a source code file named after the full path
11997basename (name w/o extension) of the Org-mode file. E.g., @code{:tangle 13494(including the directory) and file name (w/o extension) of the Org mode file.
11998yes}. 13495E.g., @code{:tangle yes}.
11999@item @code{no} 13496@item @code{no}
12000The default. The code block is not exported to a source code file. 13497The default. The code block is not exported to a source code file.
12001E.g., @code{:tangle no}. 13498E.g., @code{:tangle no}.
12002@item other 13499@item other
12003Any other string passed to the @code{:tangle} header argument is interpreted 13500Any other string passed to the @code{:tangle} header argument is interpreted
12004as a file basename to which the block will be exported. E.g., @code{:tangle 13501as a path (directory and file name relative to the directory of the Org mode
12005basename}. 13502file) to which the block will be exported. E.g., @code{:tangle path}.
12006@end itemize 13503@end itemize
12007 13504
12008@node comments, no-expand, tangle, Specific header arguments 13505@node mkdirp, comments, tangle, Specific header arguments
13506@subsubsection @code{:mkdirp}
13507
13508The @code{:mkdirp} header argument can be used to create parent directories
13509of tangled files when missing. This can be set to @code{yes} to enable
13510directory creation or to @code{no} to inhibit directory creation.
13511
13512@node comments, padline, mkdirp, Specific header arguments
12009@subsubsection @code{:comments} 13513@subsubsection @code{:comments}
12010By default code blocks are tangled to source-code files without any insertion 13514By default code blocks are tangled to source-code files without any insertion
12011of comments beyond those which may already exist in the body of the code 13515of comments beyond those which may already exist in the body of the code
@@ -12021,15 +13525,32 @@ original Org file from which the code was tangled.
12021@item @code{yes} 13525@item @code{yes}
12022A synonym for ``link'' to maintain backwards compatibility. 13526A synonym for ``link'' to maintain backwards compatibility.
12023@item @code{org} 13527@item @code{org}
12024Include text from the org-mode file as a comment. 13528Include text from the Org mode file as a comment.
12025 13529
12026The text is picked from the leading context of the tangled code and is 13530The text is picked from the leading context of the tangled code and is
12027limited by the nearest headline or source block as the case may be. 13531limited by the nearest headline or source block as the case may be.
12028@item @code{both} 13532@item @code{both}
12029Turns on both the ``link'' and ``org'' comment options. 13533Turns on both the ``link'' and ``org'' comment options.
13534@item @code{noweb}
13535Turns on the ``link'' comment option, and additionally wraps expanded noweb
13536references in the code block body in link comments.
12030@end itemize 13537@end itemize
12031 13538
12032@node no-expand, session, comments, Specific header arguments 13539@node padline, no-expand, comments, Specific header arguments
13540@subsubsection @code{:padline}
13541Control in insertion of padding lines around code block bodies in tangled
13542code files. The default value is @code{yes} which results in insertion of
13543newlines before and after each tangled code block. The following arguments
13544are accepted.
13545
13546@itemize @bullet
13547@item @code{yes}
13548Insert newlines before and after each code block body in tangled code files.
13549@item @code{no}
13550Do not insert any newline padding in tangled output.
13551@end itemize
13552
13553@node no-expand, session, padline, Specific header arguments
12033@subsubsection @code{:no-expand} 13554@subsubsection @code{:no-expand}
12034 13555
12035By default, code blocks are expanded with @code{org-babel-expand-src-block} 13556By default, code blocks are expanded with @code{org-babel-expand-src-block}
@@ -12050,12 +13571,12 @@ A string passed to the @code{:session} header argument will give the session
12050a name. This makes it possible to run concurrent sessions for each 13571a name. This makes it possible to run concurrent sessions for each
12051interpreted language. 13572interpreted language.
12052 13573
12053@node noweb, cache, session, Specific header arguments 13574@node noweb, noweb-ref, session, Specific header arguments
12054@subsubsection @code{:noweb} 13575@subsubsection @code{:noweb}
12055 13576
12056The @code{:noweb} header argument controls expansion of ``noweb'' style (see 13577The @code{:noweb} header argument controls expansion of ``noweb'' style (see
12057@ref{Noweb reference syntax}) references in a code block. This header 13578@ref{Noweb reference syntax}) references in a code block. This header
12058argument can have one of three values: @code{yes} @code{no} or @code{tangle}. 13579argument can have one of three values: @code{yes}, @code{no}, or @code{tangle}.
12059 13580
12060@itemize @bullet 13581@itemize @bullet
12061@item @code{yes} 13582@item @code{yes}
@@ -12096,7 +13617,51 @@ Note that noweb replacement text that does not contain any newlines will not
12096be affected by this change, so it is still possible to use inline noweb 13617be affected by this change, so it is still possible to use inline noweb
12097references. 13618references.
12098 13619
12099@node cache, hlines, noweb, Specific header arguments 13620@node noweb-ref, cache, noweb, Specific header arguments
13621@subsubsection @code{:noweb-ref}
13622When expanding ``noweb'' style references the bodies of all code block with
13623@emph{either} a block name matching the reference name @emph{or} a
13624@code{:noweb-ref} header argument matching the reference name will be
13625concatenated together to form the replacement text.
13626
13627By setting this header argument at the sub-tree or file level, simple code
13628block concatenation may be achieved. For example, when tangling the
13629following Org mode file, the bodies of code blocks will be concatenated into
13630the resulting pure code file@footnote{(The example needs property inheritance
13631to be turned on for the @code{noweb-ref} property, see @ref{Property
13632inheritance}).}.
13633
13634@example
13635 #+BEGIN_SRC sh :tangle yes :noweb yes :shebang #!/bin/sh
13636 <<fullest-disk>>
13637 #+END_SRC
13638 * the mount point of the fullest disk
13639 :PROPERTIES:
13640 :noweb-ref: fullest-disk
13641 :END:
13642
13643 ** query all mounted disks
13644 #+BEGIN_SRC sh
13645 df \
13646 #+END_SRC
13647
13648 ** strip the header row
13649 #+BEGIN_SRC sh
13650 |sed '1d' \
13651 #+END_SRC
13652
13653 ** sort by the percent full
13654 #+BEGIN_SRC sh
13655 |awk '@{print $5 " " $6@}'|sort -n |tail -1 \
13656 #+END_SRC
13657
13658 ** extract the mount point
13659 #+BEGIN_SRC sh
13660 |awk '@{print $2@}'
13661 #+END_SRC
13662@end example
13663
13664@node cache, sep, noweb-ref, Specific header arguments
12100@subsubsection @code{:cache} 13665@subsubsection @code{:cache}
12101 13666
12102The @code{:cache} header argument controls the use of in-buffer caching of 13667The @code{:cache} header argument controls the use of in-buffer caching of
@@ -12116,7 +13681,44 @@ executions of the code block. If the code block has not
12116changed since the last time it was evaluated, it will not be re-evaluated. 13681changed since the last time it was evaluated, it will not be re-evaluated.
12117@end itemize 13682@end itemize
12118 13683
12119@node hlines, colnames, cache, Specific header arguments 13684Code block caches notice if the value of a variable argument
13685to the code block has changed. If this is the case, the cache is
13686invalidated and the code block is re-run. In the following example,
13687@code{caller} will not be re-run unless the results of @code{random} have
13688changed since it was last run.
13689
13690@example
13691 #+NAME: random
13692 #+BEGIN_SRC R :cache yes
13693 runif(1)
13694 #+END_SRC
13695
13696 #+results[a2a72cd647ad44515fab62e144796432793d68e1]: random
13697 0.4659510825295
13698
13699 #+NAME: caller
13700 #+BEGIN_SRC emacs-lisp :var x=random :cache yes
13701 x
13702 #+END_SRC
13703
13704 #+results[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller
13705 0.254227238707244
13706@end example
13707
13708@node sep, hlines, cache, Specific header arguments
13709@subsubsection @code{:sep}
13710
13711The @code{:sep} header argument can be used to control the delimiter used
13712when writing tabular results out to files external to Org mode. This is used
13713either when opening tabular results of a code block by calling the
13714@code{org-open-at-point} function bound to @kbd{C-c C-o} on the code block,
13715or when writing code block results to an external file (see @ref{file})
13716header argument.
13717
13718By default, when @code{:sep} is not specified output tables are tab
13719delimited.
13720
13721@node hlines, colnames, sep, Specific header arguments
12120@subsubsection @code{:hlines} 13722@subsubsection @code{:hlines}
12121 13723
12122Tables are frequently represented with one or more horizontal lines, or 13724Tables are frequently represented with one or more horizontal lines, or
@@ -12131,17 +13733,17 @@ variable and raises an error. Setting @code{:hlines no} or relying on the
12131default value yields the following results. 13733default value yields the following results.
12132 13734
12133@example 13735@example
12134#+tblname: many-cols 13736#+TBLNAME: many-cols
12135| a | b | c | 13737| a | b | c |
12136|---+---+---| 13738|---+---+---|
12137| d | e | f | 13739| d | e | f |
12138|---+---+---| 13740|---+---+---|
12139| g | h | i | 13741| g | h | i |
12140 13742
12141#+source: echo-table 13743#+NAME: echo-table
12142#+begin_src python :var tab=many-cols 13744#+BEGIN_SRC python :var tab=many-cols
12143 return tab 13745 return tab
12144#+end_src 13746#+END_SRC
12145 13747
12146#+results: echo-table 13748#+results: echo-table
12147| a | b | c | 13749| a | b | c |
@@ -12150,20 +13752,20 @@ default value yields the following results.
12150@end example 13752@end example
12151 13753
12152@item @code{yes} 13754@item @code{yes}
12153Leaves hlines in the table. Setting @code{:hlines yes} has this effect. 13755Leaves hlines in the table. Setting @code{:hlines yes} has this effect.
12154 13756
12155@example 13757@example
12156#+tblname: many-cols 13758#+TBLNAME: many-cols
12157| a | b | c | 13759| a | b | c |
12158|---+---+---| 13760|---+---+---|
12159| d | e | f | 13761| d | e | f |
12160|---+---+---| 13762|---+---+---|
12161| g | h | i | 13763| g | h | i |
12162 13764
12163#+source: echo-table 13765#+NAME: echo-table
12164#+begin_src python :var tab=many-cols :hlines yes 13766#+BEGIN_SRC python :var tab=many-cols :hlines yes
12165 return tab 13767 return tab
12166#+end_src 13768#+END_SRC
12167 13769
12168#+results: echo-table 13770#+results: echo-table
12169| a | b | c | 13771| a | b | c |
@@ -12179,6 +13781,10 @@ Leaves hlines in the table. Setting @code{:hlines yes} has this effect.
12179 13781
12180The @code{:colnames} header argument accepts the values @code{yes}, 13782The @code{:colnames} header argument accepts the values @code{yes},
12181@code{no}, or @code{nil} for unassigned. The default value is @code{nil}. 13783@code{no}, or @code{nil} for unassigned. The default value is @code{nil}.
13784Note that the behavior of the @code{:colnames} header argument may differ
13785across languages. For example Emacs Lisp code blocks ignore the
13786@code{:colnames} header argument entirely given the ease with which tables
13787with column names may be handled directly in Emacs Lisp.
12182 13788
12183@itemize @bullet 13789@itemize @bullet
12184@item @code{nil} 13790@item @code{nil}
@@ -12188,16 +13794,16 @@ names will be removed from the table before
12188processing, then reapplied to the results. 13794processing, then reapplied to the results.
12189 13795
12190@example 13796@example
12191#+tblname: less-cols 13797#+TBLNAME: less-cols
12192| a | 13798| a |
12193|---| 13799|---|
12194| b | 13800| b |
12195| c | 13801| c |
12196 13802
12197#+srcname: echo-table-again 13803#+NAME: echo-table-again
12198#+begin_src python :var tab=less-cols 13804#+BEGIN_SRC python :var tab=less-cols
12199 return [[val + '*' for val in row] for row in tab] 13805 return [[val + '*' for val in row] for row in tab]
12200#+end_src 13806#+END_SRC
12201 13807
12202#+results: echo-table-again 13808#+results: echo-table-again
12203| a | 13809| a |
@@ -12206,12 +13812,15 @@ processing, then reapplied to the results.
12206| c* | 13812| c* |
12207@end example 13813@end example
12208 13814
13815Please note that column names are not removed before the table is indexed
13816using variable indexing @xref{var, Indexable variable values}.
13817
12209@item @code{no} 13818@item @code{no}
12210No column name pre-processing takes place 13819No column name pre-processing takes place
12211 13820
12212@item @code{yes} 13821@item @code{yes}
12213Column names are removed and reapplied as with @code{nil} even if the table 13822Column names are removed and reapplied as with @code{nil} even if the table
12214does not ``look like'' it has column names (i.e. the second row is not an 13823does not ``look like'' it has column names (i.e.@: the second row is not an
12215hline) 13824hline)
12216@end itemize 13825@end itemize
12217 13826
@@ -12230,38 +13839,57 @@ The first column of the table is removed from the table before processing,
12230and is then reapplied to the results. 13839and is then reapplied to the results.
12231 13840
12232@example 13841@example
12233#+tblname: with-rownames 13842#+TBLNAME: with-rownames
12234| one | 1 | 2 | 3 | 4 | 5 | 13843| one | 1 | 2 | 3 | 4 | 5 |
12235| two | 6 | 7 | 8 | 9 | 10 | 13844| two | 6 | 7 | 8 | 9 | 10 |
12236 13845
12237#+srcname: echo-table-once-again 13846#+NAME: echo-table-once-again
12238#+begin_src python :var tab=with-rownames :rownames yes 13847#+BEGIN_SRC python :var tab=with-rownames :rownames yes
12239 return [[val + 10 for val in row] for row in tab] 13848 return [[val + 10 for val in row] for row in tab]
12240#+end_src 13849#+END_SRC
12241 13850
12242#+results: echo-table-once-again 13851#+results: echo-table-once-again
12243| one | 11 | 12 | 13 | 14 | 15 | 13852| one | 11 | 12 | 13 | 14 | 15 |
12244| two | 16 | 17 | 18 | 19 | 20 | 13853| two | 16 | 17 | 18 | 19 | 20 |
12245@end example 13854@end example
13855
13856Please note that row names are not removed before the table is indexed using
13857variable indexing @xref{var, Indexable variable values}.
13858
12246@end itemize 13859@end itemize
12247 13860
12248@node shebang, eval, rownames, Specific header arguments 13861@node shebang, eval, rownames, Specific header arguments
12249@subsubsection @code{:shebang} 13862@subsubsection @code{:shebang}
12250 13863
12251Setting the @code{:shebang} header argument to a string value 13864Setting the @code{:shebang} header argument to a string value
12252(e.g. @code{:shebang "#!/bin/bash"}) causes the string to be inserted as the 13865(e.g.@: @code{:shebang "#!/bin/bash"}) causes the string to be inserted as the
12253first line of any tangled file holding the code block, and the file 13866first line of any tangled file holding the code block, and the file
12254permissions of the tangled file are set to make it executable. 13867permissions of the tangled file are set to make it executable.
12255 13868
12256@node eval, , shebang, Specific header arguments 13869@node eval, , shebang, Specific header arguments
12257@subsubsection @code{:eval} 13870@subsubsection @code{:eval}
12258The @code{:eval} header argument can be used to limit the evaluation of 13871The @code{:eval} header argument can be used to limit the evaluation of
12259specific code blocks. @code{:eval} accepts two arguments ``never'' and 13872specific code blocks. The @code{:eval} header argument can be useful for
12260``query''. @code{:eval never} will ensure that a code block is never 13873protecting against the evaluation of dangerous code blocks or to ensure that
12261evaluated, this can be useful for protecting against the evaluation of 13874evaluation will require a query regardless of the value of the
12262dangerous code blocks. @code{:eval query} will require a query for every 13875@code{org-confirm-babel-evaluate} variable. The possible values of
12263execution of a code block regardless of the value of the 13876@code{:eval} and their effects are shown below.
12264@code{org-confirm-babel-evaluate} variable. 13877
13878@table @code
13879@item never or no
13880The code block will not be evaluated under any circumstances.
13881@item query
13882Evaluation of the code block will require a query.
13883@item never-export or no-export
13884The code block will not be evaluated during export but may still be called
13885interactively.
13886@item query-export
13887Evaluation of the code block during export will require a query.
13888@end table
13889
13890If this header argument is not set then evaluation is determined by the value
13891of the @code{org-confirm-babel-evaluate} variable see @ref{Code evaluation
13892security}.
12265 13893
12266@node Results of evaluation, Noweb reference syntax, Header arguments, Working With Source Code 13894@node Results of evaluation, Noweb reference syntax, Header arguments, Working With Source Code
12267@section Results of evaluation 13895@section Results of evaluation
@@ -12270,7 +13898,8 @@ execution of a code block regardless of the value of the
12270 13898
12271The way in which results are handled depends on whether a session is invoked, 13899The way in which results are handled depends on whether a session is invoked,
12272as well as on whether @code{:results value} or @code{:results output} is 13900as well as on whether @code{:results value} or @code{:results output} is
12273used. The following table shows the possibilities: 13901used. The following table shows the table possibilities. For a full listing
13902of the possible results header arguments see @ref{results}.
12274 13903
12275@multitable @columnfractions 0.26 0.33 0.41 13904@multitable @columnfractions 0.26 0.33 0.41
12276@item @tab @b{Non-session} @tab @b{Session} 13905@item @tab @b{Non-session} @tab @b{Session}
@@ -12279,15 +13908,15 @@ used. The following table shows the possibilities:
12279@end multitable 13908@end multitable
12280 13909
12281Note: With @code{:results value}, the result in both @code{:session} and 13910Note: With @code{:results value}, the result in both @code{:session} and
12282non-session is returned to Org-mode as a table (a one- or two-dimensional 13911non-session is returned to Org mode as a table (a one- or two-dimensional
12283vector of strings or numbers) when appropriate. 13912vector of strings or numbers) when appropriate.
12284 13913
12285@subsection Non-session 13914@subsection Non-session
12286@subsubsection @code{:results value} 13915@subsubsection @code{:results value}
12287This is the default. Internally, the value is obtained by wrapping the code 13916This is the default. Internally, the value is obtained by wrapping the code
12288in a function definition in the external language, and evaluating that 13917in a function definition in the external language, and evaluating that
12289function. Therefore, code should be written as if it were the body of such a 13918function. Therefore, code should be written as if it were the body of such a
12290function. In particular, note that Python does not automatically return a 13919function. In particular, note that Python does not automatically return a
12291value from a function unless a @code{return} statement is present, and so a 13920value from a function unless a @code{return} statement is present, and so a
12292@samp{return} statement will usually be required in Python. 13921@samp{return} statement will usually be required in Python.
12293 13922
@@ -12296,54 +13925,62 @@ automatically wrapped in a function definition.
12296 13925
12297@subsubsection @code{:results output} 13926@subsubsection @code{:results output}
12298The code is passed to the interpreter as an external process, and the 13927The code is passed to the interpreter as an external process, and the
12299contents of the standard output stream are returned as text. (In certain 13928contents of the standard output stream are returned as text. (In certain
12300languages this also contains the error output stream; this is an area for 13929languages this also contains the error output stream; this is an area for
12301future work.) 13930future work.)
12302 13931
12303@subsection Session 13932@subsection Session
12304@subsubsection @code{:results value} 13933@subsubsection @code{:results value}
12305The code is passed to the interpreter running as an interactive Emacs 13934The code is passed to an interpreter running as an interactive Emacs inferior
12306inferior process. The result returned is the result of the last evaluation 13935process. Only languages which provide tools for interactive evaluation of
12307performed by the interpreter. (This is obtained in a language-specific 13936code have session support, so some language (e.g., C and ditaa) do not
12308manner: the value of the variable @code{_} in Python and Ruby, and the value 13937support the @code{:session} header argument, and in other languages (e.g.,
12309of @code{.Last.value} in R). 13938Python and Haskell) which have limitations on the code which may be entered
13939into interactive sessions, those limitations apply to the code in code blocks
13940using the @code{:session} header argument as well.
13941
13942Unless the @code{:results output} option is supplied (see below) the result
13943returned is the result of the last evaluation performed by the
13944interpreter. (This is obtained in a language-specific manner: the value of
13945the variable @code{_} in Python and Ruby, and the value of @code{.Last.value}
13946in R).
12310 13947
12311@subsubsection @code{:results output} 13948@subsubsection @code{:results output}
12312The code is passed to the interpreter running as an interactive Emacs 13949The code is passed to the interpreter running as an interactive Emacs
12313inferior process. The result returned is the concatenation of the sequence of 13950inferior process. The result returned is the concatenation of the sequence of
12314(text) output from the interactive interpreter. Notice that this is not 13951(text) output from the interactive interpreter. Notice that this is not
12315necessarily the same as what would be sent to @code{STDOUT} if the same code 13952necessarily the same as what would be sent to @code{STDOUT} if the same code
12316were passed to a non-interactive interpreter running as an external 13953were passed to a non-interactive interpreter running as an external
12317process. For example, compare the following two blocks: 13954process. For example, compare the following two blocks:
12318 13955
12319@example 13956@example
12320#+begin_src python :results output 13957#+BEGIN_SRC python :results output
12321 print "hello" 13958 print "hello"
12322 2 13959 2
12323 print "bye" 13960 print "bye"
12324#+end_src 13961#+END_SRC
12325 13962
12326#+resname: 13963#+results:
12327: hello 13964: hello
12328: bye 13965: bye
12329@end example 13966@end example
12330 13967
12331In non-session mode, the `2' is not printed and does not appear. 13968In non-session mode, the `2' is not printed and does not appear.
12332@example 13969@example
12333#+begin_src python :results output :session 13970#+BEGIN_SRC python :results output :session
12334 print "hello" 13971 print "hello"
12335 2 13972 2
12336 print "bye" 13973 print "bye"
12337#+end_src 13974#+END_SRC
12338 13975
12339#+resname: 13976#+results:
12340: hello 13977: hello
12341: 2 13978: 2
12342: bye 13979: bye
12343@end example 13980@end example
12344 13981
12345But in @code{:session} mode, the interactive interpreter receives input `2' 13982But in @code{:session} mode, the interactive interpreter receives input `2'
12346and prints out its value, `2'. (Indeed, the other print statements are 13983and prints out its value, `2'. (Indeed, the other print statements are
12347unnecessary here). 13984unnecessary here).
12348 13985
12349@node Noweb reference syntax, Key bindings and useful functions, Results of evaluation, Working With Source Code 13986@node Noweb reference syntax, Key bindings and useful functions, Results of evaluation, Working With Source Code
@@ -12364,7 +14001,8 @@ When a code block is tangled or evaluated, whether or not ``noweb''
12364references are expanded depends upon the value of the @code{:noweb} header 14001references are expanded depends upon the value of the @code{:noweb} header
12365argument. If @code{:noweb yes}, then a Noweb reference is expanded before 14002argument. If @code{:noweb yes}, then a Noweb reference is expanded before
12366evaluation. If @code{:noweb no}, the default, then the reference is not 14003evaluation. If @code{:noweb no}, the default, then the reference is not
12367expanded before evaluation. 14004expanded before evaluation. See the @ref{noweb-ref} header argument for
14005a more flexible way to resolve noweb references.
12368 14006
12369Note: the default value, @code{:noweb no}, was chosen to ensure that 14007Note: the default value, @code{:noweb no}, was chosen to ensure that
12370correct code is not broken in a language, such as Ruby, where 14008correct code is not broken in a language, such as Ruby, where
@@ -12372,11 +14010,17 @@ correct code is not broken in a language, such as Ruby, where
12372syntactically valid in languages that you use, then please consider setting 14010syntactically valid in languages that you use, then please consider setting
12373the default value. 14011the default value.
12374 14012
14013Note: if noweb tangling is slow in large Org-mode files consider setting the
14014@code{*org-babel-use-quick-and-dirty-noweb-expansion*} variable to true.
14015This will result in faster noweb reference resolution at the expense of not
14016correctly resolving inherited values of the @code{:noweb-ref} header
14017argument.
14018
12375@node Key bindings and useful functions, Batch execution, Noweb reference syntax, Working With Source Code 14019@node Key bindings and useful functions, Batch execution, Noweb reference syntax, Working With Source Code
12376@section Key bindings and useful functions 14020@section Key bindings and useful functions
12377@cindex code block, key bindings 14021@cindex code block, key bindings
12378 14022
12379Many common Org-mode key sequences are re-bound depending on 14023Many common Org mode key sequences are re-bound depending on
12380the context. 14024the context.
12381 14025
12382Within a code block, the following key bindings 14026Within a code block, the following key bindings
@@ -12384,60 +14028,60 @@ are active:
12384 14028
12385@multitable @columnfractions 0.25 0.75 14029@multitable @columnfractions 0.25 0.75
12386@kindex C-c C-c 14030@kindex C-c C-c
12387@item @kbd{C-c C-c} @tab org-babel-execute-src-block 14031@item @kbd{C-c C-c} @tab @code{org-babel-execute-src-block}
12388@kindex C-c C-o 14032@kindex C-c C-o
12389@item @kbd{C-c C-o} @tab org-babel-open-src-block-result 14033@item @kbd{C-c C-o} @tab @code{org-babel-open-src-block-result}
12390@kindex C-up 14034@kindex C-up
12391@item @kbd{C-@key{up}} @tab org-babel-load-in-session 14035@item @kbd{C-@key{up}} @tab @code{org-babel-load-in-session}
12392@kindex M-down 14036@kindex M-down
12393@item @kbd{M-@key{down}} @tab org-babel-pop-to-session 14037@item @kbd{M-@key{down}} @tab @code{org-babel-pop-to-session}
12394@end multitable 14038@end multitable
12395 14039
12396In an Org-mode buffer, the following key bindings are active: 14040In an Org mode buffer, the following key bindings are active:
12397 14041
12398@multitable @columnfractions 0.45 0.55 14042@multitable @columnfractions 0.45 0.55
12399@kindex C-c C-v a 14043@kindex C-c C-v a
12400@kindex C-c C-v C-a 14044@kindex C-c C-v C-a
12401@item @kbd{C-c C-v a} @ @ @r{or} @ @ @kbd{C-c C-v C-a} @tab org-babel-sha1-hash 14045@item @kbd{C-c C-v a} @ @ @r{or} @ @ @kbd{C-c C-v C-a} @tab @code{org-babel-sha1-hash}
12402@kindex C-c C-v b 14046@kindex C-c C-v b
12403@kindex C-c C-v C-b 14047@kindex C-c C-v C-b
12404@item @kbd{C-c C-v b} @ @ @r{or} @ @ @kbd{C-c C-v C-b} @tab org-babel-execute-buffer 14048@item @kbd{C-c C-v b} @ @ @r{or} @ @ @kbd{C-c C-v C-b} @tab @code{org-babel-execute-buffer}
12405@kindex C-c C-v f 14049@kindex C-c C-v f
12406@kindex C-c C-v C-f 14050@kindex C-c C-v C-f
12407@item @kbd{C-c C-v f} @ @ @r{or} @ @ @kbd{C-c C-v C-f} @tab org-babel-tangle-file 14051@item @kbd{C-c C-v f} @ @ @r{or} @ @ @kbd{C-c C-v C-f} @tab @code{org-babel-tangle-file}
12408@kindex C-c C-v g 14052@kindex C-c C-v g
12409@item @kbd{C-c C-v g} @tab org-babel-goto-named-source-block 14053@item @kbd{C-c C-v g} @tab @code{org-babel-goto-named-source-block}
12410@kindex C-c C-v h 14054@kindex C-c C-v h
12411@item @kbd{C-c C-v h} @tab org-babel-describe-bindings 14055@item @kbd{C-c C-v h} @tab @code{org-babel-describe-bindings}
12412@kindex C-c C-v l 14056@kindex C-c C-v l
12413@kindex C-c C-v C-l 14057@kindex C-c C-v C-l
12414@item @kbd{C-c C-v l} @ @ @r{or} @ @ @kbd{C-c C-v C-l} @tab org-babel-lob-ingest 14058@item @kbd{C-c C-v l} @ @ @r{or} @ @ @kbd{C-c C-v C-l} @tab @code{org-babel-lob-ingest}
12415@kindex C-c C-v p 14059@kindex C-c C-v p
12416@kindex C-c C-v C-p 14060@kindex C-c C-v C-p
12417@item @kbd{C-c C-v p} @ @ @r{or} @ @ @kbd{C-c C-v C-p} @tab org-babel-expand-src-block 14061@item @kbd{C-c C-v p} @ @ @r{or} @ @ @kbd{C-c C-v C-p} @tab @code{org-babel-expand-src-block}
12418@kindex C-c C-v s 14062@kindex C-c C-v s
12419@kindex C-c C-v C-s 14063@kindex C-c C-v C-s
12420@item @kbd{C-c C-v s} @ @ @r{or} @ @ @kbd{C-c C-v C-s} @tab org-babel-execute-subtree 14064@item @kbd{C-c C-v s} @ @ @r{or} @ @ @kbd{C-c C-v C-s} @tab @code{org-babel-execute-subtree}
12421@kindex C-c C-v t 14065@kindex C-c C-v t
12422@kindex C-c C-v C-t 14066@kindex C-c C-v C-t
12423@item @kbd{C-c C-v t} @ @ @r{or} @ @ @kbd{C-c C-v C-t} @tab org-babel-tangle 14067@item @kbd{C-c C-v t} @ @ @r{or} @ @ @kbd{C-c C-v C-t} @tab @code{org-babel-tangle}
12424@kindex C-c C-v z 14068@kindex C-c C-v z
12425@kindex C-c C-v C-z 14069@kindex C-c C-v C-z
12426@item @kbd{C-c C-v z} @ @ @r{or} @ @ @kbd{C-c C-v C-z} @tab org-babel-switch-to-session 14070@item @kbd{C-c C-v z} @ @ @r{or} @ @ @kbd{C-c C-v C-z} @tab @code{org-babel-switch-to-session}
12427@end multitable 14071@end multitable
12428 14072
12429@c When possible these keybindings were extended to work when the control key is 14073@c When possible these keybindings were extended to work when the control key is
12430@c kept pressed, resulting in the following additional keybindings. 14074@c kept pressed, resulting in the following additional keybindings.
12431 14075
12432@c @multitable @columnfractions 0.25 0.75 14076@c @multitable @columnfractions 0.25 0.75
12433@c @item @kbd{C-c C-v C-a} @tab org-babel-sha1-hash 14077@c @item @kbd{C-c C-v C-a} @tab @code{org-babel-sha1-hash}
12434@c @item @kbd{C-c C-v C-b} @tab org-babel-execute-buffer 14078@c @item @kbd{C-c C-v C-b} @tab @code{org-babel-execute-buffer}
12435@c @item @kbd{C-c C-v C-f} @tab org-babel-tangle-file 14079@c @item @kbd{C-c C-v C-f} @tab @code{org-babel-tangle-file}
12436@c @item @kbd{C-c C-v C-l} @tab org-babel-lob-ingest 14080@c @item @kbd{C-c C-v C-l} @tab @code{org-babel-lob-ingest}
12437@c @item @kbd{C-c C-v C-p} @tab org-babel-expand-src-block 14081@c @item @kbd{C-c C-v C-p} @tab @code{org-babel-expand-src-block}
12438@c @item @kbd{C-c C-v C-s} @tab org-babel-execute-subtree 14082@c @item @kbd{C-c C-v C-s} @tab @code{org-babel-execute-subtree}
12439@c @item @kbd{C-c C-v C-t} @tab org-babel-tangle 14083@c @item @kbd{C-c C-v C-t} @tab @code{org-babel-tangle}
12440@c @item @kbd{C-c C-v C-z} @tab org-babel-switch-to-session 14084@c @item @kbd{C-c C-v C-z} @tab @code{org-babel-switch-to-session}
12441@c @end multitable 14085@c @end multitable
12442 14086
12443@node Batch execution, , Key bindings and useful functions, Working With Source Code 14087@node Batch execution, , Key bindings and useful functions, Working With Source Code
@@ -12490,6 +14134,7 @@ emacs -Q --batch -l $ORGINSTALL \
12490* Clean view:: Getting rid of leading stars in the outline 14134* Clean view:: Getting rid of leading stars in the outline
12491* TTY keys:: Using Org on a tty 14135* TTY keys:: Using Org on a tty
12492* Interaction:: Other Emacs packages 14136* Interaction:: Other Emacs packages
14137* org-crypt.el:: Encrypting Org files
12493@end menu 14138@end menu
12494 14139
12495 14140
@@ -12509,7 +14154,7 @@ emacs -Q --batch -l $ORGINSTALL \
12509@cindex tag completion 14154@cindex tag completion
12510@cindex link abbreviations, completion of 14155@cindex link abbreviations, completion of
12511 14156
12512Emacs would not be Emacs without completion, and Org-mode uses it whenever it 14157Emacs would not be Emacs without completion, and Org mode uses it whenever it
12513makes sense. If you prefer an @i{iswitchb}- or @i{ido}-like interface for 14158makes sense. If you prefer an @i{iswitchb}- or @i{ido}-like interface for
12514some of the completion prompts, you can specify your preference by setting at 14159some of the completion prompts, you can specify your preference by setting at
12515most one of the variables @code{org-completion-use-iswitchb} 14160most one of the variables @code{org-completion-use-iswitchb}
@@ -12544,12 +14189,12 @@ buffer.
12544After @samp{[}, complete link abbreviations (@pxref{Link abbreviations}). 14189After @samp{[}, complete link abbreviations (@pxref{Link abbreviations}).
12545@item 14190@item
12546After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or 14191After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
12547@samp{OPTIONS} which set file-specific options for Org-mode. When the 14192@samp{OPTIONS} which set file-specific options for Org mode. When the
12548option keyword is already complete, pressing @kbd{M-@key{TAB}} again 14193option keyword is already complete, pressing @kbd{M-@key{TAB}} again
12549will insert example settings for this keyword. 14194will insert example settings for this keyword.
12550@item 14195@item
12551In the line after @samp{#+STARTUP: }, complete startup keywords, 14196In the line after @samp{#+STARTUP: }, complete startup keywords,
12552i.e. valid keys for this line. 14197i.e.@: valid keys for this line.
12553@item 14198@item
12554Elsewhere, complete dictionary words using Ispell. 14199Elsewhere, complete dictionary words using Ispell.
12555@end itemize 14200@end itemize
@@ -12560,7 +14205,7 @@ Elsewhere, complete dictionary words using Ispell.
12560@cindex template insertion 14205@cindex template insertion
12561@cindex insertion, of templates 14206@cindex insertion, of templates
12562 14207
12563Org-mode supports insertion of empty structural elements (like 14208Org mode supports insertion of empty structural elements (like
12564@code{#+BEGIN_SRC} and @code{#+END_SRC} pairs) with just a few key 14209@code{#+BEGIN_SRC} and @code{#+END_SRC} pairs) with just a few key
12565strokes. This is achieved through a native template expansion mechanism. 14210strokes. This is achieved through a native template expansion mechanism.
12566Note that Emacs has several other template mechanisms which could be used in 14211Note that Emacs has several other template mechanisms which could be used in
@@ -12584,14 +14229,15 @@ The following template selectors are currently supported.
12584@item @kbd{H} @tab @code{#+html:} 14229@item @kbd{H} @tab @code{#+html:}
12585@item @kbd{a} @tab @code{#+begin_ascii ... #+end_ascii} 14230@item @kbd{a} @tab @code{#+begin_ascii ... #+end_ascii}
12586@item @kbd{A} @tab @code{#+ascii:} 14231@item @kbd{A} @tab @code{#+ascii:}
12587@item @kbd{i} @tab @code{#+include:} line 14232@item @kbd{i} @tab @code{#+index:} line
14233@item @kbd{I} @tab @code{#+include:} line
12588@end multitable 14234@end multitable
12589 14235
12590For example, on an empty line, typing "<e" and then pressing TAB, will expand 14236For example, on an empty line, typing "<e" and then pressing TAB, will expand
12591into a complete EXAMPLE template. 14237into a complete EXAMPLE template.
12592 14238
12593You can install additional templates by customizing the variable 14239You can install additional templates by customizing the variable
12594@code{org-structure-template-alist}. See the docstring of the variable for 14240@code{org-structure-template-alist}. See the docstring of the variable for
12595additional details. 14241additional details.
12596 14242
12597@node Speed keys, Code evaluation security, Easy Templates, Miscellaneous 14243@node Speed keys, Code evaluation security, Easy Templates, Miscellaneous
@@ -12601,7 +14247,7 @@ additional details.
12601@vindex org-speed-commands-user 14247@vindex org-speed-commands-user
12602 14248
12603Single keys can be made to execute commands when the cursor is at the 14249Single keys can be made to execute commands when the cursor is at the
12604beginning of a headline, i.e. before the first star. Configure the variable 14250beginning of a headline, i.e.@: before the first star. Configure the variable
12605@code{org-use-speed-commands} to activate this feature. There is a 14251@code{org-use-speed-commands} to activate this feature. There is a
12606pre-defined list of commands, and you can add more such commands using the 14252pre-defined list of commands, and you can add more such commands using the
12607variable @code{org-speed-commands-user}. Speed keys do not only speed up 14253variable @code{org-speed-commands-user}. Speed keys do not only speed up
@@ -12641,9 +14287,20 @@ Make sure you know what you are doing before customizing the variables
12641which take off the default security brakes. 14287which take off the default security brakes.
12642 14288
12643@defopt org-confirm-babel-evaluate 14289@defopt org-confirm-babel-evaluate
12644When set to t user is queried before code block evaluation 14290When t (the default), the user is asked before every code block evaluation.
14291When nil, the user is not asked. When set to a function, it is called with
14292two arguments (language and body of the code block) and should return t to
14293ask and nil not to ask.
12645@end defopt 14294@end defopt
12646 14295
14296For example, here is how to execute "ditaa" code (which is considered safe)
14297without asking:
14298@example
14299(defun my-org-confirm-babel-evaluate (lang body)
14300 (not (string= lang "ditaa"))) ; don't ask for ditaa
14301(setq org-confirm-babel-evaluate 'my-org-confirm-babel-evaluate)
14302@end example
14303
12647@item Following @code{shell} and @code{elisp} links 14304@item Following @code{shell} and @code{elisp} links
12648Org has two link types that can directly evaluate code (@pxref{External 14305Org has two link types that can directly evaluate code (@pxref{External
12649links}). These links can be problematic because the code to be evaluated is 14306links}). These links can be problematic because the code to be evaluated is
@@ -12680,7 +14337,7 @@ lines into the buffer (@pxref{In-buffer settings}).
12680@cindex in-buffer settings 14337@cindex in-buffer settings
12681@cindex special keywords 14338@cindex special keywords
12682 14339
12683Org-mode uses special lines in the buffer to define settings on a 14340Org mode uses special lines in the buffer to define settings on a
12684per-file basis. These lines start with a @samp{#+} followed by a 14341per-file basis. These lines start with a @samp{#+} followed by a
12685keyword, a colon, and then individual words defining a setting. Several 14342keyword, a colon, and then individual words defining a setting. Several
12686setting words can be in the same line, but you can also have multiple 14343setting words can be in the same line, but you can also have multiple
@@ -12739,14 +14396,14 @@ buffer, most useful for specifying the allowed values of a property.
12739@item #+SETUPFILE: file 14396@item #+SETUPFILE: file
12740This line defines a file that holds more in-buffer setup. Normally this is 14397This line defines a file that holds more in-buffer setup. Normally this is
12741entirely ignored. Only when the buffer is parsed for option-setting lines 14398entirely ignored. Only when the buffer is parsed for option-setting lines
12742(i.e. when starting Org-mode for a file, when pressing @kbd{C-c C-c} in a 14399(i.e.@: when starting Org mode for a file, when pressing @kbd{C-c C-c} in a
12743settings line, or when exporting), then the contents of this file are parsed 14400settings line, or when exporting), then the contents of this file are parsed
12744as if they had been included in the buffer. In particular, the file can be 14401as if they had been included in the buffer. In particular, the file can be
12745any other Org-mode file with internal setup. You can visit the file the 14402any other Org mode file with internal setup. You can visit the file the
12746cursor is in the line with @kbd{C-c '}. 14403cursor is in the line with @kbd{C-c '}.
12747@item #+STARTUP: 14404@item #+STARTUP:
12748@cindex #+STARTUP: 14405@cindex #+STARTUP:
12749This line sets options to be used at startup of Org-mode, when an 14406This line sets options to be used at startup of Org mode, when an
12750Org file is being visited. 14407Org file is being visited.
12751 14408
12752The first set of options deals with the initial visibility of the outline 14409The first set of options deals with the initial visibility of the outline
@@ -12769,7 +14426,7 @@ showeverything @r{show even drawer contents}
12769@cindex @code{indent}, STARTUP keyword 14426@cindex @code{indent}, STARTUP keyword
12770@cindex @code{noindent}, STARTUP keyword 14427@cindex @code{noindent}, STARTUP keyword
12771Dynamic virtual indentation is controlled by the variable 14428Dynamic virtual indentation is controlled by the variable
12772@code{org-startup-indented}@footnote{Emacs 23 and Org-mode 6.29 are required} 14429@code{org-startup-indented}@footnote{Emacs 23 and Org mode 6.29 are required}
12773@example 14430@example
12774indent @r{start with @code{org-indent-mode} turned on} 14431indent @r{start with @code{org-indent-mode} turned on}
12775noindent @r{start with @code{org-indent-mode} turned off} 14432noindent @r{start with @code{org-indent-mode} turned off}
@@ -12896,14 +14553,14 @@ fninline @r{define footnotes inline}
12896fnnoinline @r{define footnotes in separate section} 14553fnnoinline @r{define footnotes in separate section}
12897fnlocal @r{define footnotes near first reference, but not inline} 14554fnlocal @r{define footnotes near first reference, but not inline}
12898fnprompt @r{prompt for footnote labels} 14555fnprompt @r{prompt for footnote labels}
12899fnauto @r{create [fn:1]-like labels automatically (default)} 14556fnauto @r{create @code{[fn:1]}-like labels automatically (default)}
12900fnconfirm @r{offer automatic label for editing or confirmation} 14557fnconfirm @r{offer automatic label for editing or confirmation}
12901fnplain @r{create [1]-like labels automatically} 14558fnplain @r{create @code{[1]}-like labels automatically}
12902fnadjust @r{automatically renumber and sort footnotes} 14559fnadjust @r{automatically renumber and sort footnotes}
12903nofnadjust @r{do not renumber and sort automatically} 14560nofnadjust @r{do not renumber and sort automatically}
12904@end example 14561@end example
12905@cindex org-hide-block-startup 14562@cindex org-hide-block-startup
12906To hide blocks on startup, use these keywords. The corresponding variable is 14563To hide blocks on startup, use these keywords. The corresponding variable is
12907@code{org-hide-block-startup}. 14564@code{org-hide-block-startup}.
12908@cindex @code{hideblocks}, STARTUP keyword 14565@cindex @code{hideblocks}, STARTUP keyword
12909@cindex @code{nohideblocks}, STARTUP keyword 14566@cindex @code{nohideblocks}, STARTUP keyword
@@ -12990,6 +14647,8 @@ ordered list.
12990@item 14647@item
12991If the cursor is on the @code{#+BEGIN} line of a dynamic block, the 14648If the cursor is on the @code{#+BEGIN} line of a dynamic block, the
12992block is updated. 14649block is updated.
14650@item
14651If the cursor is at a timestamp, fix the day name in the timestamp.
12993@end itemize 14652@end itemize
12994 14653
12995@node Clean view, TTY keys, The very busy C-c C-c key, Miscellaneous 14654@node Clean view, TTY keys, The very busy C-c C-c key, Miscellaneous
@@ -13155,7 +14814,7 @@ tty you would rather use @kbd{C-c .} to re-insert the timestamp.
13155@end multitable 14814@end multitable
13156 14815
13157 14816
13158@node Interaction, , TTY keys, Miscellaneous 14817@node Interaction, org-crypt.el, TTY keys, Miscellaneous
13159@section Interaction with other packages 14818@section Interaction with other packages
13160@cindex packages, interaction with other 14819@cindex packages, interaction with other
13161Org lives in the world of GNU Emacs and interacts in various ways 14820Org lives in the world of GNU Emacs and interacts in various ways
@@ -13179,7 +14838,7 @@ checks for the availability of Calc by looking for the function
13179@code{calc-eval} which will have been autoloaded during setup if Calc has 14838@code{calc-eval} which will have been autoloaded during setup if Calc has
13180been installed properly. As of Emacs 22, Calc is part of the Emacs 14839been installed properly. As of Emacs 22, Calc is part of the Emacs
13181distribution. Another possibility for interaction between the two 14840distribution. Another possibility for interaction between the two
13182packages is using Calc for embedded calculations. @xref{Embedded Mode, 14841packages is using Calc for embedded calculations. @xref{Embedded Mode,
13183, Embedded Mode, Calc, GNU Emacs Calc Manual}. 14842, Embedded Mode, Calc, GNU Emacs Calc Manual}.
13184@item @file{constants.el} by Carsten Dominik 14843@item @file{constants.el} by Carsten Dominik
13185@cindex @file{constants.el} 14844@cindex @file{constants.el}
@@ -13191,18 +14850,18 @@ constants in the variable @code{org-table-formula-constants}, install
13191the @file{constants} package which defines a large number of constants 14850the @file{constants} package which defines a large number of constants
13192and units, and lets you use unit prefixes like @samp{M} for 14851and units, and lets you use unit prefixes like @samp{M} for
13193@samp{Mega}, etc@. You will need version 2.0 of this package, available 14852@samp{Mega}, etc@. You will need version 2.0 of this package, available
13194at @url{http://www.astro.uva.nl/~dominik/Tools}. Org checks for 14853at @url{http://www.astro.uva.nl/~dominik/Tools}. Org checks for
13195the function @code{constants-get}, which has to be autoloaded in your 14854the function @code{constants-get}, which has to be autoloaded in your
13196setup. See the installation instructions in the file 14855setup. See the installation instructions in the file
13197@file{constants.el}. 14856@file{constants.el}.
13198@item @file{cdlatex.el} by Carsten Dominik 14857@item @file{cdlatex.el} by Carsten Dominik
13199@cindex @file{cdlatex.el} 14858@cindex @file{cdlatex.el}
13200@cindex Dominik, Carsten 14859@cindex Dominik, Carsten
13201Org-mode can make use of the CDLa@TeX{} package to efficiently enter 14860Org mode can make use of the CD@LaTeX{} package to efficiently enter
13202@LaTeX{} fragments into Org files. See @ref{CDLaTeX mode}. 14861@LaTeX{} fragments into Org files. See @ref{CDLaTeX mode}.
13203@item @file{imenu.el} by Ake Stenhoff and Lars Lindberg 14862@item @file{imenu.el} by Ake Stenhoff and Lars Lindberg
13204@cindex @file{imenu.el} 14863@cindex @file{imenu.el}
13205Imenu allows menu access to an index of items in a file. Org-mode 14864Imenu allows menu access to an index of items in a file. Org mode
13206supports Imenu---all you need to do to get the index is the following: 14865supports Imenu---all you need to do to get the index is the following:
13207@lisp 14866@lisp
13208(add-hook 'org-mode-hook 14867(add-hook 'org-mode-hook
@@ -13219,7 +14878,7 @@ Org used to use this package for capture, but no longer does.
13219@cindex @file{speedbar.el} 14878@cindex @file{speedbar.el}
13220@cindex Ludlam, Eric M. 14879@cindex Ludlam, Eric M.
13221Speedbar is a package that creates a special frame displaying files and 14880Speedbar is a package that creates a special frame displaying files and
13222index items in files. Org-mode supports Speedbar and allows you to 14881index items in files. Org mode supports Speedbar and allows you to
13223drill into Org files directly from the Speedbar. It also allows you to 14882drill into Org files directly from the Speedbar. It also allows you to
13224restrict the scope of agenda commands to a file or a subtree by using 14883restrict the scope of agenda commands to a file or a subtree by using
13225the command @kbd{<} in the Speedbar frame. 14884the command @kbd{<} in the Speedbar frame.
@@ -13233,8 +14892,8 @@ the command @kbd{<} in the Speedbar frame.
13233Complex ASCII tables with automatic line wrapping, column- and row-spanning, 14892Complex ASCII tables with automatic line wrapping, column- and row-spanning,
13234and alignment can be created using the Emacs table package by Takaaki Ota 14893and alignment can be created using the Emacs table package by Takaaki Ota
13235(@uref{http://sourceforge.net/projects/table}, and also part of Emacs 22). 14894(@uref{http://sourceforge.net/projects/table}, and also part of Emacs 22).
13236Org-mode will recognize these tables and export them properly. Because of 14895Org mode will recognize these tables and export them properly. Because of
13237interference with other Org-mode functionality, you unfortunately cannot edit 14896interference with other Org mode functionality, you unfortunately cannot edit
13238these tables directly in the buffer. Instead, you need to use the command 14897these tables directly in the buffer. Instead, you need to use the command
13239@kbd{C-c '} to edit them, similar to source code snippets. 14898@kbd{C-c '} to edit them, similar to source code snippets.
13240 14899
@@ -13244,7 +14903,7 @@ Edit a @file{table.el} table. Works when the cursor is in a table.el table.
13244@c 14903@c
13245@orgcmd{C-c ~,org-table-create-with-table.el} 14904@orgcmd{C-c ~,org-table-create-with-table.el}
13246Insert a @file{table.el} table. If there is already a table at point, this 14905Insert a @file{table.el} table. If there is already a table at point, this
13247command converts it between the @file{table.el} format and the Org-mode 14906command converts it between the @file{table.el} format and the Org mode
13248format. See the documentation string of the command 14907format. See the documentation string of the command
13249@code{org-convert-table} for the restrictions under which this is 14908@code{org-convert-table} for the restrictions under which this is
13250possible. 14909possible.
@@ -13253,13 +14912,13 @@ possible.
13253@item @file{footnote.el} by Steven L. Baur 14912@item @file{footnote.el} by Steven L. Baur
13254@cindex @file{footnote.el} 14913@cindex @file{footnote.el}
13255@cindex Baur, Steven L. 14914@cindex Baur, Steven L.
13256Org-mode recognizes numerical footnotes as provided by this package. 14915Org mode recognizes numerical footnotes as provided by this package.
13257However, Org-mode also has its own footnote support (@pxref{Footnotes}), 14916However, Org mode also has its own footnote support (@pxref{Footnotes}),
13258which makes using @file{footnote.el} unnecessary. 14917which makes using @file{footnote.el} unnecessary.
13259@end table 14918@end table
13260 14919
13261@node Conflicts, , Cooperation, Interaction 14920@node Conflicts, , Cooperation, Interaction
13262@subsection Packages that lead to conflicts with Org-mode 14921@subsection Packages that lead to conflicts with Org mode
13263 14922
13264@table @asis 14923@table @asis
13265 14924
@@ -13271,7 +14930,7 @@ This conflicts with the use of @kbd{S-@key{cursor}} commands in Org to change
13271timestamps, TODO keywords, priorities, and item bullet types if the cursor is 14930timestamps, TODO keywords, priorities, and item bullet types if the cursor is
13272at such a location. By default, @kbd{S-@key{cursor}} commands outside 14931at such a location. By default, @kbd{S-@key{cursor}} commands outside
13273special contexts don't do anything, but you can customize the variable 14932special contexts don't do anything, but you can customize the variable
13274@code{org-support-shift-select}. Org-mode then tries to accommodate shift 14933@code{org-support-shift-select}. Org mode then tries to accommodate shift
13275selection by (i) using it outside of the special contexts where special 14934selection by (i) using it outside of the special contexts where special
13276commands apply, and by (ii) extending an existing active region even if the 14935commands apply, and by (ii) extending an existing active region even if the
13277cursor moves across a special context. 14936cursor moves across a special context.
@@ -13286,14 +14945,14 @@ region. In fact, Emacs 23 has this built-in in the form of
13286@code{shift-selection-mode}, see previous paragraph. If you are using Emacs 14945@code{shift-selection-mode}, see previous paragraph. If you are using Emacs
1328723, you probably don't want to use another package for this purpose. However, 1494623, you probably don't want to use another package for this purpose. However,
13288if you prefer to leave these keys to a different package while working in 14947if you prefer to leave these keys to a different package while working in
13289Org-mode, configure the variable @code{org-replace-disputed-keys}. When set, 14948Org mode, configure the variable @code{org-replace-disputed-keys}. When set,
13290Org will move the following key bindings in Org files, and in the agenda 14949Org will move the following key bindings in Org files, and in the agenda
13291buffer (but not during date selection). 14950buffer (but not during date selection).
13292 14951
13293@example 14952@example
13294S-UP -> M-p S-DOWN -> M-n 14953S-UP @result{} M-p S-DOWN @result{} M-n
13295S-LEFT -> M-- S-RIGHT -> M-+ 14954S-LEFT @result{} M-- S-RIGHT @result{} M-+
13296C-S-LEFT -> M-S-- C-S-RIGHT -> M-S-+ 14955C-S-LEFT @result{} M-S-- C-S-RIGHT @result{} M-S-+
13297@end example 14956@end example
13298 14957
13299@vindex org-disputed-keys 14958@vindex org-disputed-keys
@@ -13303,7 +14962,7 @@ to have other replacement keys, look at the variable
13303 14962
13304@item @file{yasnippet.el} 14963@item @file{yasnippet.el}
13305@cindex @file{yasnippet.el} 14964@cindex @file{yasnippet.el}
13306The way Org-mode binds the TAB key (binding to @code{[tab]} instead of 14965The way Org mode binds the TAB key (binding to @code{[tab]} instead of
13307@code{"\t"}) overrules YASnippet's access to this key. The following code 14966@code{"\t"}) overrules YASnippet's access to this key. The following code
13308fixed this problem: 14967fixed this problem:
13309 14968
@@ -13311,14 +14970,34 @@ fixed this problem:
13311(add-hook 'org-mode-hook 14970(add-hook 'org-mode-hook
13312 (lambda () 14971 (lambda ()
13313 (org-set-local 'yas/trigger-key [tab]) 14972 (org-set-local 'yas/trigger-key [tab])
13314 (define-key yas/keymap [tab] 'yas/next-field-group))) 14973 (define-key yas/keymap [tab] 'yas/next-field-or-maybe-expand)))
14974@end lisp
14975
14976The latest version of yasnippet doesn't play well with Org mode. If the
14977above code does not fix the conflict, start by defining the following
14978function:
14979
14980@lisp
14981(defun yas/org-very-safe-expand ()
14982 (let ((yas/fallback-behavior 'return-nil)) (yas/expand)))
14983@end lisp
14984
14985Then, tell Org mode what to do with the new function:
14986
14987@lisp
14988(add-hook 'org-mode-hook
14989 (lambda ()
14990 (make-variable-buffer-local 'yas/trigger-key)
14991 (setq yas/trigger-key [tab])
14992 (add-to-list 'org-tab-first-hook 'yas/org-very-safe-expand)
14993 (define-key yas/keymap [tab] 'yas/next-field)))
13315@end lisp 14994@end lisp
13316 14995
13317@item @file{windmove.el} by Hovav Shacham 14996@item @file{windmove.el} by Hovav Shacham
13318@cindex @file{windmove.el} 14997@cindex @file{windmove.el}
13319This package also uses the @kbd{S-<cursor>} keys, so everything written 14998This package also uses the @kbd{S-<cursor>} keys, so everything written
13320in the paragraph above about CUA mode also applies here. If you want make 14999in the paragraph above about CUA mode also applies here. If you want make
13321the windmove function active in locations where Org-mode does not have 15000the windmove function active in locations where Org mode does not have
13322special functionality on @kbd{S-@key{cursor}}, add this to your 15001special functionality on @kbd{S-@key{cursor}}, add this to your
13323configuration: 15002configuration:
13324 15003
@@ -13334,7 +15013,7 @@ configuration:
13334@cindex @file{viper.el} 15013@cindex @file{viper.el}
13335@kindex C-c / 15014@kindex C-c /
13336Viper uses @kbd{C-c /} and therefore makes this key not access the 15015Viper uses @kbd{C-c /} and therefore makes this key not access the
13337corresponding Org-mode command @code{org-sparse-tree}. You need to find 15016corresponding Org mode command @code{org-sparse-tree}. You need to find
13338another key for this command, or override the key in 15017another key for this command, or override the key in
13339@code{viper-vi-global-user-map} with 15018@code{viper-vi-global-user-map} with
13340 15019
@@ -13344,6 +15023,44 @@ another key for this command, or override the key in
13344 15023
13345@end table 15024@end table
13346 15025
15026@node org-crypt.el, , Interaction, Miscellaneous
15027@section org-crypt.el
15028@cindex @file{org-crypt.el}
15029@cindex @code{org-decrypt-entry}
15030
15031Org-crypt will encrypt the text of an entry, but not the headline, or
15032properties. Org-crypt uses the Emacs EasyPG library to encrypt and decrypt
15033files.
15034
15035Any text below a headline that has a @samp{:crypt:} tag will be automatically
15036be encrypted when the file is saved. If you want to use a different tag just
15037customize the @code{org-crypt-tag-matcher} setting.
15038
15039To use org-crypt it is suggested that you have the following in your
15040@file{.emacs}:
15041
15042@example
15043(require 'org-crypt)
15044(org-crypt-use-before-save-magic)
15045(setq org-tags-exclude-from-inheritance (quote ("crypt")))
15046
15047(setq org-crypt-key nil)
15048 ;; GPG key to use for encryption
15049 ;; Either the Key ID or set to nil to use symmetric encryption.
15050
15051(setq auto-save-default nil)
15052 ;; Auto-saving does not cooperate with org-crypt.el: so you need
15053 ;; to turn it off if you plan to use org-crypt.el quite often.
15054 ;; Otherwise, you'll get an (annoying) message each time you
15055 ;; start Org.
15056
15057 ;; To turn it off only locally, you can insert this:
15058 ;;
15059 ;; # -*- buffer-auto-save-file-name: nil; -*-
15060@end example
15061
15062Excluding the crypt tag from inheritance prevents already encrypted text
15063being encrypted again.
13347 15064
13348@node Hacking, MobileOrg, Miscellaneous, Top 15065@node Hacking, MobileOrg, Miscellaneous, Top
13349@appendix Hacking 15066@appendix Hacking
@@ -13381,7 +15098,7 @@ maintained by the Worg project and can be found at
13381 15098
13382A large number of add-on packages have been written by various authors. 15099A large number of add-on packages have been written by various authors.
13383These packages are not part of Emacs, but they are distributed as contributed 15100These packages are not part of Emacs, but they are distributed as contributed
13384packages with the separate release available at the Org-mode home page at 15101packages with the separate release available at the Org mode home page at
13385@uref{http://orgmode.org}. The list of contributed packages, along with 15102@uref{http://orgmode.org}. The list of contributed packages, along with
13386documentation about each package, is maintained by the Worg project at 15103documentation about each package, is maintained by the Worg project at
13387@uref{http://orgmode.org/worg/org-contrib/}. 15104@uref{http://orgmode.org/worg/org-contrib/}.
@@ -13487,7 +15204,7 @@ the link description when the link is later inserted into an Org
13487buffer with @kbd{C-c C-l}. 15204buffer with @kbd{C-c C-l}.
13488 15205
13489When it makes sense for your new link type, you may also define a function 15206When it makes sense for your new link type, you may also define a function
13490@code{org-PREFIX-complete-link} that implements special (e.g. completion) 15207@code{org-PREFIX-complete-link} that implements special (e.g.@: completion)
13491support for inserting such a link with @kbd{C-c C-l}. Such a function should 15208support for inserting such a link with @kbd{C-c C-l}. Such a function should
13492not accept any arguments, and return the full link with prefix. 15209not accept any arguments, and return the full link with prefix.
13493 15210
@@ -13505,7 +15222,7 @@ Add-ons can tap into this functionality by providing a function that detects
13505special context for that add-on and executes functionality appropriate for 15222special context for that add-on and executes functionality appropriate for
13506the context. Here is an example from Dan Davison's @file{org-R.el} which 15223the context. Here is an example from Dan Davison's @file{org-R.el} which
13507allows you to evaluate commands based on the @file{R} programming language 15224allows you to evaluate commands based on the @file{R} programming language
13508@footnote{@file{org-R.el} has been replaced by the org-mode functionality 15225@footnote{@file{org-R.el} has been replaced by the Org mode functionality
13509described in @ref{Working With Source Code} and is now obsolete.}. For this 15226described in @ref{Working With Source Code} and is now obsolete.}. For this
13510package, special contexts are lines that start with @code{#+R:} or 15227package, special contexts are lines that start with @code{#+R:} or
13511@code{#+RR:}. 15228@code{#+RR:}.
@@ -13526,7 +15243,8 @@ package, special contexts are lines that start with @code{#+R:} or
13526The function first checks if the cursor is in such a line. If that is the 15243The function first checks if the cursor is in such a line. If that is the
13527case, @code{org-R-apply} is called and the function returns @code{t} to 15244case, @code{org-R-apply} is called and the function returns @code{t} to
13528signal that action was taken, and @kbd{C-c C-c} will stop looking for other 15245signal that action was taken, and @kbd{C-c C-c} will stop looking for other
13529contexts. If the function finds it should do nothing locally, it returns @code{nil} so that other, similar functions can have a try. 15246contexts. If the function finds it should do nothing locally, it returns
15247@code{nil} so that other, similar functions can have a try.
13530 15248
13531 15249
13532@node Tables in arbitrary syntax, Dynamic blocks, Context-sensitive commands, Hacking 15250@node Tables in arbitrary syntax, Dynamic blocks, Context-sensitive commands, Hacking
@@ -13539,7 +15257,7 @@ Since Orgtbl mode can be used as a minor mode in arbitrary buffers, a
13539frequent feature request has been to make it work with native tables in 15257frequent feature request has been to make it work with native tables in
13540specific languages, for example @LaTeX{}. However, this is extremely 15258specific languages, for example @LaTeX{}. However, this is extremely
13541hard to do in a general way, would lead to a customization nightmare, 15259hard to do in a general way, would lead to a customization nightmare,
13542and would take away much of the simplicity of the Orgtbl-mode table 15260and would take away much of the simplicity of the Orgtbl mode table
13543editor. 15261editor.
13544 15262
13545This appendix describes a different approach. We keep the Orgtbl mode 15263This appendix describes a different approach. We keep the Orgtbl mode
@@ -13557,12 +15275,12 @@ can use Org's facilities to edit and structure lists by turning
13557 15275
13558@menu 15276@menu
13559* Radio tables:: Sending and receiving radio tables 15277* Radio tables:: Sending and receiving radio tables
13560* A LaTeX example:: Step by step, almost a tutorial 15278* A @LaTeX{} example:: Step by step, almost a tutorial
13561* Translator functions:: Copy and modify 15279* Translator functions:: Copy and modify
13562* Radio lists:: Doing the same for lists 15280* Radio lists:: Doing the same for lists
13563@end menu 15281@end menu
13564 15282
13565@node Radio tables, A LaTeX example, Tables in arbitrary syntax, Tables in arbitrary syntax 15283@node Radio tables, A @LaTeX{} example, Tables in arbitrary syntax, Tables in arbitrary syntax
13566@subsection Radio tables 15284@subsection Radio tables
13567@cindex radio tables 15285@cindex radio tables
13568 15286
@@ -13587,7 +15305,7 @@ example:
13587 15305
13588@noindent 15306@noindent
13589@code{table_name} is the reference name for the table that is also used 15307@code{table_name} is the reference name for the table that is also used
13590in the receiver lines. @code{translation_function} is the Lisp function 15308in the receiver lines. @code{translation_function} is the Lisp function
13591that does the translation. Furthermore, the line can contain a list of 15309that does the translation. Furthermore, the line can contain a list of
13592arguments (alternating key and value) at the end. The arguments will be 15310arguments (alternating key and value) at the end. The arguments will be
13593passed as a property list to the translation function for 15311passed as a property list to the translation function for
@@ -13630,7 +15348,7 @@ makes this comment-toggling very easy, in particular if you bind it to a
13630key. 15348key.
13631@end itemize 15349@end itemize
13632 15350
13633@node A LaTeX example, Translator functions, Radio tables, Tables in arbitrary syntax 15351@node A @LaTeX{} example, Translator functions, Radio tables, Tables in arbitrary syntax
13634@subsection A @LaTeX{} example of radio tables 15352@subsection A @LaTeX{} example of radio tables
13635@cindex @LaTeX{}, and Orgtbl mode 15353@cindex @LaTeX{}, and Orgtbl mode
13636 15354
@@ -13690,7 +15408,7 @@ table inserted between the two marker lines.
13690Now let's assume you want to make the table header by hand, because you 15408Now let's assume you want to make the table header by hand, because you
13691want to control how columns are aligned, etc@. In this case we make sure 15409want to control how columns are aligned, etc@. In this case we make sure
13692that the table translator skips the first 2 lines of the source 15410that the table translator skips the first 2 lines of the source
13693table, and tell the command to work as a @i{splice}, i.e. to not produce 15411table, and tell the command to work as a @i{splice}, i.e.@: to not produce
13694header and footer commands of the target table: 15412header and footer commands of the target table:
13695 15413
13696@example 15414@example
@@ -13725,7 +15443,7 @@ tabular environment. Default is nil.
13725A format to be used to wrap each field, it should contain @code{%s} for the 15443A format to be used to wrap each field, it should contain @code{%s} for the
13726original field value. For example, to wrap each field value in dollars, 15444original field value. For example, to wrap each field value in dollars,
13727you could use @code{:fmt "$%s$"}. This may also be a property list with 15445you could use @code{:fmt "$%s$"}. This may also be a property list with
13728column numbers and formats. for example @code{:fmt (2 "$%s$" 4 "%s\\%%")}. 15446column numbers and formats, for example @code{:fmt (2 "$%s$" 4 "%s\\%%")}.
13729A function of one argument can be used in place of the strings; the 15447A function of one argument can be used in place of the strings; the
13730function must return a formatted string. 15448function must return a formatted string.
13731 15449
@@ -13740,7 +15458,7 @@ applied. Similar to @code{fmt}, functions of two arguments can be
13740supplied instead of strings. 15458supplied instead of strings.
13741@end table 15459@end table
13742 15460
13743@node Translator functions, Radio lists, A LaTeX example, Tables in arbitrary syntax 15461@node Translator functions, Radio lists, A @LaTeX{} example, Tables in arbitrary syntax
13744@subsection Translator functions 15462@subsection Translator functions
13745@cindex HTML, and Orgtbl mode 15463@cindex HTML, and Orgtbl mode
13746@cindex translator function 15464@cindex translator function
@@ -13773,7 +15491,7 @@ hands processing over to the generic translator. Here is the entire code:
13773 15491
13774As you can see, the properties passed into the function (variable 15492As you can see, the properties passed into the function (variable
13775@var{PARAMS}) are combined with the ones newly defined in the function 15493@var{PARAMS}) are combined with the ones newly defined in the function
13776(variable @var{PARAMS2}). The ones passed into the function (i.e. the 15494(variable @var{PARAMS2}). The ones passed into the function (i.e.@: the
13777ones set by the @samp{ORGTBL SEND} line) take precedence. So if you 15495ones set by the @samp{ORGTBL SEND} line) take precedence. So if you
13778would like to use the @LaTeX{} translator, but wanted the line endings to 15496would like to use the @LaTeX{} translator, but wanted the line endings to
13779be @samp{\\[2mm]} instead of the default @samp{\\}, you could just 15497be @samp{\\[2mm]} instead of the default @samp{\\}, you could just
@@ -13920,15 +15638,24 @@ example @code{before-save-hook}. @code{org-update-all-dblocks} is
13920written in a way such that it does nothing in buffers that are not in 15638written in a way such that it does nothing in buffers that are not in
13921@code{org-mode}. 15639@code{org-mode}.
13922 15640
15641You can narrow the current buffer to the current dynamic block (like any
15642other block) with @code{org-narrow-to-block}.
15643
13923@node Special agenda views, Extracting agenda information, Dynamic blocks, Hacking 15644@node Special agenda views, Extracting agenda information, Dynamic blocks, Hacking
13924@section Special agenda views 15645@section Special agenda views
13925@cindex agenda views, user-defined 15646@cindex agenda views, user-defined
13926 15647
15648@vindex org-agenda-skip-function
15649@vindex org-agenda-skip-function-global
13927Org provides a special hook that can be used to narrow down the selection 15650Org provides a special hook that can be used to narrow down the selection
13928made by these agenda views: @code{todo}, @code{alltodo}, @code{tags}, @code{tags-todo}, 15651made by these agenda views: @code{agenda}, @code{todo}, @code{alltodo},
13929@code{tags-tree}. You may specify a function that is used at each match to verify 15652@code{tags}, @code{tags-todo}, @code{tags-tree}. You may specify a function
13930if the match should indeed be part of the agenda view, and if not, how 15653that is used at each match to verify if the match should indeed be part of
13931much should be skipped. 15654the agenda view, and if not, how much should be skipped. You can specify a
15655global condition that will be applied to all agenda views, this condition
15656would be stored in the variable @code{org-agenda-skip-function-global}. More
15657commonly, such a definition is applied only to specific custom searches,
15658using @code{org-agenda-skip-function}.
13932 15659
13933Let's say you want to produce a list of projects that contain a WAITING 15660Let's say you want to produce a list of projects that contain a WAITING
13934tag anywhere in the project tree. Let's further assume that you have 15661tag anywhere in the project tree. Let's further assume that you have
@@ -13981,25 +15708,25 @@ particular, you may use the functions @code{org-agenda-skip-entry-if}
13981and @code{org-agenda-skip-subtree-if} in this form, for example: 15708and @code{org-agenda-skip-subtree-if} in this form, for example:
13982 15709
13983@table @code 15710@table @code
13984@item '(org-agenda-skip-entry-if 'scheduled) 15711@item (org-agenda-skip-entry-if 'scheduled)
13985Skip current entry if it has been scheduled. 15712Skip current entry if it has been scheduled.
13986@item '(org-agenda-skip-entry-if 'notscheduled) 15713@item (org-agenda-skip-entry-if 'notscheduled)
13987Skip current entry if it has not been scheduled. 15714Skip current entry if it has not been scheduled.
13988@item '(org-agenda-skip-entry-if 'deadline) 15715@item (org-agenda-skip-entry-if 'deadline)
13989Skip current entry if it has a deadline. 15716Skip current entry if it has a deadline.
13990@item '(org-agenda-skip-entry-if 'scheduled 'deadline) 15717@item (org-agenda-skip-entry-if 'scheduled 'deadline)
13991Skip current entry if it has a deadline, or if it is scheduled. 15718Skip current entry if it has a deadline, or if it is scheduled.
13992@item '(org-agenda-skip-entry-if 'todo '("TODO" "WAITING")) 15719@item (org-agenda-skip-entry-if 'todo '("TODO" "WAITING"))
13993Skip current entry if the TODO keyword is TODO or WAITING. 15720Skip current entry if the TODO keyword is TODO or WAITING.
13994@item '(org-agenda-skip-entry-if 'todo 'done) 15721@item (org-agenda-skip-entry-if 'todo 'done)
13995Skip current entry if the TODO keyword marks a DONE state. 15722Skip current entry if the TODO keyword marks a DONE state.
13996@item '(org-agenda-skip-entry-if 'timestamp) 15723@item (org-agenda-skip-entry-if 'timestamp)
13997Skip current entry if it has any timestamp, may also be deadline or scheduled. 15724Skip current entry if it has any timestamp, may also be deadline or scheduled.
13998@item '(org-agenda-skip-entry 'regexp "regular expression") 15725@item (org-agenda-skip-entry 'regexp "regular expression")
13999Skip current entry if the regular expression matches in the entry. 15726Skip current entry if the regular expression matches in the entry.
14000@item '(org-agenda-skip-entry 'notregexp "regular expression") 15727@item (org-agenda-skip-entry 'notregexp "regular expression")
14001Skip current entry unless the regular expression matches. 15728Skip current entry unless the regular expression matches.
14002@item '(org-agenda-skip-subtree-if 'regexp "regular expression") 15729@item (org-agenda-skip-subtree-if 'regexp "regular expression")
14003Same as above, but check and skip the entire subtree. 15730Same as above, but check and skip the entire subtree.
14004@end table 15731@end table
14005 15732
@@ -14051,7 +15778,7 @@ You may also modify parameters on the fly like this:
14051@example 15778@example
14052emacs -batch -l ~/.emacs \ 15779emacs -batch -l ~/.emacs \
14053 -eval '(org-batch-agenda "a" \ 15780 -eval '(org-batch-agenda "a" \
14054 org-agenda-span month \ 15781 org-agenda-span (quote month) \
14055 org-agenda-include-diary nil \ 15782 org-agenda-include-diary nil \
14056 org-agenda-files (quote ("~/org/project.org")))' \ 15783 org-agenda-files (quote ("~/org/project.org")))' \
14057 | lpr 15784 | lpr
@@ -14219,7 +15946,7 @@ does not need to preserve point. After evaluation, the cursor will be
14219moved to the end of the line (presumably of the headline of the 15946moved to the end of the line (presumably of the headline of the
14220processed entry) and search continues from there. Under some 15947processed entry) and search continues from there. Under some
14221circumstances, this may not produce the wanted results. For example, 15948circumstances, this may not produce the wanted results. For example,
14222if you have removed (e.g. archived) the current (sub)tree it could 15949if you have removed (e.g.@: archived) the current (sub)tree it could
14223mean that the next entry will be skipped entirely. In such cases, you 15950mean that the next entry will be skipped entirely. In such cases, you
14224can specify the position from where search should continue by making 15951can specify the position from where search should continue by making
14225FUNC set the variable `org-map-continue-from' to the desired buffer 15952FUNC set the variable `org-map-continue-from' to the desired buffer
@@ -14235,6 +15962,7 @@ SCOPE determines the scope of this command. It can be any of:
14235@example 15962@example
14236nil @r{the current buffer, respecting the restriction if any} 15963nil @r{the current buffer, respecting the restriction if any}
14237tree @r{the subtree started with the entry at point} 15964tree @r{the subtree started with the entry at point}
15965region @r{The entries within the active region, if any}
14238file @r{the current buffer, without restriction} 15966file @r{the current buffer, without restriction}
14239file-with-archives 15967file-with-archives
14240 @r{the current buffer, and any archives associated with it} 15968 @r{the current buffer, and any archives associated with it}
@@ -14312,7 +16040,7 @@ The following example counts the number of entries with TODO keyword
14312 16040
14313@uref{http://mobileorg.ncogni.to/, MobileOrg} is an application for the 16041@uref{http://mobileorg.ncogni.to/, MobileOrg} is an application for the
14314@i{iPhone/iPod Touch} series of devices, developed by Richard Moreland. 16042@i{iPhone/iPod Touch} series of devices, developed by Richard Moreland.
14315@i{MobileOrg} offers offline viewing and capture support for an Org-mode 16043@i{MobileOrg} offers offline viewing and capture support for an Org mode
14316system rooted on a ``real'' computer. It does also allow you to record 16044system rooted on a ``real'' computer. It does also allow you to record
14317changes to existing entries. Android users should check out 16045changes to existing entries. Android users should check out
14318@uref{http://wiki.github.com/matburt/mobileorg-android/, MobileOrg Android} 16046@uref{http://wiki.github.com/matburt/mobileorg-android/, MobileOrg Android}
@@ -14341,7 +16069,7 @@ in-buffer settings, but it will understand the logistics of TODO state
14341 16069
14342MobileOrg needs to interact with Emacs through a directory on a server. If you 16070MobileOrg needs to interact with Emacs through a directory on a server. If you
14343are using a public server, you should consider to encrypt the files that are 16071are using a public server, you should consider to encrypt the files that are
14344uploaded to the server. This can be done with Org-mode 7.02 and with 16072uploaded to the server. This can be done with Org mode 7.02 and with
14345@i{MobileOrg 1.5} (iPhone version), and you need an @file{openssl} 16073@i{MobileOrg 1.5} (iPhone version), and you need an @file{openssl}
14346installation on your system. To turn on encryption, set a password in 16074installation on your system. To turn on encryption, set a password in
14347@i{MobileOrg} and, on the Emacs side, configure the variable 16075@i{MobileOrg} and, on the Emacs side, configure the variable
@@ -14355,7 +16083,7 @@ The easiest way to create that directory is to use a free
14355@uref{http://dropbox.com,Dropbox.com} account@footnote{If you cannot use 16083@uref{http://dropbox.com,Dropbox.com} account@footnote{If you cannot use
14356Dropbox, or if your version of MobileOrg does not support it, you can use a 16084Dropbox, or if your version of MobileOrg does not support it, you can use a
14357webdav server. For more information, check out the documentation of MobileOrg and also this 16085webdav server. For more information, check out the documentation of MobileOrg and also this
14358@uref{http://orgmode.org/worg/org-faq.php#mobileorg_webdav, FAQ entry}.}. 16086@uref{http://orgmode.org/worg/org-faq.html#mobileorg_webdav, FAQ entry}.}.
14359When MobileOrg first connects to your Dropbox, it will create a directory 16087When MobileOrg first connects to your Dropbox, it will create a directory
14360@i{MobileOrg} inside the Dropbox. After the directory has been created, tell 16088@i{MobileOrg} inside the Dropbox. After the directory has been created, tell
14361Emacs about it: 16089Emacs about it:
@@ -14364,7 +16092,7 @@ Emacs about it:
14364(setq org-mobile-directory "~/Dropbox/MobileOrg") 16092(setq org-mobile-directory "~/Dropbox/MobileOrg")
14365@end lisp 16093@end lisp
14366 16094
14367Org-mode has commands to put files for @i{MobileOrg} into that directory, 16095Org mode has commands to put files for @i{MobileOrg} into that directory,
14368and to read captured notes from there. 16096and to read captured notes from there.
14369 16097
14370@node Pushing to MobileOrg, Pulling from MobileOrg, Setting up the staging area, MobileOrg 16098@node Pushing to MobileOrg, Pulling from MobileOrg, Setting up the staging area, MobileOrg
@@ -14373,11 +16101,11 @@ and to read captured notes from there.
14373This operation copies all files currently listed in @code{org-mobile-files} 16101This operation copies all files currently listed in @code{org-mobile-files}
14374to the directory @code{org-mobile-directory}. By default this list contains 16102to the directory @code{org-mobile-directory}. By default this list contains
14375all agenda files (as listed in @code{org-agenda-files}), but additional files 16103all agenda files (as listed in @code{org-agenda-files}), but additional files
14376can be included by customizing @code{org-mobiles-files}. File names will be 16104can be included by customizing @code{org-mobile-files}. File names will be
14377staged with paths relative to @code{org-directory}, so all files should be 16105staged with paths relative to @code{org-directory}, so all files should be
14378inside this directory. The push operation also creates a special Org file 16106inside this directory. The push operation also creates a special Org file
14379@file{agendas.org} with all custom agenda view defined by the 16107@file{agendas.org} with all custom agenda view defined by the
14380user@footnote{While creating the agendas, Org-mode will force ID properties 16108user@footnote{While creating the agendas, Org mode will force ID properties
14381on all referenced entries, so that these entries can be uniquely identified 16109on all referenced entries, so that these entries can be uniquely identified
14382if @i{MobileOrg} flags them for further action. If you do not want to get 16110if @i{MobileOrg} flags them for further action. If you do not want to get
14383these properties in so many entries, you can set the variable 16111these properties in so many entries, you can set the variable
@@ -14478,7 +16206,7 @@ Before I get to this list, a few special mentions are in order:
14478@table @i 16206@table @i
14479@item Bastien Guerry 16207@item Bastien Guerry
14480Bastien has written a large number of extensions to Org (most of them 16208Bastien has written a large number of extensions to Org (most of them
14481integrated into the core by now), including the LaTeX exporter and the plain 16209integrated into the core by now), including the @LaTeX{} exporter and the plain
14482list parser. His support during the early days, when he basically acted as 16210list parser. His support during the early days, when he basically acted as
14483co-maintainer, was central to the success of this project. Bastien also 16211co-maintainer, was central to the success of this project. Bastien also
14484invented Worg, helped establishing the Web presence of Org, and sponsors 16212invented Worg, helped establishing the Web presence of Org, and sponsors
@@ -14513,13 +16241,13 @@ know what I am missing here!
14513@i{Thomas Baumann} wrote @file{org-bbdb.el} and @file{org-mhe.el}. 16241@i{Thomas Baumann} wrote @file{org-bbdb.el} and @file{org-mhe.el}.
14514@item 16242@item
14515@i{Christophe Bataillon} created the great unicorn logo that we use on the 16243@i{Christophe Bataillon} created the great unicorn logo that we use on the
14516Org-mode website. 16244Org mode website.
14517@item 16245@item
14518@i{Alex Bochannek} provided a patch for rounding timestamps. 16246@i{Alex Bochannek} provided a patch for rounding timestamps.
14519@item 16247@item
14520@i{Jan Böcker} wrote @file{org-docview.el}. 16248@i{Jan Böcker} wrote @file{org-docview.el}.
14521@item 16249@item
14522@i{Brad Bozarth} showed how to pull RSS feed data into Org-mode files. 16250@i{Brad Bozarth} showed how to pull RSS feed data into Org mode files.
14523@item 16251@item
14524@i{Tom Breton} wrote @file{org-choose.el}. 16252@i{Tom Breton} wrote @file{org-choose.el}.
14525@item 16253@item
@@ -14695,7 +16423,7 @@ tweaks and features.
14695extension system, added support for mairix, and proposed the mapping API. 16423extension system, added support for mairix, and proposed the mapping API.
14696@item 16424@item
14697@i{Ulf Stegemann} created the table to translate special symbols to HTML, 16425@i{Ulf Stegemann} created the table to translate special symbols to HTML,
14698LaTeX, UTF-8, Latin-1 and ASCII. 16426@LaTeX{}, UTF-8, Latin-1 and ASCII.
14699@item 16427@item
14700@i{Andy Stewart} contributed code to @file{org-w3m.el}, to copy HTML content 16428@i{Andy Stewart} contributed code to @file{org-w3m.el}, to copy HTML content
14701with links transformation to Org syntax. 16429with links transformation to Org syntax.
@@ -14703,8 +16431,10 @@ with links transformation to Org syntax.
14703@i{David O'Toole} wrote @file{org-publish.el} and drafted the manual 16431@i{David O'Toole} wrote @file{org-publish.el} and drafted the manual
14704chapter about publishing. 16432chapter about publishing.
14705@item 16433@item
14706@i{Sebastien Vauban} reported many issues with LaTeX and BEAMER export and 16434@i{Jambunathan K} contributed the @acronym{ODT} exporter.
14707enabled source code highlighling in Gnus. 16435@item
16436@i{Sebastien Vauban} reported many issues with @LaTeX{} and BEAMER export and
16437enabled source code highlighting in Gnus.
14708@item 16438@item
14709@i{Stefan Vollmar} organized a video-recorded talk at the 16439@i{Stefan Vollmar} organized a video-recorded talk at the
14710Max-Planck-Institute for Neurology. He also inspired the creation of a 16440Max-Planck-Institute for Neurology. He also inspired the creation of a
@@ -14729,6 +16459,7 @@ work on a tty.
14729@item 16459@item
14730@i{Piotr Zielinski} wrote @file{org-mouse.el}, proposed agenda blocks 16460@i{Piotr Zielinski} wrote @file{org-mouse.el}, proposed agenda blocks
14731and contributed various ideas and code snippets. 16461and contributed various ideas and code snippets.
16462@item
14732@end itemize 16463@end itemize
14733 16464
14734 16465
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi
index f12942da2d3..92c309f5e98 100644
--- a/doc/misc/pcl-cvs.texi
+++ b/doc/misc/pcl-cvs.texi
@@ -6,8 +6,7 @@
6@c %**end of header 6@c %**end of header
7 7
8@copying 8@copying
9Copyright @copyright{} 1991-2011 9Copyright @copyright{} 1991-2012 Free Software Foundation, Inc.
10Free Software Foundation, Inc.
11 10
12@quotation 11@quotation
13Permission is granted to copy, distribute and/or modify this document 12Permission is granted to copy, distribute and/or modify this document
@@ -70,7 +69,7 @@ customize-group RET pcl-cvs @key{RET}} and to look at the documentation strings
70of the various commands and major modes for further information. 69of the various commands and major modes for further information.
71@c This manual is updated to release 2.5 of PCL-CVS. 70@c This manual is updated to release 2.5 of PCL-CVS.
72 71
73@insertcopying 72@insertcopying
74 73
75@end ifnottex 74@end ifnottex
76 75
@@ -136,10 +135,9 @@ Customization
136PCL-CVS is a front-end to CVS versions 1.9 and later. 135PCL-CVS is a front-end to CVS versions 1.9 and later.
137It concisely shows the present status of a checked out module in an 136It concisely shows the present status of a checked out module in an
138Emacs buffer and provides single-key access to the most frequently used CVS 137Emacs buffer and provides single-key access to the most frequently used CVS
139commands. 138commands. Note that the @code{vc-dir} command (@pxref{VC Directory
140For Emacs users accustomed to VC, PCL-CVS can be thought of as a replacement 139Mode, , , emacs, The GNU Emacs Manual}) provides similar
141for VC-dired (@pxref{VC Directory Mode, , , emacs, The GNU 140functionality, but for several version control systems, including CVS.
142Emacs Manual}) specifically designed for CVS.
143 141
144PCL-CVS was originally written many years ago by Per Cederqvist who 142PCL-CVS was originally written many years ago by Per Cederqvist who
145proudly maintained it until January 1996, at which point he released the 143proudly maintained it until January 1996, at which point he released the
@@ -1275,7 +1273,7 @@ will be called as @samp{cvs -d @var{cvs-cvsroot}@dots{}}. This can be
1275useful if your site has several repositories. 1273useful if your site has several repositories.
1276 1274
1277@item log-edit-require-final-newline 1275@item log-edit-require-final-newline
1278@c wordy to avoid unhderfull hbox 1276@c wordy to avoid underfull hbox
1279When you enter a log message by typing into the 1277When you enter a log message by typing into the
1280@samp{*cvs-commit-message*} buffer, PCL-CVS normally automatically 1278@samp{*cvs-commit-message*} buffer, PCL-CVS normally automatically
1281inserts a trailing newline, unless there already is one. This behavior 1279inserts a trailing newline, unless there already is one. This behavior
diff --git a/doc/misc/pgg.texi b/doc/misc/pgg.texi
index 9cb7a637a05..5aa9b1eb230 100644
--- a/doc/misc/pgg.texi
+++ b/doc/misc/pgg.texi
@@ -11,7 +11,7 @@
11This file describes PGG @value{VERSION}, an Emacs interface to various 11This file describes PGG @value{VERSION}, an Emacs interface to various
12PGP implementations. 12PGP implementations.
13 13
14Copyright @copyright{} 2001, 2003-2011 Free Software Foundation, Inc. 14Copyright @copyright{} 2001, 2003-2012 Free Software Foundation, Inc.
15 15
16@quotation 16@quotation
17Permission is granted to copy, distribute and/or modify this document 17Permission is granted to copy, distribute and/or modify this document
@@ -57,18 +57,18 @@ and various tools for secure communication. PGG also provides a simple
57user interface to encrypt, decrypt, sign, and verify MIME messages. 57user interface to encrypt, decrypt, sign, and verify MIME messages.
58 58
59@ifnottex 59@ifnottex
60@insertcopying 60@insertcopying
61@end ifnottex 61@end ifnottex
62 62
63@menu 63@menu
64* Overview:: What PGG is. 64* Overview:: What PGG is.
65* Prerequisites:: Complicated stuff you may have to do. 65* Prerequisites:: Complicated stuff you may have to do.
66* How to use:: Getting started quickly. 66* How to use:: Getting started quickly.
67* Architecture:: 67* Architecture::
68* Parsing OpenPGP packets:: 68* Parsing OpenPGP packets::
69* GNU Free Documentation License:: The license for this documentation. 69* GNU Free Documentation License:: The license for this documentation.
70* Function Index:: 70* Function Index::
71* Variable Index:: 71* Variable Index::
72@end menu 72@end menu
73 73
74@node Overview 74@node Overview
@@ -137,10 +137,10 @@ list autoload setting for desired functions as follows.
137@end lisp 137@end lisp
138 138
139@menu 139@menu
140* User Commands:: 140* User Commands::
141* Selecting an implementation:: 141* Selecting an implementation::
142* Caching passphrase:: 142* Caching passphrase::
143* Default user identity:: 143* Default user identity::
144@end menu 144@end menu
145 145
146@node User Commands 146@node User Commands
@@ -358,13 +358,13 @@ singleton object wrapped with the luna object system.
358 358
359Since PGG was designed for accessing and developing PGP functionality, 359Since PGG was designed for accessing and developing PGP functionality,
360the architecture had to be designed not just for interoperability but 360the architecture had to be designed not just for interoperability but
361also for extensiblity. In this chapter we explore the architecture 361also for extensibility. In this chapter we explore the architecture
362while finding out how to write the PGG back end. 362while finding out how to write the PGG back end.
363 363
364@menu 364@menu
365* Initializing:: 365* Initializing::
366* Back end methods:: 366* Back end methods::
367* Getting output:: 367* Getting output::
368@end menu 368@end menu
369 369
370@node Initializing 370@node Initializing
diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi
index 3e9ee928822..0174c3fa87f 100644
--- a/doc/misc/rcirc.texi
+++ b/doc/misc/rcirc.texi
@@ -5,7 +5,7 @@
5@c %**end of header 5@c %**end of header
6 6
7@copying 7@copying
8Copyright @copyright{} 2006-2011 8Copyright @copyright{} 2006-2012
9Free Software Foundation, Inc. 9Free Software Foundation, Inc.
10 10
11@quotation 11@quotation
@@ -524,7 +524,7 @@ your full name, you might want to set it to some pseudonym.
524 524
525@item rcirc-authinfo 525@item rcirc-authinfo
526@vindex rcirc-authinfo 526@vindex rcirc-authinfo
527@cindex authentification 527@cindex authentication
528@cindex identification 528@cindex identification
529@cindex nickserv 529@cindex nickserv
530@cindex login 530@cindex login
@@ -547,7 +547,7 @@ And here are the valid method symbols and the arguments they require:
547 547
548@table @code 548@table @code
549@item nickserv 549@item nickserv
550@cindex nickserv authentification 550@cindex nickserv authentication
551Use this symbol if you need to identify yourself as follows when 551Use this symbol if you need to identify yourself as follows when
552connecting to a network: @code{/msg nickserv identify secret}. The 552connecting to a network: @code{/msg nickserv identify secret}. The
553necessary arguments are the nickname you want to use this for, and the 553necessary arguments are the nickname you want to use this for, and the
@@ -558,7 +558,7 @@ pick a password for it. Contact @code{nickserv} and check out the
558details. (Using @code{/msg nickserv help}, for example.) 558details. (Using @code{/msg nickserv help}, for example.)
559 559
560@item chanserv 560@item chanserv
561@cindex chanserv authentification 561@cindex chanserv authentication
562Use this symbol if you need to identify yourself as follows if you want 562Use this symbol if you need to identify yourself as follows if you want
563to join a particular channel: @code{/msg chanserv identify #underground 563to join a particular channel: @code{/msg chanserv identify #underground
564secret}. The necessary arguments are the nickname and channel you want 564secret}. The necessary arguments are the nickname and channel you want
@@ -569,7 +569,7 @@ the password to use. Contact @code{chanserv} and check out the details.
569(Using @code{/msg chanserv help}, for example.) 569(Using @code{/msg chanserv help}, for example.)
570 570
571@item bitlbee 571@item bitlbee
572@cindex bitlbee authentification 572@cindex bitlbee authentication
573Use this symbol if you need to identify yourself in the Bitlbee channel 573Use this symbol if you need to identify yourself in the Bitlbee channel
574as follows: @code{identify secret}. The necessary arguments are the 574as follows: @code{identify secret}. The necessary arguments are the
575nickname you want to use this for, and the password to use. 575nickname you want to use this for, and the password to use.
@@ -585,7 +585,7 @@ Bitlbee acts like an IRC server, but in fact it is a gateway to a lot of
585other instant messaging services. You can either install Bitlbee 585other instant messaging services. You can either install Bitlbee
586locally or use a public Bitlbee server. There, you need to create an 586locally or use a public Bitlbee server. There, you need to create an
587account with a password. This is the nick and password you need to 587account with a password. This is the nick and password you need to
588provide for the bitlbee authentification method. 588provide for the bitlbee authentication method.
589 589
590Later, you will tell Bitlbee about your accounts and passwords on all 590Later, you will tell Bitlbee about your accounts and passwords on all
591the other instant messaging services, and Bitlbee will log you in. All 591the other instant messaging services, and Bitlbee will log you in. All
diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi
index 3944b712338..69092093af8 100644
--- a/doc/misc/reftex.texi
+++ b/doc/misc/reftex.texi
@@ -27,7 +27,7 @@ citations and indices for LaTeX documents with Emacs.
27This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for 27This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for
28@b{Ref@TeX{}} @value{VERSION} 28@b{Ref@TeX{}} @value{VERSION}
29 29
30Copyright @copyright{} 1997-2011 Free Software Foundation, Inc. 30Copyright @copyright{} 1997-2012 Free Software Foundation, Inc.
31 31
32@quotation 32@quotation
33Permission is granted to copy, distribute and/or modify this document 33Permission is granted to copy, distribute and/or modify this document
@@ -90,7 +90,7 @@ Don't be discouraged by the size of this manual, which covers
90Nutshell}). You can go back later to other parts of this document when 90Nutshell}). You can go back later to other parts of this document when
91needed. 91needed.
92 92
93@insertcopying 93@insertcopying
94 94
95@menu 95@menu
96* Introduction:: Quick-Start information. 96* Introduction:: Quick-Start information.
@@ -157,7 +157,7 @@ Citations
157* Citation Info:: View the corresponding database entry. 157* Citation Info:: View the corresponding database entry.
158* Chapterbib and Bibunits:: Multiple bibliographies in a Document. 158* Chapterbib and Bibunits:: Multiple bibliographies in a Document.
159* Citations Outside LaTeX:: How to make citations in Emails etc. 159* Citations Outside LaTeX:: How to make citations in Emails etc.
160* BibTeX Database Subsets:: Extract parts of a big database. 160* BibTeX Database Subsets:: Extract parts of a big database.
161 161
162Index Support 162Index Support
163 163
@@ -1672,7 +1672,7 @@ support for citations helps to select the correct key quickly.
1672* Citation Info:: View the corresponding database entry. 1672* Citation Info:: View the corresponding database entry.
1673* Chapterbib and Bibunits:: Multiple bibliographies in a Document. 1673* Chapterbib and Bibunits:: Multiple bibliographies in a Document.
1674* Citations Outside LaTeX:: How to make citations in Emails etc. 1674* Citations Outside LaTeX:: How to make citations in Emails etc.
1675* BibTeX Database Subsets:: Extract parts of a big database. 1675* BibTeX Database Subsets:: Extract parts of a big database.
1676@end menu 1676@end menu
1677 1677
1678@node Creating Citations, Citation Styles, , Citations 1678@node Creating Citations, Citation Styles, , Citations
@@ -1776,12 +1776,12 @@ separate @code{\cite} macro for each of it.
1776@item e 1776@item e
1777Create a new BibTeX database file which contains all @i{marked} entries 1777Create a new BibTeX database file which contains all @i{marked} entries
1778in the selection buffer. If no entries are marked, all entries are 1778in the selection buffer. If no entries are marked, all entries are
1779selected. 1779selected.
1780 1780
1781@item E 1781@item E
1782Create a new BibTeX database file which contains all @i{unmarked} 1782Create a new BibTeX database file which contains all @i{unmarked}
1783entries in the selection buffer. If no entries are marked, all entries 1783entries in the selection buffer. If no entries are marked, all entries
1784are selected. 1784are selected.
1785 1785
1786@item @key{TAB} 1786@item @key{TAB}
1787Enter a citation key with completion. This may also be a key which does 1787Enter a citation key with completion. This may also be a key which does
@@ -3215,7 +3215,7 @@ way.
3215 3215
3216Before calling a @b{Ref@TeX{}} function, the style hook should always 3216Before calling a @b{Ref@TeX{}} function, the style hook should always
3217test for the availability of the function, so that the style file will 3217test for the availability of the function, so that the style file will
3218also work for people who do not use @b{Ref@TeX{}}. 3218also work for people who do not use @b{Ref@TeX{}}.
3219 3219
3220Additions made with style files in the way described below remain local 3220Additions made with style files in the way described below remain local
3221to the current document. For example, if one package uses AMSTeX, the 3221to the current document. For example, if one package uses AMSTeX, the
@@ -3714,7 +3714,7 @@ Produce a list of all duplicate labels in the document.
3714Create a new BibTeX database file with all entries referenced in document. 3714Create a new BibTeX database file with all entries referenced in document.
3715The command prompts for a filename and writes the collected entries to 3715The command prompts for a filename and writes the collected entries to
3716that file. Only entries referenced in the current document with 3716that file. Only entries referenced in the current document with
3717any @code{\cite}-like macros are used. 3717any @code{\cite}-like macros are used.
3718The sequence in the new file is the same as it was in the old database. 3718The sequence in the new file is the same as it was in the old database.
3719@end deffn 3719@end deffn
3720 3720
@@ -3819,7 +3819,7 @@ only in that frame. So when creating that frame (with @kbd{d} key in an
3819ordinary TOC window), the automatic recentering is turned on. When the 3819ordinary TOC window), the automatic recentering is turned on. When the
3820frame gets destroyed, automatic recentering is turned off again. 3820frame gets destroyed, automatic recentering is turned off again.
3821 3821
3822This feature can be turned on and off from the menu 3822This feature can be turned on and off from the menu
3823(Ref->Options). 3823(Ref->Options).
3824@end defopt 3824@end defopt
3825 3825
@@ -4095,7 +4095,7 @@ Possible values for this option are:
4095t @r{This means to trust any label prefixes found.} 4095t @r{This means to trust any label prefixes found.}
4096regexp @r{If a regexp, only prefixes matched by the regexp are trusted.} 4096regexp @r{If a regexp, only prefixes matched by the regexp are trusted.}
4097list @r{List of accepted prefixes, as strings. The colon is part of} 4097list @r{List of accepted prefixes, as strings. The colon is part of}
4098 @r{the prefix, e.g. ("fn:" "eqn:" "item:").} 4098 @r{the prefix, e.g. ("fn:" "eqn:" "item:").}
4099nil @r{Never trust a label prefix.} 4099nil @r{Never trust a label prefix.}
4100@end example 4100@end example
4101The only disadvantage of using this feature is that the label context 4101The only disadvantage of using this feature is that the label context
@@ -4122,7 +4122,7 @@ Flags governing label insertion. The value has the form
4122(@var{derive} @var{prompt}) 4122(@var{derive} @var{prompt})
4123@end example 4123@end example
4124 4124
4125If @var{derive}is @code{t}, @b{Ref@TeX{}} will try to derive a sensible 4125If @var{derive} is @code{t}, @b{Ref@TeX{}} will try to derive a sensible
4126label from context. A section label for example will be derived from 4126label from context. A section label for example will be derived from
4127the section heading. The conversion of the context to a valid label is 4127the section heading. The conversion of the context to a valid label is
4128governed by the specifications given in 4128governed by the specifications given in
@@ -5179,11 +5179,11 @@ Fixed bug with @samp{%F} in a label prefix. Added new escapes
5179 5179
5180@noindent @b{Version 4.24} 5180@noindent @b{Version 4.24}
5181@itemize @bullet 5181@itemize @bullet
5182@item 5182@item
5183Inserting citation commands now prompts for optional arguments 5183Inserting citation commands now prompts for optional arguments
5184when called with a prefix argument. Related new options are 5184when called with a prefix argument. Related new options are
5185@code{reftex-cite-prompt-optional-args} and 5185@code{reftex-cite-prompt-optional-args} and
5186@code{reftex-cite-cleanup-optional-args}. 5186@code{reftex-cite-cleanup-optional-args}.
5187@item 5187@item
5188New option @code{reftex-trust-label-prefix}. Configure this variable 5188New option @code{reftex-trust-label-prefix}. Configure this variable
5189if you'd like RefTeX to base its classification of labels on prefixes. 5189if you'd like RefTeX to base its classification of labels on prefixes.
@@ -5199,7 +5199,7 @@ after words. Disabled indexing in comment lines.
5199 5199
5200@noindent @b{Version 4.22} 5200@noindent @b{Version 4.22}
5201@itemize @bullet 5201@itemize @bullet
5202@item 5202@item
5203New command @code{reftex-create-bibtex-file} to create a new database 5203New command @code{reftex-create-bibtex-file} to create a new database
5204with all entries referenced in the current document. 5204with all entries referenced in the current document.
5205@item 5205@item
@@ -5209,7 +5209,7 @@ from entries marked in a citation selection buffer.
5209 5209
5210@noindent @b{Version 4.21} 5210@noindent @b{Version 4.21}
5211@itemize @bullet 5211@itemize @bullet
5212@item 5212@item
5213Renaming labels from the toc buffer with key @kbd{M-%}. 5213Renaming labels from the toc buffer with key @kbd{M-%}.
5214@end itemize 5214@end itemize
5215 5215
@@ -5342,7 +5342,7 @@ default stuff which has been moved to a constant.
5342@item 5342@item
5343Environments like theorems can be placed into the TOC by putting 5343Environments like theorems can be placed into the TOC by putting
5344entries for @samp{"begin@{theorem@}"} in 5344entries for @samp{"begin@{theorem@}"} in
5345@code{reftex-setion-levels}. 5345@code{reftex-section-levels}.
5346@end itemize 5346@end itemize
5347 5347
5348@noindent @b{Version 4.06} 5348@noindent @b{Version 4.06}
@@ -5425,7 +5425,7 @@ File search further refined. New option @code{reftex-file-extensions}.
5425document, all labels and associated context. New keys @kbd{i}, @kbd{l}, 5425document, all labels and associated context. New keys @kbd{i}, @kbd{l},
5426and @kbd{c}. New options @code{reftex-toc-include-labels}, 5426and @kbd{c}. New options @code{reftex-toc-include-labels},
5427@code{reftex-toc-include-context}, 5427@code{reftex-toc-include-context},
5428@code{reftex-toc-include-file-boundaries}. 5428@code{reftex-toc-include-file-boundaries}.
5429@end itemize 5429@end itemize
5430 5430
5431@noindent @b{Version 3.41} 5431@noindent @b{Version 3.41}
diff --git a/doc/misc/remember.texi b/doc/misc/remember.texi
index e67d6155bbe..1dd7d1b6153 100644
--- a/doc/misc/remember.texi
+++ b/doc/misc/remember.texi
@@ -8,7 +8,7 @@
8@copying 8@copying
9This manual is for Remember Mode, version 1.9 9This manual is for Remember Mode, version 1.9
10 10
11Copyright @copyright{} 2001, 2004-2005, 2007-2011 11Copyright @copyright{} 2001, 2004-2005, 2007-2012
12Free Software Foundation, Inc. 12Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
@@ -389,8 +389,15 @@ The default priority for remembered mail messages.
389@section Saving to an Org Mode file 389@section Saving to an Org Mode file
390@cindex org mode, integration 390@cindex org mode, integration
391 391
392@ignore
393From org.texi:
394Up to version 6.36 Org used a special setup
395for @file{remember.el}. @file{org-remember.el} is still part of Org mode for
396backward compatibility with existing setups. You can find the documentation
397for org-remember at @url{http://orgmode.org/org-remember.pdf}.
398@end ignore
392For instructions on how to integrate Remember with Org Mode, 399For instructions on how to integrate Remember with Org Mode,
393consult @ref{Remember, , , org}. 400consult @ref{Capture, , , org}.
394 401
395@node GNU Free Documentation License, Concept Index, Backends, Top 402@node GNU Free Documentation License, Concept Index, Backends, Top
396@appendix GNU Free Documentation License 403@appendix GNU Free Documentation License
diff --git a/doc/misc/sasl.texi b/doc/misc/sasl.texi
index a75b237519c..a31d9ca5e38 100644
--- a/doc/misc/sasl.texi
+++ b/doc/misc/sasl.texi
@@ -10,7 +10,7 @@
10@copying 10@copying
11This file describes the Emacs SASL library, version @value{VERSION}. 11This file describes the Emacs SASL library, version @value{VERSION}.
12 12
13Copyright @copyright{} 2000, 2004-2011 13Copyright @copyright{} 2000, 2004-2012
14Free Software Foundation, Inc. 14Free Software Foundation, Inc.
15 15
16@quotation 16@quotation
diff --git a/doc/misc/sc.texi b/doc/misc/sc.texi
index 8853192af04..b921882af67 100644
--- a/doc/misc/sc.texi
+++ b/doc/misc/sc.texi
@@ -14,7 +14,7 @@
14This document describes Supercite, an Emacs package for citing and 14This document describes Supercite, an Emacs package for citing and
15attributing replies to mail and news messages. 15attributing replies to mail and news messages.
16 16
17Copyright @copyright{} 1993, 2001-2011 Free Software Foundation, Inc. 17Copyright @copyright{} 1993, 2001-2012 Free Software Foundation, Inc.
18 18
19@quotation 19@quotation
20Permission is granted to copy, distribute and/or modify this document 20Permission is granted to copy, distribute and/or modify this document
@@ -56,7 +56,7 @@ developing GNU and promoting software freedom.''
56@top Supercite 56@top Supercite
57@comment node-name, next, previous, up 57@comment node-name, next, previous, up
58 58
59@insertcopying 59@insertcopying
60 60
61The manual is divided 61The manual is divided
62into the following chapters. 62into the following chapters.
@@ -204,7 +204,7 @@ When the original message is cited by @code{sc-cite-original}, it will
204(optionally) be filled by Supercite. However, if you manually edit the 204(optionally) be filled by Supercite. However, if you manually edit the
205cited text and want to re-fill it, you must use an add-on package such 205cited text and want to re-fill it, you must use an add-on package such
206as @cite{filladapt} or @cite{gin-mode}. These packages can recognize 206as @cite{filladapt} or @cite{gin-mode}. These packages can recognize
207Supercited text and will fill them appropriately. Emacs' built-in 207Supercited text and will fill them appropriately. Emacs's built-in
208filling routines, e.g@. @code{fill-paragraph}, do not recognize cited 208filling routines, e.g@. @code{fill-paragraph}, do not recognize cited
209text and will not re-fill them properly because it cannot guess the 209text and will not re-fill them properly because it cannot guess the
210@code{fill-prefix} being used. 210@code{fill-prefix} being used.
@@ -786,7 +786,7 @@ pertaining to the MUAs you are using.
786One final note. After Supercite is loaded into your Emacs session, it 786One final note. After Supercite is loaded into your Emacs session, it
787runs the hook @code{sc-load-hook}. You can put any customizations into 787runs the hook @code{sc-load-hook}. You can put any customizations into
788this hook since it is only run once. This will not work, however, if 788this hook since it is only run once. This will not work, however, if
789your Emacs maintainer has put Supercite into your dumped Emacs' image. 789your Emacs maintainer has put Supercite into your dumped Emacs image.
790In that case, you can use the @code{sc-pre-hook} variable, but this will 790In that case, you can use the @code{sc-pre-hook} variable, but this will
791get executed every time @code{sc-cite-original} is called. @xref{Reply 791get executed every time @code{sc-cite-original} is called. @xref{Reply
792Buffer Initialization}.@refill 792Buffer Initialization}.@refill
@@ -1008,7 +1008,7 @@ fill each cited paragraph in the reply buffer.
1008 1008
1009I usually run with both these variables containing their default values. 1009I usually run with both these variables containing their default values.
1010When Supercite's automatic filling breaks on a particular message, I 1010When Supercite's automatic filling breaks on a particular message, I
1011will use Emacs' undo feature to undo back before the citation was 1011will use Emacs's undo feature to undo back before the citation was
1012applied to the original message. Then I'll toggle the variables and 1012applied to the original message. Then I'll toggle the variables and
1013manually cite those paragraphs that I don't want to fill or collapse 1013manually cite those paragraphs that I don't want to fill or collapse
1014whitespace on. @xref{Variable Toggling Shortcuts}.@refill 1014whitespace on. @xref{Variable Toggling Shortcuts}.@refill
@@ -1688,7 +1688,7 @@ Toggles the variable @code{sc-fixup-whitespace-p}.
1688 1688
1689@findex set-variable 1689@findex set-variable
1690The following commands let you set the value of multi-value variables, 1690The following commands let you set the value of multi-value variables,
1691in the same way that Emacs' @code{set-variable} does: 1691in the same way that Emacs's @code{set-variable} does:
1692 1692
1693@table @kbd 1693@table @kbd
1694@item C-c C-p C-t a 1694@item C-c C-p C-t a
@@ -1777,7 +1777,7 @@ old information is lost.@refill
1777@findex open-line 1777@findex open-line
1778@kindex C-c C-p o 1778@kindex C-c C-p o
1779@item @code{sc-open-line} (@kbd{C-c C-p o}) 1779@item @code{sc-open-line} (@kbd{C-c C-p o})
1780Similar to Emacs' standard @code{open-line} commands, but inserts the 1780Similar to Emacs's standard @code{open-line} commands, but inserts the
1781citation string in front of the new line. As with @code{open-line}, 1781citation string in front of the new line. As with @code{open-line},
1782an optional numeric argument inserts that many new lines.@refill 1782an optional numeric argument inserts that many new lines.@refill
1783@end table 1783@end table
@@ -1877,7 +1877,7 @@ been continuously added through the comments and suggestions of the
1877Supercite mailing list participants. 1877Supercite mailing list participants.
1878 1878
1879With version 3, Supercite underwent an almost complete rewrite, 1879With version 3, Supercite underwent an almost complete rewrite,
1880benefitting in a number of ways, including vast improvements in the 1880benefiting in a number of ways, including vast improvements in the
1881speed of performance, a big reduction in size of the code and in the use 1881speed of performance, a big reduction in size of the code and in the use
1882of Emacs resources, and a much cleaner and flexible internal 1882of Emacs resources, and a much cleaner and flexible internal
1883architecture. Most of this work was internal and not of very great 1883architecture. Most of this work was internal and not of very great
diff --git a/doc/misc/sem-user.texi b/doc/misc/sem-user.texi
index b17f1ab7e93..9f4dc72fea3 100644
--- a/doc/misc/sem-user.texi
+++ b/doc/misc/sem-user.texi
@@ -1,6 +1,6 @@
1@c This file is included by semantic.texi 1@c This file is included by semantic.texi
2 2
3@c Copyright (C) 1999-2005, 2007, 2009-2011 Free Software Foundation, Inc. 3@c Copyright (C) 1999-2005, 2007, 2009-2012 Free Software Foundation, Inc.
4 4
5@c Permission is granted to copy, distribute and/or modify this 5@c Permission is granted to copy, distribute and/or modify this
6@c document under the terms of the GNU Free Documentation License, 6@c document under the terms of the GNU Free Documentation License,
@@ -31,7 +31,7 @@ File,,,emacs,Emacs manual}.
31* Analyzer:: Semantic tools for analyzing code. 31* Analyzer:: Semantic tools for analyzing code.
32* Speedbar:: Using @semantic{} with the Speedbar. 32* Speedbar:: Using @semantic{} with the Speedbar.
33* SymRef:: Interface to symbol reference tools. 33* SymRef:: Interface to symbol reference tools.
34* MRU Bookmarks:: Managing tag ``bookmarks''. 34* MRU Bookmarks:: Managing tag "bookmarks".
35* Sticky Func Mode:: Showing declarations in the header line. 35* Sticky Func Mode:: Showing declarations in the header line.
36* Highlight Func Mode:: Highlight the current function declaration. 36* Highlight Func Mode:: Highlight the current function declaration.
37* Tag Decoration Mode:: Minor mode to decorate tags. 37* Tag Decoration Mode:: Minor mode to decorate tags.
@@ -176,7 +176,7 @@ Copy the current tag into a register
176kill it as well. This allows you to insert or jump to that tag with 176kill it as well. This allows you to insert or jump to that tag with
177the usual register commands. @xref{Registers,,,emacs,Emacs manual}. 177the usual register commands. @xref{Registers,,,emacs,Emacs manual}.
178 178
179@item \C-c , @kbd{up} 179@item C-c , @kbd{up}
180Transpose the current tag with the previous one 180Transpose the current tag with the previous one
181(@code{senator-transpose-tags-up}). 181(@code{senator-transpose-tags-up}).
182 182
@@ -382,7 +382,7 @@ them yourself.
382@deffn Option semanticdb-project-roots 382@deffn Option semanticdb-project-roots
383The value of this variable is a list of directories (strings) that are 383The value of this variable is a list of directories (strings) that are
384project roots. All subdirectories of a project root are considered 384project roots. All subdirectories of a project root are considered
385part of the same project. This variable can be overriden by 385part of the same project. This variable can be overridden by
386@code{semanticdb-project-root-functions}. 386@code{semanticdb-project-root-functions}.
387@end deffn 387@end deffn
388 388
@@ -547,7 +547,7 @@ reparsed regardless of their size.
547@end deffn 547@end deffn
548 548
549@deffn Option semantic-idle-scheduler-no-working-message 549@deffn Option semantic-idle-scheduler-no-working-message
550If non-@code{nil}, disable display of working messages whie reparsing. 550If non-@code{nil}, disable display of working messages while reparsing.
551@end deffn 551@end deffn
552 552
553@deffn Option semantic-idle-scheduler-working-in-modeline-flag 553@deffn Option semantic-idle-scheduler-working-in-modeline-flag
@@ -608,7 +608,7 @@ of parsing. The default is @code{t}.
608@node Debugging Idle Time Issues 608@node Debugging Idle Time Issues
609@subsection Debugging Idle Time Issues 609@subsection Debugging Idle Time Issues
610 610
611If you see an error signalled during idle time, it could be an 611If you see an error signaled during idle time, it could be an
612indication of a more serious issue elsewhere. It is not enough to 612indication of a more serious issue elsewhere. It is not enough to
613enable @code{debug-on-error}, because the idle scheduler inhibits the 613enable @code{debug-on-error}, because the idle scheduler inhibits the
614debugger. Instead, use the following commands to debug the error: 614debugger. Instead, use the following commands to debug the error:
@@ -880,7 +880,7 @@ command, like this:
880@end example 880@end example
881@end defun 881@end defun
882 882
883These commands are often more accurate than than the @code{find-tag} 883These commands are often more accurate than the @code{find-tag}
884command (@pxref{Tags,,,emacs,Emacs manual}), because the Semantic 884command (@pxref{Tags,,,emacs,Emacs manual}), because the Semantic
885Analyzer is context-sensitive. 885Analyzer is context-sensitive.
886 886
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi
index f3f11d29f17..ad8392c208b 100644
--- a/doc/misc/semantic.texi
+++ b/doc/misc/semantic.texi
@@ -24,7 +24,7 @@
24@copying 24@copying
25This manual documents the Semantic library and utilities. 25This manual documents the Semantic library and utilities.
26 26
27Copyright @copyright{} 1999-2005, 2007, 2009-2011 Free Software Foundation, Inc. 27Copyright @copyright{} 1999-2005, 2007, 2009-2012 Free Software Foundation, Inc.
28 28
29@quotation 29@quotation
30Permission is granted to copy, distribute and/or modify this document 30Permission is granted to copy, distribute and/or modify this document
@@ -306,7 +306,7 @@ Files associated with tags. Goto-tag, file for include, and file for
306a prototype. 306a prototype.
307 307
308@item semantic-tag-ls.el 308@item semantic-tag-ls.el
309Language dependant features of a tag, such as parent calculation, slot 309Language dependent features of a tag, such as parent calculation, slot
310protection, and other states like abstract, virtual, static, and leaf. 310protection, and other states like abstract, virtual, static, and leaf.
311 311
312@item semantic-dep.el 312@item semantic-dep.el
@@ -349,7 +349,7 @@ This file also provides support for @code{semanticdb-minor-mode},
349which automatically associates files with tables in databases so that 349which automatically associates files with tables in databases so that
350tags are @emph{saved} while a buffer is not in memory. 350tags are @emph{saved} while a buffer is not in memory.
351 351
352The database and tables both also provide applicate cache information, 352The database and tables both also provide applicable cache information,
353and cache flushing system. The semanticdb search routines use caches 353and cache flushing system. The semanticdb search routines use caches
354to save datastructures that are complex to calculate. 354to save datastructures that are complex to calculate.
355 355
@@ -380,7 +380,7 @@ with the search results format.
380 380
381@item semanticdb-ref.el 381@item semanticdb-ref.el
382Tracks crossreferences. Cross references are needed when buffer is 382Tracks crossreferences. Cross references are needed when buffer is
383reparsed, and must alert other tables that any dependant caches may 383reparsed, and must alert other tables that any dependent caches may
384need to be flushed. References are in the form of include files. 384need to be flushed. References are in the form of include files.
385 385
386@end table 386@end table
@@ -421,7 +421,7 @@ local variables, and tag lists in scope for various reasons, such as
421C++ using statements. 421C++ using statements.
422 422
423@item semanticdb-typecache.el 423@item semanticdb-typecache.el
424The typecache is part of @code{semanticdb}, but is used primarilly by 424The typecache is part of @code{semanticdb}, but is used primarily by
425the analyzer to look up datatypes and complex names. The typecache is 425the analyzer to look up datatypes and complex names. The typecache is
426bound across source files and builds a master lookup table for data 426bound across source files and builds a master lookup table for data
427type names. 427type names.
@@ -536,7 +536,7 @@ the buffer.
536 536
537@item bovine parser 537@item bovine parser
538A parser using the bovine parser generator. It is an LL parser 538A parser using the bovine parser generator. It is an LL parser
539suitible for small simple languages. 539suitable for small simple languages.
540 540
541@item context 541@item context
542 542
@@ -606,14 +606,14 @@ Emacs Lisp. It is an LALR parser suitable for complex languages.
606@c LocalWords: concat concocting const constantness ctxt Decl defcustom 606@c LocalWords: concat concocting const constantness ctxt Decl defcustom
607@c LocalWords: deffn deffnx defun defvar destructor's dfn diff dir 607@c LocalWords: deffn deffnx defun defvar destructor's dfn diff dir
608@c LocalWords: doc docstring EDE EIEIO elisp emacsman emph enum 608@c LocalWords: doc docstring EDE EIEIO elisp emacsman emph enum
609@c LocalWords: eq Exp EXPANDFULL expresssion fn foo func funcall 609@c LocalWords: eq Exp EXPANDFULL expression fn foo func funcall
610@c LocalWords: ia ids iff ifinfo imenu imenus init int isearch itemx java kbd 610@c LocalWords: ia ids iff ifinfo imenu imenus init int isearch itemx java kbd
611@c LocalWords: keymap keywordtable lang languagemode lexer lexing Ludlam 611@c LocalWords: keymap keywordtable lang languagemode lexer lexing Ludlam
612@c LocalWords: menubar metaparent metaparents min minibuffer Misc mode's 612@c LocalWords: menubar metaparent metaparents min minibuffer Misc mode's
613@c LocalWords: multitable NAvigaTOR noindent nomedian nonterm noselect 613@c LocalWords: multitable NAvigaTOR noindent nomedian nonterm noselect
614@c LocalWords: nosnarf obarray OLE OO outputfile paren parsetable POINT's 614@c LocalWords: nosnarf obarray OLE OO outputfile paren parsetable POINT's
615@c LocalWords: popup positionalonly positiononly positionormarker pre 615@c LocalWords: popup positionalonly positiononly positionormarker pre
616@c LocalWords: printf printindex Programmatically pt punctuations quotemode 616@c LocalWords: printf printindex Programmatically pt quotemode
617@c LocalWords: ref regex regexp Regexps reparse resetfile samp sb 617@c LocalWords: ref regex regexp Regexps reparse resetfile samp sb
618@c LocalWords: scopestart SEmantic semanticdb setfilename setq 618@c LocalWords: scopestart SEmantic semanticdb setfilename setq
619@c LocalWords: settitle setupfunction sexp sp SPC speedbar speedbar's 619@c LocalWords: settitle setupfunction sexp sp SPC speedbar speedbar's
diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi
index d9739b93925..8cd2ee813ec 100644
--- a/doc/misc/ses.texi
+++ b/doc/misc/ses.texi
@@ -11,7 +11,7 @@
11@copying 11@copying
12This file documents SES: the Simple Emacs Spreadsheet. 12This file documents SES: the Simple Emacs Spreadsheet.
13 13
14Copyright @copyright{} 2002-2011 Free Software Foundation, Inc. 14Copyright @copyright{} 2002-2012 Free Software Foundation, Inc.
15 15
16@quotation 16@quotation
17Permission is granted to copy, distribute and/or modify this document 17Permission is granted to copy, distribute and/or modify this document
@@ -446,7 +446,7 @@ list.
446execute when starting SES mode for a buffer). 446execute when starting SES mode for a buffer).
447 447
448The variable @code{safe-functions} is a list of possibly-unsafe 448The variable @code{safe-functions} is a list of possibly-unsafe
449functions to be treated as safe when analysing formulas and printers. 449functions to be treated as safe when analyzing formulas and printers.
450@xref{Virus protection}. Before customizing @code{safe-functions}, 450@xref{Virus protection}. Before customizing @code{safe-functions},
451think about how much you trust the person who's suggesting this 451think about how much you trust the person who's suggesting this
452change. The value @code{t} turns off all anti-virus protection. A 452change. The value @code{t} turns off all anti-virus protection. A
diff --git a/doc/misc/sieve.texi b/doc/misc/sieve.texi
index 64fd92f40ca..d13f25c2a55 100644
--- a/doc/misc/sieve.texi
+++ b/doc/misc/sieve.texi
@@ -11,7 +11,7 @@
11@copying 11@copying
12This file documents the Emacs Sieve package, for server-side mail filtering. 12This file documents the Emacs Sieve package, for server-side mail filtering.
13 13
14Copyright @copyright{} 2001-2011 Free Software Foundation, Inc. 14Copyright @copyright{} 2001-2012 Free Software Foundation, Inc.
15 15
16@quotation 16@quotation
17Permission is granted to copy, distribute and/or modify this document 17Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/smtpmail.texi b/doc/misc/smtpmail.texi
index 1d4bbbff4ac..4e4df3f0bbb 100644
--- a/doc/misc/smtpmail.texi
+++ b/doc/misc/smtpmail.texi
@@ -3,7 +3,7 @@
3@settitle Emacs SMTP Library 3@settitle Emacs SMTP Library
4@syncodeindex vr fn 4@syncodeindex vr fn
5@copying 5@copying
6Copyright @copyright{} 2003-2011 6Copyright @copyright{} 2003-2012
7Free Software Foundation, Inc. 7Free Software Foundation, Inc.
8 8
9@quotation 9@quotation
@@ -47,6 +47,7 @@ developing GNU and promoting software freedom.''
47* How Mail Works:: Brief introduction to mail concepts. 47* How Mail Works:: Brief introduction to mail concepts.
48* Emacs Speaks SMTP:: How to use the SMTP library in Emacs. 48* Emacs Speaks SMTP:: How to use the SMTP library in Emacs.
49* Authentication:: Authenticating yourself to the server. 49* Authentication:: Authenticating yourself to the server.
50* Encryption:: Protecting your connection to the server.
50* Queued delivery:: Sending mail without an internet connection. 51* Queued delivery:: Sending mail without an internet connection.
51* Server workarounds:: Mail servers with special requirements. 52* Server workarounds:: Mail servers with special requirements.
52* Debugging:: Tracking down problems. 53* Debugging:: Tracking down problems.
@@ -129,24 +130,37 @@ be useful if you don't have a MTA set up on your host, or if your
129machine is often disconnected from the internet. 130machine is often disconnected from the internet.
130 131
131 Sending mail via SMTP requires configuring your mail user agent 132 Sending mail via SMTP requires configuring your mail user agent
132(@pxref{Mail Methods,,,emacs}) to use the SMTP library. How to do 133(@pxref{Mail Methods,,,emacs}) to use the SMTP library. If you
133this should be described for each mail user agent; for the default 134have not configured anything, then in Emacs 24.1 and later the first
134mail user agent the variable @code{send-mail-function} (@pxref{Mail 135time you try to send a mail Emacs will ask how you want to send
135Sending,,,emacs}) is used; for the Message and Gnus user agents the 136mail. To use this library, answer @samp{smtp} when prompted. Emacs
136variable @code{message-send-mail-function} (@pxref{Mail 137then asks for the name of the SMTP server.
137Variables,,,message}) is used. 138
138 139 If you prefer, or if you are using a non-standard mail user agent,
139@example 140you can configure this yourself. The normal way to do this is to set
140;; If you use the default mail user agent. 141the variable @code{send-mail-function} (@pxref{Mail
142Sending,,,emacs}) to the value you want to use. To use this library:
143
144@smallexample
141(setq send-mail-function 'smtpmail-send-it) 145(setq send-mail-function 'smtpmail-send-it)
142;; If you use Message or Gnus. 146@end smallexample
143(setq message-send-mail-function 'smtpmail-send-it) 147
144@end example 148@noindent
149The default value for this variable is @code{sendmail-query-once},
150which interactively asks how you want to send mail.
151
152Your mail user agent might use a different variable for this purpose.
153It should inherit from @code{send-mail-function}, but if it does not,
154or if you prefer, you can set that variable directly. Consult your
155mail user agent's documentation for more details. For example,
156(@pxref{Mail Variables,,,message}).
145 157
146 Before using SMTP you must find out the hostname of the SMTP server 158 Before using SMTP you must find out the hostname of the SMTP server
147to use. Your system administrator should provide you with this 159to use. Your system administrator or mail service provider should
148information, but often it is the same as the server you receive mail 160supply this information. Often it is some variant of the server you
149from. 161receive mail from. If your email address is
162@samp{yourname@@example.com}, then the name of the SMTP server is
163may be something like @samp{smtp.example.com}.
150 164
151@table @code 165@table @code
152@item smtpmail-smtp-server 166@item smtpmail-smtp-server
@@ -201,101 +215,114 @@ The following example illustrates what you could put in
201@node Authentication 215@node Authentication
202@chapter Authentication 216@chapter Authentication
203 217
218@cindex password
219@cindex user name
220Most SMTP servers require clients to authenticate themselves before
221they are allowed to send mail. Authentication usually involves
222supplying a user name and password.
223
224If you have not configured anything, then the first time you try to
225send mail via a server, Emacs (version 24.1 and later) prompts you
226for the user name and password to use, and then offers to save the
227information. By default, Emacs stores authentication information in
228a file @file{~/.authinfo}.
229
230@cindex authinfo
231The basic format of the @file{~/.authinfo} file is one line for each
232set of credentials. Each line consists of pairs of variables and
233values. A simple example would be:
234
235@smallexample
236machine mail.example.org port 25 login myuser password mypassword
237@end smallexample
238
239@noindent
240This specifies that when using the SMTP server called @samp{mail.example.org}
241on port 25, Emacs should send the user name @samp{myuser} and the
242password @samp{mypassword}. Either or both of the login and password
243fields may be absent, in which case Emacs prompts for the information
244when you try to send mail. (This replaces the old
245@code{smtpmail-auth-credentials} variable used prior to Emacs 24.1.)
246
247@vindex smtpmail-smtp-user
248 When the SMTP library connects to a host on a certain port, it
249searches the @file{~/.authinfo} file for a matching entry. If an
250entry is found, the authentication process is invoked and the
251credentials are used. If the variable @code{smtpmail-smtp-user} is
252set to a non-@code{nil} value, then only entries for that user are
253considered. For more information on the @file{~/.authinfo}
254file, @pxref{Top,,auth-source, auth, Emacs auth-source Library}.
255
204@cindex SASL 256@cindex SASL
205@cindex CRAM-MD5 257@cindex CRAM-MD5
258@cindex PLAIN
206@cindex LOGIN 259@cindex LOGIN
260The process by which the SMTP library authenticates you to the server
261is known as ``Simple Authentication and Security Layer'' (SASL).
262There are various SASL mechanisms, and this library supports three of
263them: CRAM-MD5, PLAIN, and LOGIN. It tries each of them, in that order,
264until one succeeds. The first uses a form of encryption to obscure
265your password, while the other two do not.
266
267
268@node Encryption
269@chapter Encryption
270
207@cindex STARTTLS 271@cindex STARTTLS
208@cindex TLS 272@cindex TLS
209@cindex SSL 273@cindex SSL
210Many environments require SMTP clients to authenticate themselves 274For greater security, you can encrypt your connection to the SMTP
211before they are allowed to route mail via a server. The two following 275server. If this is to work, both Emacs and the server must support it.
212variables contains the authentication information needed for this. 276
213 277The SMTP library supports the ``Transport Layer Security'' (TLS), and
214The first variable, @code{smtpmail-auth-credentials}, instructs the 278the older ``Secure Sockets Layer'' (SSL) encryption mechanisms.
215SMTP library to use a SASL authentication step, currently only the 279It also supports STARTTLS, which is a variant of TLS in which the
216CRAM-MD5 and LOGIN mechanisms are supported and will be selected in 280initial connection to the server is made in plain text, requesting a
217that order if the server support both. 281switch to an encrypted channel for the rest of the process.
218 282
219The second variable, @code{smtpmail-starttls-credentials}, instructs 283@vindex smtpmail-stream-type
220the SMTP library to connect to the server using STARTTLS. This means 284The variable @code{smtpmail-stream-type} controls what form of
221the protocol exchange may be integrity protected and confidential by 285connection the SMTP library uses. The default value is @code{nil},
222using the Transport Layer Security (TLS) protocol, and optionally also 286which means to use a plain connection, but try to switch to a STARTTLS
223authentication of the client and server. 287encrypted connection if the server supports it. Other possible values
224 288are: @code{starttls} - insist on STARTTLS; @code{ssl} - use TLS/SSL;
225TLS is a security protocol that is also known as SSL, although 289and @code{plain} - no encryption.
226strictly speaking, SSL is an older variant of TLS. TLS is backwards 290
227compatible with SSL. In most mundane situations, the two terms are 291Use of any form of TLS/SSL requires support in Emacs. You can either
228equivalent. 292use the built-in support (in Emacs 24.1 and later), or the
229 293@file{starttls.el} Lisp library. The built-in support uses the GnuTLS
230The TLS feature uses the elisp package @file{starttls.el} (see it for 294@footnote{@url{http://www.gnu.org/software/gnutls/}} library.
231more information on customization), which in turn require that at 295If your Emacs has GnuTLS support built-in, the function
232least one of the following external tools are installed: 296@code{gnutls-available-p} is defined and returns non-@code{nil}.
297Otherwise, you must use the @file{starttls.el} library (see that file for
298more information on customization options, etc.). The Lisp library
299requires one of the following external tools to be installed:
233 300
234@enumerate 301@enumerate
235@item 302@item
236The GNUTLS command line tool @samp{gnutls-cli}, you can get it from 303The GnuTLS command line tool @samp{gnutls-cli}, which you can get from
237@url{http://www.gnu.org/software/gnutls/}. This is the recommended 304@url{http://www.gnu.org/software/gnutls/}. This is the recommended
238tool, mainly because it can verify the server certificates. 305tool, mainly because it can verify server certificates.
239 306
240@item 307@item
241The @samp{starttls} external program, you can get it from 308The @samp{starttls} external program, which you can get from
242@file{starttls-*.tar.gz} from @uref{ftp://ftp.opaopa.org/pub/elisp/}. 309@file{starttls-*.tar.gz} from @uref{ftp://ftp.opaopa.org/pub/elisp/}.
243@end enumerate 310@end enumerate
244 311
245It is not uncommon to use both these mechanisms, e.g., to use STARTTLS 312@cindex certificates
246to achieve integrity and confidentiality and then use SASL for client 313@cindex keys
247authentication. 314The SMTP server may also request that you verify your identity by
315sending a certificate and the associated encryption key to the server.
316If you need to do this, you can use an @file{~/.authinfo} entry like this:
248 317
249@table @code 318@smallexample
250@item smtpmail-auth-credentials 319machine mail.example.org port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert"
251@vindex smtpmail-auth-credentials 320@end smallexample
252 The variable @code{smtpmail-auth-credentials} contains a list of
253hostname, port, username and password tuples. When the SMTP library
254connects to a host on a certain port, this variable is searched to
255find a matching entry for that hostname and port. If an entry is
256found, the authentication process is invoked and the credentials are
257used.
258
259The hostname field follows the same format as
260@code{smtpmail-smtp-server} (i.e., a string) and the port field the
261same format as @code{smtpmail-smtp-service} (i.e., a string or an
262integer). The username and password fields, which either can be
263@code{nil} to indicate that the user is prompted for the value
264interactively, should be strings with the username and password,
265respectively, information that is normally provided by system
266administrators.
267
268@item smtpmail-starttls-credentials
269@vindex smtpmail-starttls-credentials
270 The variable @code{smtpmail-starttls-credentials} contains a list of
271tuples with hostname, port, name of file containing client key, and
272name of file containing client certificate. The processing is similar
273to the previous variable. The client key and certificate may be
274@code{nil} if you do not wish to use client authentication.
275@end table
276 321
277The following example illustrates what you could put in 322@noindent
278@file{~/.emacs} to enable both SASL authentication and STARTTLS. The 323(This replaces the old @code{smtpmail-starttls-credentials} variable used
279server name (@code{smtpmail-smtp-server}) is @var{hostname}, the 324prior to Emacs 24.1.)
280server port (@code{smtpmail-smtp-service}) is @var{port}, and the
281username and password are @var{username} and @var{password}
282respectively.
283 325
284@example
285;; Authenticate using this username and password against my server.
286(setq smtpmail-auth-credentials
287 '(("@var{hostname}" "@var{port}" "@var{username}" "@var{password}")))
288
289;; Note that if @var{port} is an integer, you must not quote it as a
290;; string. Normally @var{port} should be the integer 25, and the example
291;; become:
292(setq smtpmail-auth-credentials
293 '(("@var{hostname}" 25 "@var{username}" "@var{password}")))
294
295;; Use STARTTLS without authentication against the server.
296(setq smtpmail-starttls-credentials
297 '(("@var{hostname}" "@var{port}" nil nil)))
298@end example
299 326
300@node Queued delivery 327@node Queued delivery
301@chapter Queued delivery 328@chapter Queued delivery
diff --git a/doc/misc/speedbar.texi b/doc/misc/speedbar.texi
index 9dc47e4574c..6604dc5f0d0 100644
--- a/doc/misc/speedbar.texi
+++ b/doc/misc/speedbar.texi
@@ -4,7 +4,7 @@
4@syncodeindex fn cp 4@syncodeindex fn cp
5 5
6@copying 6@copying
7Copyright @copyright{} 1999-2011 Free Software Foundation, Inc. 7Copyright @copyright{} 1999-2012 Free Software Foundation, Inc.
8 8
9@quotation 9@quotation
10Permission is granted to copy, distribute and/or modify this document 10Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index fd22fd68567..3298298bb9d 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/texinfo.tex
@@ -3,7 +3,7 @@
3% Load plain if necessary, i.e., if running under initex. 3% Load plain if necessary, i.e., if running under initex.
4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi 4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
5% 5%
6\def\texinfoversion{2011-05-23.16} 6\def\texinfoversion{2011-09-23.09}
7% 7%
8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -3955,13 +3955,13 @@ end
3955% If so, set to same dimension as multitablelinespace. 3955% If so, set to same dimension as multitablelinespace.
3956\ifdim\multitableparskip>\multitablelinespace 3956\ifdim\multitableparskip>\multitablelinespace
3957\global\multitableparskip=\multitablelinespace 3957\global\multitableparskip=\multitablelinespace
3958\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller 3958\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
3959 %% than skip between lines in the table. 3959 % than skip between lines in the table.
3960\fi% 3960\fi%
3961\ifdim\multitableparskip=0pt 3961\ifdim\multitableparskip=0pt
3962\global\multitableparskip=\multitablelinespace 3962\global\multitableparskip=\multitablelinespace
3963\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller 3963\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
3964 %% than skip between lines in the table. 3964 % than skip between lines in the table.
3965\fi} 3965\fi}
3966 3966
3967 3967
@@ -5855,7 +5855,6 @@ end
5855 % This is purely so the last item on the list is a known \penalty > 5855 % This is purely so the last item on the list is a known \penalty >
5856 % 10000. This is so \startdefun can avoid allowing breakpoints after 5856 % 10000. This is so \startdefun can avoid allowing breakpoints after
5857 % section headings. Otherwise, it would insert a valid breakpoint between: 5857 % section headings. Otherwise, it would insert a valid breakpoint between:
5858 %
5859 % @section sec-whatever 5858 % @section sec-whatever
5860 % @deffn def-whatever 5859 % @deffn def-whatever
5861 \penalty 10001 5860 \penalty 10001
@@ -6273,6 +6272,12 @@ end
6273 \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip 6272 \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
6274 % Flag to tell @lisp, etc., not to narrow margin. 6273 % Flag to tell @lisp, etc., not to narrow margin.
6275 \let\nonarrowing = t% 6274 \let\nonarrowing = t%
6275 %
6276 % If this cartouche directly follows a sectioning command, we need the
6277 % \parskip glue (backspaced over by default) or the cartouche can
6278 % collide with the section heading.
6279 \ifnum\lastpenalty>10000 \vskip\parskip \fi
6280 %
6276 \vbox\bgroup 6281 \vbox\bgroup
6277 \baselineskip=0pt\parskip=0pt\lineskip=0pt 6282 \baselineskip=0pt\parskip=0pt\lineskip=0pt
6278 \carttop 6283 \carttop
@@ -6286,7 +6291,7 @@ end
6286 \lineskip=\normlskip 6291 \lineskip=\normlskip
6287 \parskip=\normpskip 6292 \parskip=\normpskip
6288 \vskip -\parskip 6293 \vskip -\parskip
6289 \comment % For explanation, see the end of \def\group. 6294 \comment % For explanation, see the end of def\group.
6290} 6295}
6291\def\Ecartouche{% 6296\def\Ecartouche{%
6292 \ifhmode\par\fi 6297 \ifhmode\par\fi
@@ -7242,9 +7247,15 @@ end
7242\def\macroxxx#1{% 7247\def\macroxxx#1{%
7243 \getargs{#1}% now \macname is the macname and \argl the arglist 7248 \getargs{#1}% now \macname is the macname and \argl the arglist
7244 \ifx\argl\empty % no arguments 7249 \ifx\argl\empty % no arguments
7245 \paramno=0 7250 \paramno=0\relax
7246 \else 7251 \else
7247 \expandafter\parsemargdef \argl;% 7252 \expandafter\parsemargdef \argl;%
7253 \if\paramno>256\relax
7254 \ifx\eTeXversion\thisisundefined
7255 \errhelp = \EMsimple
7256 \errmessage{You need eTeX to compile a file with macros with more than 256 arguments}
7257 \fi
7258 \fi
7248 \fi 7259 \fi
7249 \if1\csname ismacro.\the\macname\endcsname 7260 \if1\csname ismacro.\the\macname\endcsname
7250 \message{Warning: redefining \the\macname}% 7261 \message{Warning: redefining \the\macname}%
@@ -7294,9 +7305,17 @@ end
7294\def\getmacname#1 #2\relax{\macname={#1}} 7305\def\getmacname#1 #2\relax{\macname={#1}}
7295\def\getmacargs#1{\def\argl{#1}} 7306\def\getmacargs#1{\def\argl{#1}}
7296 7307
7308% For macro processing make @ a letter so that we can make Texinfo private macro names.
7309\edef\texiatcatcode{\the\catcode`\@}
7310\catcode `@=11\relax
7311
7297% Parse the optional {params} list. Set up \paramno and \paramlist 7312% Parse the optional {params} list. Set up \paramno and \paramlist
7298% so \defmacro knows what to do. Define \macarg.blah for each blah 7313% so \defmacro knows what to do. Define \macarg.BLAH for each BLAH
7299% in the params list to be ##N where N is the position in that list. 7314% in the params list to some hook where the argument si to be expanded. If
7315% there are less than 10 arguments that hook is to be replaced by ##N where N
7316% is the position in that list, that is to say the macro arguments are to be
7317% defined `a la TeX in the macro body.
7318%
7300% That gets used by \mbodybackslash (above). 7319% That gets used by \mbodybackslash (above).
7301% 7320%
7302% We need to get `macro parameter char #' into several definitions. 7321% We need to get `macro parameter char #' into several definitions.
@@ -7306,12 +7325,33 @@ end
7306% 7325%
7307% The same technique is used to protect \eatspaces till just before 7326% The same technique is used to protect \eatspaces till just before
7308% the macro is used. 7327% the macro is used.
7309 7328%
7329% If there are 10 or more arguments, a different technique is used, where the
7330% hook remains in the body, and when macro is to be expanded the body is
7331% processed again to replace the arguments.
7332%
7333% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the
7334% argument N value and then \edef the body (nothing else will expand because of
7335% the catcode regime underwhich the body was input).
7336%
7337% If you compile with TeX (not eTeX), and you have macros with 10 or more
7338% arguments, you need that no macro has more than 256 arguments, otherwise an
7339% error is produced.
7310\def\parsemargdef#1;{% 7340\def\parsemargdef#1;{%
7311 \paramno=0\def\paramlist{}% 7341 \paramno=0\def\paramlist{}%
7312 \let\hash\relax 7342 \let\hash\relax
7313 \let\xeatspaces\relax 7343 \let\xeatspaces\relax
7314 \parsemargdefxxx#1,;,% 7344 \parsemargdefxxx#1,;,%
7345 % In case that there are 10 or more arguments we parse again the arguments
7346 % list to set new definitions for the \macarg.BLAH macros corresponding to
7347 % each BLAH argument. It was anyhow needed to parse already once this list
7348 % in order to count the arguments, and as macros with at most 9 arguments
7349 % are by far more frequent than macro with 10 or more arguments, defining
7350 % twice the \macarg.BLAH macros does not cost too much processing power.
7351 \ifnum\paramno<10\relax\else
7352 \paramno0\relax
7353 \parsemmanyargdef@@#1,;,% 10 or more arguments
7354 \fi
7315} 7355}
7316\def\parsemargdefxxx#1,{% 7356\def\parsemargdefxxx#1,{%
7317 \if#1;\let\next=\relax 7357 \if#1;\let\next=\relax
@@ -7322,16 +7362,205 @@ end
7322 \edef\paramlist{\paramlist\hash\the\paramno,}% 7362 \edef\paramlist{\paramlist\hash\the\paramno,}%
7323 \fi\next} 7363 \fi\next}
7324 7364
7365\def\parsemmanyargdef@@#1,{%
7366 \if#1;\let\next=\relax
7367 \else
7368 \let\next=\parsemmanyargdef@@
7369 \edef\tempb{\eatspaces{#1}}%
7370 \expandafter\def\expandafter\tempa
7371 \expandafter{\csname macarg.\tempb\endcsname}%
7372 % Note that we need some extra \noexpand\noexpand, this is because we
7373 % don't want \the to be expanded in the \parsermacbody as it uses an
7374 % \xdef .
7375 \expandafter\edef\tempa
7376 {\noexpand\noexpand\noexpand\the\toks\the\paramno}%
7377 \advance\paramno by 1\relax
7378 \fi\next}
7379
7325% These two commands read recursive and nonrecursive macro bodies. 7380% These two commands read recursive and nonrecursive macro bodies.
7326% (They're different since rec and nonrec macros end differently.) 7381% (They're different since rec and nonrec macros end differently.)
7327% 7382%
7383
7384\catcode `\@\texiatcatcode
7328\long\def\parsemacbody#1@end macro% 7385\long\def\parsemacbody#1@end macro%
7329{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% 7386{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
7330\long\def\parsermacbody#1@end rmacro% 7387\long\def\parsermacbody#1@end rmacro%
7331{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% 7388{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
7389\catcode `\@=11\relax
7390
7391\let\endargs@\relax
7392\let\nil@\relax
7393\def\nilm@{\nil@}%
7394\long\def\nillm@{\nil@}%
7395
7396% This macro is expanded during the Texinfo macro expansion, not during its
7397% definition. It gets all the arguments values and assigns them to macros
7398% macarg.ARGNAME
7399%
7400% #1 is the macro name
7401% #2 is the list of argument names
7402% #3 is the list of argument values
7403\def\getargvals@#1#2#3{%
7404 \def\macargdeflist@{}%
7405 \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion.
7406 \def\paramlist{#2,\nil@}%
7407 \def\macroname{#1}%
7408 \begingroup
7409 \macroargctxt
7410 \def\argvaluelist{#3,\nil@}%
7411 \def\@tempa{#3}%
7412 \ifx\@tempa\empty
7413 \setemptyargvalues@
7414 \else
7415 \getargvals@@
7416 \fi
7417}
7418
7419%
7420\def\getargvals@@{%
7421 \ifx\paramlist\nilm@
7422 % Some sanity check needed here that \argvaluelist is also empty.
7423 \ifx\argvaluelist\nillm@
7424 \else
7425 \errhelp = \EMsimple
7426 \errmessage{Too many arguments in macro `\macroname'!}%
7427 \fi
7428 \let\next\macargexpandinbody@
7429 \else
7430 \ifx\argvaluelist\nillm@
7431 % No more arguments values passed to macro. Set remaining named-arg
7432 % macros to empty.
7433 \let\next\setemptyargvalues@
7434 \else
7435 % pop current arg name into \@tempb
7436 \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}%
7437 \expandafter\@tempa\expandafter{\paramlist}%
7438 % pop current argument value into \@tempc
7439 \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}%
7440 \expandafter\@tempa\expandafter{\argvaluelist}%
7441 % Here \@tempb is the current arg name and \@tempc is the current arg value.
7442 % First place the new argument macro definition into \@tempd
7443 \expandafter\macname\expandafter{\@tempc}%
7444 \expandafter\let\csname macarg.\@tempb\endcsname\relax
7445 \expandafter\def\expandafter\@tempe\expandafter{%
7446 \csname macarg.\@tempb\endcsname}%
7447 \edef\@tempd{\long\def\@tempe{\the\macname}}%
7448 \push@\@tempd\macargdeflist@
7449 \let\next\getargvals@@
7450 \fi
7451 \fi
7452 \next
7453}
7454
7455\def\push@#1#2{%
7456 \expandafter\expandafter\expandafter\def
7457 \expandafter\expandafter\expandafter#2%
7458 \expandafter\expandafter\expandafter{%
7459 \expandafter#1#2}%
7460}
7461
7462% Replace arguments by their values in the macro body, and place the result
7463% in macro \@tempa
7464\def\macvalstoargs@{%
7465 % To do this we use the property that token registers that are \the'ed
7466 % within an \edef expand only once. So we are going to place all argument
7467 % values into respective token registers.
7468 %
7469 % First we save the token context, and initialize argument numbering.
7470 \begingroup
7471 \paramno0\relax
7472 % Then, for each argument number #N, we place the corresponding argument
7473 % value into a new token list register \toks#N
7474 \expandafter\putargsintokens@\saveparamlist@,;,%
7475 % Then, we expand the body so that argument are replaced by their
7476 % values. The trick for values not to be expanded themselves is that they
7477 % are within tokens and that tokens expand only once in an \edef .
7478 \edef\@tempc{\csname mac.\macroname .body\endcsname}%
7479 % Now we restore the token stack pointer to free the token list registers
7480 % which we have used, but we make sure that expanded body is saved after
7481 % group.
7482 \expandafter
7483 \endgroup
7484 \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
7485 }
7486
7487\def\macargexpandinbody@{%
7488 %% Define the named-macro outside of this group and then close this group.
7489 \expandafter
7490 \endgroup
7491 \macargdeflist@
7492 % First the replace in body the macro arguments by their values, the result
7493 % is in \@tempa .
7494 \macvalstoargs@
7495 % Then we point at the \norecurse or \gobble (for recursive) macro value
7496 % with \@tempb .
7497 \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname
7498 % Depending on whether it is recursive or not, we need some tailing
7499 % \egroup .
7500 \ifx\@tempb\gobble
7501 \let\@tempc\relax
7502 \else
7503 \let\@tempc\egroup
7504 \fi
7505 % And now we do the real job:
7506 \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}%
7507 \@tempd
7508}
7509
7510\def\putargsintokens@#1,{%
7511 \if#1;\let\next\relax
7512 \else
7513 \let\next\putargsintokens@
7514 % First we allocate the new token list register, and give it a temporary
7515 % alias \@tempb .
7516 \toksdef\@tempb\the\paramno
7517 % Then we place the argument value into that token list register.
7518 \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname
7519 \expandafter\@tempb\expandafter{\@tempa}%
7520 \advance\paramno by 1\relax
7521 \fi
7522 \next
7523}
7524
7525% Save the token stack pointer into macro #1
7526\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}}
7527% Restore the token stack pointer from number in macro #1
7528\def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax}
7529% newtoks that can be used non \outer .
7530\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi}
7332 7531
7333% This defines the macro itself. There are six cases: recursive and 7532% Tailing missing arguments are set to empty
7334% nonrecursive macros of zero, one, and many arguments. 7533\def\setemptyargvalues@{%
7534 \ifx\paramlist\nilm@
7535 \let\next\macargexpandinbody@
7536 \else
7537 \expandafter\setemptyargvaluesparser@\paramlist\endargs@
7538 \let\next\setemptyargvalues@
7539 \fi
7540 \next
7541}
7542
7543\def\setemptyargvaluesparser@#1,#2\endargs@{%
7544 \expandafter\def\expandafter\@tempa\expandafter{%
7545 \expandafter\def\csname macarg.#1\endcsname{}}%
7546 \push@\@tempa\macargdeflist@
7547 \def\paramlist{#2}%
7548}
7549
7550% #1 is the element target macro
7551% #2 is the list macro
7552% #3,#4\endargs@ is the list value
7553\def\pop@#1#2#3,#4\endargs@{%
7554 \def#1{#3}%
7555 \def#2{#4}%
7556}
7557\long\def\longpop@#1#2#3,#4\endargs@{%
7558 \long\def#1{#3}%
7559 \long\def#2{#4}%
7560}
7561
7562% This defines a Texinfo @macro. There are eight cases: recursive and
7563% nonrecursive macros of zero, one, up to nine, and many arguments.
7335% Much magic with \expandafter here. 7564% Much magic with \expandafter here.
7336% \xdef is used so that macro definitions will survive the file 7565% \xdef is used so that macro definitions will survive the file
7337% they're defined in; @include reads the file inside a group. 7566% they're defined in; @include reads the file inside a group.
@@ -7350,17 +7579,25 @@ end
7350 \expandafter\noexpand\csname\the\macname xxx\endcsname}% 7579 \expandafter\noexpand\csname\the\macname xxx\endcsname}%
7351 \expandafter\xdef\csname\the\macname xxx\endcsname##1{% 7580 \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
7352 \egroup\noexpand\scanmacro{\temp}}% 7581 \egroup\noexpand\scanmacro{\temp}}%
7353 \else % many 7582 \else
7354 \expandafter\xdef\csname\the\macname\endcsname{% 7583 \ifnum\paramno<10\relax % at most 9
7355 \bgroup\noexpand\macroargctxt 7584 \expandafter\xdef\csname\the\macname\endcsname{%
7356 \noexpand\csname\the\macname xx\endcsname}% 7585 \bgroup\noexpand\macroargctxt
7357 \expandafter\xdef\csname\the\macname xx\endcsname##1{% 7586 \noexpand\csname\the\macname xx\endcsname}%
7358 \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% 7587 \expandafter\xdef\csname\the\macname xx\endcsname##1{%
7359 \expandafter\expandafter 7588 \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
7360 \expandafter\xdef 7589 \expandafter\expandafter
7361 \expandafter\expandafter 7590 \expandafter\xdef
7362 \csname\the\macname xxx\endcsname 7591 \expandafter\expandafter
7363 \paramlist{\egroup\noexpand\scanmacro{\temp}}% 7592 \csname\the\macname xxx\endcsname
7593 \paramlist{\egroup\noexpand\scanmacro{\temp}}%
7594 \else % 10 or more
7595 \expandafter\xdef\csname\the\macname\endcsname{%
7596 \noexpand\getargvals@{\the\macname}{\argl}%
7597 }%
7598 \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
7599 \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
7600 \fi
7364 \fi 7601 \fi
7365 \else 7602 \else
7366 \ifcase\paramno 7603 \ifcase\paramno
@@ -7377,23 +7614,33 @@ end
7377 \egroup 7614 \egroup
7378 \noexpand\norecurse{\the\macname}% 7615 \noexpand\norecurse{\the\macname}%
7379 \noexpand\scanmacro{\temp}\egroup}% 7616 \noexpand\scanmacro{\temp}\egroup}%
7380 \else % many 7617 \else % at most 9
7381 \expandafter\xdef\csname\the\macname\endcsname{% 7618 \ifnum\paramno<10\relax
7382 \bgroup\noexpand\macroargctxt 7619 \expandafter\xdef\csname\the\macname\endcsname{%
7383 \expandafter\noexpand\csname\the\macname xx\endcsname}% 7620 \bgroup\noexpand\macroargctxt
7384 \expandafter\xdef\csname\the\macname xx\endcsname##1{% 7621 \expandafter\noexpand\csname\the\macname xx\endcsname}%
7385 \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% 7622 \expandafter\xdef\csname\the\macname xx\endcsname##1{%
7386 \expandafter\expandafter 7623 \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
7387 \expandafter\xdef 7624 \expandafter\expandafter
7388 \expandafter\expandafter 7625 \expandafter\xdef
7389 \csname\the\macname xxx\endcsname 7626 \expandafter\expandafter
7390 \paramlist{% 7627 \csname\the\macname xxx\endcsname
7391 \egroup 7628 \paramlist{%
7392 \noexpand\norecurse{\the\macname}% 7629 \egroup
7393 \noexpand\scanmacro{\temp}\egroup}% 7630 \noexpand\norecurse{\the\macname}%
7631 \noexpand\scanmacro{\temp}\egroup}%
7632 \else % 10 or more:
7633 \expandafter\xdef\csname\the\macname\endcsname{%
7634 \noexpand\getargvals@{\the\macname}{\argl}%
7635 }%
7636 \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
7637 \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse
7638 \fi
7394 \fi 7639 \fi
7395 \fi} 7640 \fi}
7396 7641
7642\catcode `\@\texiatcatcode\relax
7643
7397\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} 7644\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
7398 7645
7399% \braceorline decides whether the next nonwhitespace character is a 7646% \braceorline decides whether the next nonwhitespace character is a
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index a4e06ab22f1..7fbd11decd7 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -37,7 +37,7 @@
37@end macro 37@end macro
38 38
39@copying 39@copying
40Copyright @copyright{} 1999-2011 Free Software Foundation, Inc. 40Copyright @copyright{} 1999-2012 Free Software Foundation, Inc.
41 41
42@quotation 42@quotation
43Permission is granted to copy, distribute and/or modify this document 43Permission is granted to copy, distribute and/or modify this document
@@ -528,8 +528,8 @@ differ.
528@cindex methods, inline 528@cindex methods, inline
529@cindex methods, external 529@cindex methods, external
530Loading or saving a remote file requires that the content of the file 530Loading or saving a remote file requires that the content of the file
531be transfered between the two machines. The content of the file can 531be transferred between the two machines. The content of the file can
532be transfered using one of two methods: the @dfn{inline method} over 532be transferred using one of two methods: the @dfn{inline method} over
533the same connection used to log in to the remote machine, or the 533the same connection used to log in to the remote machine, or the
534@dfn{external method} through another connection using a remote copy 534@dfn{external method} through another connection using a remote copy
535program such as @command{rcp}, @command{scp} or @command{rsync}. 535program such as @command{rcp}, @command{scp} or @command{rsync}.
@@ -866,13 +866,22 @@ Newer versions of @option{ssh} (for example OpenSSH 4) offer an option
866@option{ControlMaster}. This allows @option{scp} to reuse an existing 866@option{ControlMaster}. This allows @option{scp} to reuse an existing
867@option{ssh} channel, which increases performance. 867@option{ssh} channel, which increases performance.
868 868
869Before you use this method, you shall check whether your @option{ssh} 869Before you use this method, you should check whether your @option{ssh}
870implementation does support this option. Try from the command line 870implementation supports this option. Try from the command line
871 871
872@example 872@example
873ssh localhost -o ControlMaster=yes 873ssh localhost -o ControlMaster=yes /bin/true
874@end example 874@end example
875 875
876If that command succeeds silently, then you can use @option{scpc}; but
877if it fails like
878
879@example
880command-line: line 0: Bad configuration option: ControlMaster
881@end example
882
883then you cannot use it.
884
876This method supports the @samp{-p} argument. 885This method supports the @samp{-p} argument.
877 886
878 887
@@ -1575,7 +1584,7 @@ password handling. Consider @command{ssh-agent} for @option{ssh}-like
1575methods, or @command{pageant} for @option{plink}-like methods. 1584methods, or @command{pageant} for @option{plink}-like methods.
1576 1585
1577However, if you cannot apply such native password handling, 1586However, if you cannot apply such native password handling,
1578@value{tramp} offers altenatives. 1587@value{tramp} offers alternatives.
1579 1588
1580 1589
1581@anchor{Using an authentication file} 1590@anchor{Using an authentication file}
@@ -3180,7 +3189,7 @@ names:
3180 '("^/xy" . "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}")) 3189 '("^/xy" . "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}"))
3181@end lisp 3190@end lisp
3182 3191
3183This shortens the file openening command to @kbd{C-x C-f /xy 3192This shortens the file opening command to @kbd{C-x C-f /xy
3184@key{RET}}. The disadvantage is, again, that you cannot edit the file 3193@key{RET}}. The disadvantage is, again, that you cannot edit the file
3185name, because the expansion happens after entering the file name only. 3194name, because the expansion happens after entering the file name only.
3186 3195
@@ -3573,7 +3582,7 @@ The verbosity levels are
3573 3582
3574When @code{tramp-verbose} is greater than or equal to 4, the messages 3583When @code{tramp-verbose} is greater than or equal to 4, the messages
3575are also written into a @value{tramp} debug buffer. This debug buffer 3584are also written into a @value{tramp} debug buffer. This debug buffer
3576is useful for analysing problems; sending a @value{tramp} bug report 3585is useful for analyzing problems; sending a @value{tramp} bug report
3577should be done with @code{tramp-verbose} set to a verbosity level of at 3586should be done with @code{tramp-verbose} set to a verbosity level of at
3578least 6 (@pxref{Bug Reports}). 3587least 6 (@pxref{Bug Reports}).
3579 3588
@@ -3704,4 +3713,4 @@ for @value{emacsothername}.
3704@c host and then send commands to it. 3713@c host and then send commands to it.
3705@c * Use `filename' resp. `file name' consistently. 3714@c * Use `filename' resp. `file name' consistently.
3706@c * Use `host' resp. `machine' consistently. 3715@c * Use `host' resp. `machine' consistently.
3707@c * Consistent small or capitalized words especially in menues. 3716@c * Consistent small or capitalized words especially in menus.
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi
index 6a245f9c28d..b4fb5f9aa6a 100644
--- a/doc/misc/trampver.texi
+++ b/doc/misc/trampver.texi
@@ -2,13 +2,13 @@
2@c texi/trampver.texi. Generated from trampver.texi.in by configure. 2@c texi/trampver.texi. Generated from trampver.texi.in by configure.
3 3
4@c This is part of the Emacs manual. 4@c This is part of the Emacs manual.
5@c Copyright (C) 2003-2011 Free Software Foundation, Inc. 5@c Copyright (C) 2003-2012 Free Software Foundation, Inc.
6@c See file doclicense.texi for copying conditions. 6@c See file doclicense.texi for copying conditions.
7 7
8@c In the Tramp CVS, the version number is auto-frobbed from 8@c In the Tramp CVS, the version number is auto-frobbed from
9@c configure.ac, so you should edit that file and run 9@c configure.ac, so you should edit that file and run
10@c "autoconf && ./configure" to change the version number. 10@c "autoconf && ./configure" to change the version number.
11@set trampver 2.2.2-pre 11@set trampver 2.2.3-24.1
12 12
13@c Other flags from configuration 13@c Other flags from configuration
14@set instprefix /usr/local 14@set instprefix /usr/local
diff --git a/doc/misc/url.texi b/doc/misc/url.texi
index 42594457ab1..680f1921479 100644
--- a/doc/misc/url.texi
+++ b/doc/misc/url.texi
@@ -20,7 +20,7 @@
20@copying 20@copying
21This file documents the Emacs Lisp URL loading package. 21This file documents the Emacs Lisp URL loading package.
22 22
23Copyright @copyright{} 1993-1999, 2002, 2004-2011 Free Software Foundation, Inc. 23Copyright @copyright{} 1993-1999, 2002, 2004-2012 Free Software Foundation, Inc.
24 24
25@quotation 25@quotation
26Permission is granted to copy, distribute and/or modify this document 26Permission is granted to copy, distribute and/or modify this document
@@ -96,7 +96,7 @@ where @samp{@r{[}} and @samp{@r{]}} delimit optional parts.
96but you should beware of the security risks of sending cleartext 96but you should beware of the security risks of sending cleartext
97passwords. @var{hostname} may be a domain name or a dotted decimal 97passwords. @var{hostname} may be a domain name or a dotted decimal
98address. If the @samp{:@var{port}} is omitted then the library will 98address. If the @samp{:@var{port}} is omitted then the library will
99use the `well known' port for that service when accessing URLs. With 99use the ``well known'' port for that service when accessing URLs. With
100the possible exception of @code{telnet}, it is rare for ports to be 100the possible exception of @code{telnet}, it is rare for ports to be
101specified, and it is possible using a non-standard port may have 101specified, and it is possible using a non-standard port may have
102undesired consequences if a different service is listening on that 102undesired consequences if a different service is listening on that
@@ -145,7 +145,7 @@ is the host name associated with it, or @code{nil};
145@item port 145@item port
146is the port number associated with it, or @code{nil}; 146is the port number associated with it, or @code{nil};
147@item file 147@item file
148is the `file' part of it, or @code{nil}. This doesn't necessarily 148is the ``file'' part of it, or @code{nil}. This doesn't necessarily
149actually refer to a file; 149actually refer to a file;
150@item target 150@item target
151is the target part, or @code{nil}; 151is the target part, or @code{nil};
@@ -201,13 +201,25 @@ data. @var{url} is either a string or a parsed URL structure. Return
201info, or mailto URLs that need no further processing). 201info, or mailto URLs that need no further processing).
202@end defun 202@end defun
203 203
204@defun url-retrieve url callback &optional cbargs 204@defun url-retrieve url callback &optional cbargs silent no-cookies
205Retrieve @var{url} asynchronously and call @var{callback} with args 205Retrieve @var{url} asynchronously and call @var{callback} with args
206@var{cbargs} when finished. The callback is called when the object 206@var{cbargs} when finished. The callback is called when the object
207has been completely retrieved, with the current buffer containing the 207has been completely retrieved, with the current buffer containing the
208object and any MIME headers associated with it. @var{url} is either a 208object and any MIME headers associated with it. @var{url} is either a
209string or a parsed URL structure. Returns the buffer @var{url} will 209string or a parsed URL structure. Returns the buffer @var{url} will
210load into, or @code{nil} if the process has already completed. 210load into, or @code{nil} if the process has already completed.
211If the optional argument @var{silent} is non-@code{nil}, suppress
212progress messages. If the optional argument @var{no-cookies} is
213non-@code{nil}, do not store or send cookies.
214@end defun
215
216@vindex url-queue-parallel-processes
217@vindex url-queue-timeout
218@defun url-queue-retrieve url callback &optional cbargs silent no-cookies
219This acts like the @code{url-retrieve} function, but with limits on
220the degree of parallelism. The option @code{url-queue-parallel-processes}
221controls the number of concurrent processes, and the option
222@code{url-queue-timeout} sets a timeout in seconds.
211@end defun 223@end defun
212 224
213@node Supported URL Types 225@node Supported URL Types
@@ -216,7 +228,7 @@ load into, or @code{nil} if the process has already completed.
216@menu 228@menu
217* http/https:: Hypertext Transfer Protocol. 229* http/https:: Hypertext Transfer Protocol.
218* file/ftp:: Local files and FTP archives. 230* file/ftp:: Local files and FTP archives.
219* info:: Emacs `Info' pages. 231* info:: Emacs "Info" pages.
220* mailto:: Sending email. 232* mailto:: Sending email.
221* news/nntp/snews:: Usenet news. 233* news/nntp/snews:: Usenet news.
222* rlogin/telnet/tn3270:: Remote host connectivity. 234* rlogin/telnet/tn3270:: Remote host connectivity.
@@ -460,7 +472,7 @@ The form of a mailto URL is
460@var{header} is @samp{body}, then @var{contents} is put in the body 472@var{header} is @samp{body}, then @var{contents} is put in the body
461otherwise a @var{header} header field is created with @var{contents} 473otherwise a @var{header} header field is created with @var{contents}
462as its contents. Note that the URL library does not consider any 474as its contents. Note that the URL library does not consider any
463headers `dangerous' so you should check them before sending the 475headers ``dangerous'' so you should check them before sending the
464message. 476message.
465 477
466@c Fixme: update 478@c Fixme: update
@@ -997,7 +1009,7 @@ This the @samp{nslookup} program. It is @code{"nslookup"} by default.
997In some circumstances it is desirable to suppress making network 1009In some circumstances it is desirable to suppress making network
998connections. A typical case is when rendering HTML in a mail user 1010connections. A typical case is when rendering HTML in a mail user
999agent, when external URLs should not be activated, particularly to 1011agent, when external URLs should not be activated, particularly to
1000avoid `bugs' which `call home' by fetch single-pixel images and the 1012avoid ``bugs'' which ``call home'' by fetch single-pixel images and the
1001like. To arrange this, bind the following variable for the duration 1013like. To arrange this, bind the following variable for the duration
1002of such processing. 1014of such processing.
1003 1015
@@ -1050,7 +1062,7 @@ automatically via @code{url-do-setup} when it is configured to be on.
1050Note that the size of the history list is currently not limited. 1062Note that the size of the history list is currently not limited.
1051 1063
1052@vindex url-history-hash-table 1064@vindex url-history-hash-table
1053The history `list' is actually a hash table, 1065The history ``list'' is actually a hash table,
1054@code{url-history-hash-table}. It contains access times keyed by URL 1066@code{url-history-hash-table}. It contains access times keyed by URL
1055strings. The times are in the format returned by @code{current-time}. 1067strings. The times are in the format returned by @code{current-time}.
1056 1068
diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi
index 03ca65882e5..0d9bb286330 100644
--- a/doc/misc/vip.texi
+++ b/doc/misc/vip.texi
@@ -3,7 +3,7 @@
3@settitle VIP 3@settitle VIP
4 4
5@copying 5@copying
6Copyright @copyright{} 1987, 2001-2011 Free Software Foundation, Inc. 6Copyright @copyright{} 1987, 2001-2012 Free Software Foundation, Inc.
7 7
8@quotation 8@quotation
9Permission is granted to copy, distribute and/or modify this document 9Permission is granted to copy, distribute and/or modify this document
@@ -1705,7 +1705,7 @@ expressions}. For example, a typical forward search would be invoked by
1705@var{pat} you must preceded it by @samp{\}. VIP strips off these @kbd{\}'s 1705@var{pat} you must preceded it by @samp{\}. VIP strips off these @kbd{\}'s
1706before @kbd{/} and the resulting @var{pat} becomes the actual search 1706before @kbd{/} and the resulting @var{pat} becomes the actual search
1707pattern. Emacs provides a different and richer class or regular 1707pattern. Emacs provides a different and richer class or regular
1708expressions than Vi/Ex, and VIP uses Emacs' regular expressions. See GNU 1708expressions than Vi/Ex, and VIP uses Emacs's regular expressions. See GNU
1709Emacs Manual for details of regular expressions. 1709Emacs Manual for details of regular expressions.
1710 1710
1711Several Ex commands can be entered in a line by separating them by a pipe 1711Several Ex commands can be entered in a line by separating them by a pipe
diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi
index 1f0dffee5b4..86455524b1f 100644
--- a/doc/misc/viper.texi
+++ b/doc/misc/viper.texi
@@ -7,7 +7,7 @@
7@setfilename ../../info/viper 7@setfilename ../../info/viper
8 8
9@copying 9@copying
10Copyright @copyright{} 1995-1997, 2001-2011 Free Software Foundation, Inc. 10Copyright @copyright{} 1995-1997, 2001-2012 Free Software Foundation, Inc.
11 11
12@quotation 12@quotation
13Permission is granted to copy, distribute and/or modify this document 13Permission is granted to copy, distribute and/or modify this document
@@ -687,7 +687,7 @@ Insert state. For instance, Emacs has a @dfn{yank} command, @kbd{C-y},
687which is similar to Vi's @kbd{p}. However, unlike @kbd{p}, @kbd{C-y} can be 687which is similar to Vi's @kbd{p}. However, unlike @kbd{p}, @kbd{C-y} can be
688used in Insert state of Viper. Emacs also has a kill ring where it keeps 688used in Insert state of Viper. Emacs also has a kill ring where it keeps
689pieces of text you deleted while editing buffers. The command @kbd{M-y} is 689pieces of text you deleted while editing buffers. The command @kbd{M-y} is
690used to delete the text previously put back by Emacs' @kbd{C-y} or by Vi's 690used to delete the text previously put back by Emacs's @kbd{C-y} or by Vi's
691@kbd{p} command and reinsert text that was placed on the kill-ring earlier. 691@kbd{p} command and reinsert text that was placed on the kill-ring earlier.
692 692
693This works both in Vi and Insert states. 693This works both in Vi and Insert states.
@@ -1289,7 +1289,7 @@ the following example:
1289The above discussion of the meaning of Viper's words concerns only Viper's 1289The above discussion of the meaning of Viper's words concerns only Viper's
1290movement commands. In regular expressions, words remain the same as in 1290movement commands. In regular expressions, words remain the same as in
1291Emacs. That is, the expressions @code{\w}, @code{\>}, @code{\<}, etc., use 1291Emacs. That is, the expressions @code{\w}, @code{\>}, @code{\<}, etc., use
1292Emacs' idea of what is a word, and they don't look into the value of 1292Emacs's idea of what is a word, and they don't look into the value of
1293variable @code{viper-syntax-preference}. This is because Viper doesn't change 1293variable @code{viper-syntax-preference}. This is because Viper doesn't change
1294syntax tables in fear of upsetting the various major modes that set these 1294syntax tables in fear of upsetting the various major modes that set these
1295tables. 1295tables.
@@ -2504,7 +2504,7 @@ major modes.
2504@item viper-minibuffer-emacs-face 'viper-minibuffer-emacs-face 2504@item viper-minibuffer-emacs-face 'viper-minibuffer-emacs-face
2505These faces control the appearance of the minibuffer text in the 2505These faces control the appearance of the minibuffer text in the
2506corresponding Viper states. You can change the appearance of these faces 2506corresponding Viper states. You can change the appearance of these faces
2507through Emacs' customization widget, which is accessible through the 2507through Emacs's customization widget, which is accessible through the
2508menubar. 2508menubar.
2509 2509
2510Viper is located in this widget under the @emph{Emulations} customization 2510Viper is located in this widget under the @emph{Emulations} customization
@@ -3205,7 +3205,7 @@ in the appropriate major mode hooks.
3205 3205
3206The above discussion concerns only the movement commands. In regular 3206The above discussion concerns only the movement commands. In regular
3207expressions, words remain the same as in Emacs. That is, the expressions 3207expressions, words remain the same as in Emacs. That is, the expressions
3208@code{\w}, @code{\>}, @code{\<}, etc., use Emacs' idea of what is a word, 3208@code{\w}, @code{\>}, @code{\<}, etc., use Emacs's idea of what is a word,
3209and they don't look into the value of variable 3209and they don't look into the value of variable
3210@code{viper-syntax-preference}. This is because Viper avoids changing 3210@code{viper-syntax-preference}. This is because Viper avoids changing
3211syntax tables in order to not thwart the various major modes that set these 3211syntax tables in order to not thwart the various major modes that set these
diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi
index c4f5317e5a7..24fe3e63ac9 100644
--- a/doc/misc/widget.texi
+++ b/doc/misc/widget.texi
@@ -8,7 +8,7 @@
8@c %**end of header 8@c %**end of header
9 9
10@copying 10@copying
11Copyright @copyright{} 2000-2011 Free Software Foundation, Inc. 11Copyright @copyright{} 2000-2012 Free Software Foundation, Inc.
12 12
13@quotation 13@quotation
14Permission is granted to copy, distribute and/or modify this document 14Permission is granted to copy, distribute and/or modify this document
@@ -450,7 +450,6 @@ There is a standard widget keymap which you might find useful.
450@findex widget-button-press 450@findex widget-button-press
451@findex widget-button-click 451@findex widget-button-click
452@defvr Const widget-keymap 452@defvr Const widget-keymap
453A keymap with the global keymap as its parent.@*
454@key{TAB} and @kbd{C-@key{TAB}} are bound to @code{widget-forward} and 453@key{TAB} and @kbd{C-@key{TAB}} are bound to @code{widget-forward} and
455@code{widget-backward}, respectively. @key{RET} and @kbd{Mouse-2} 454@code{widget-backward}, respectively. @key{RET} and @kbd{Mouse-2}
456are bound to @code{widget-button-press} and 455are bound to @code{widget-button-press} and
diff --git a/doc/misc/woman.texi b/doc/misc/woman.texi
index c869d1a46c7..b8b15a13c76 100644
--- a/doc/misc/woman.texi
+++ b/doc/misc/woman.texi
@@ -18,7 +18,7 @@
18This file documents WoMan: A program to browse Unix manual pages `W.O. 18This file documents WoMan: A program to browse Unix manual pages `W.O.
19(without) man'. 19(without) man'.
20 20
21Copyright @copyright{} 2001-2011 Free Software Foundation, Inc. 21Copyright @copyright{} 2001-2012 Free Software Foundation, Inc.
22 22
23@quotation 23@quotation
24Permission is granted to copy, distribute and/or modify this document 24Permission is granted to copy, distribute and/or modify this document
@@ -432,7 +432,7 @@ slow. @xref{Cache, , The WoMan Topic Cache}, for further details.
432 432
433@menu 433@menu
434* Cache:: The WoMan Topic Cache 434* Cache:: The WoMan Topic Cache
435* Word at point:: Using the ``Word at Point'' as a Topic Suggestion 435* Word at point:: Using the "Word at Point" as a Topic Suggestion
436@end menu 436@end menu
437 437
438@node Cache, Word at point, Topic, Topic 438@node Cache, Word at point, Topic, Topic
@@ -472,7 +472,7 @@ time it is run in a new Emacs session.
472 472
473@node Word at point, , Cache, Topic 473@node Word at point, , Cache, Topic
474@comment node-name, next, previous, up 474@comment node-name, next, previous, up
475@subsection Using the ``Word at Point'' as a Topic Suggestion 475@subsection Using the "Word at Point" as a Topic Suggestion
476@cindex word at point 476@cindex word at point
477@cindex point, word at 477@cindex point, word at
478 478