diff options
Diffstat (limited to 'doc/misc')
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 @@ | |||
| 1 | 2012-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 | |||
| 6 | 2012-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 | |||
| 11 | 2012-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 | |||
| 18 | 2012-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 | |||
| 23 | 2012-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 | |||
| 31 | 2012-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 | |||
| 39 | 2012-02-26 Chong Yidong <cyd@gnu.org> | ||
| 40 | |||
| 41 | * ediff.texi (Quick Help Commands): Add a couple of index entries | ||
| 42 | (Bug#10834). | ||
| 43 | |||
| 44 | 2012-02-17 Glenn Morris <rgm@gnu.org> | ||
| 45 | |||
| 46 | * gnus.texi (Posting Styles): | ||
| 47 | * remember.texi (Org): Fix cross-refs to other manuals. | ||
| 48 | |||
| 49 | 2012-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 | |||
| 54 | 2012-02-13 Lars Ingebrigtsen <larsi@gnus.org> | ||
| 55 | |||
| 56 | * gnus.texi (Customizing the IMAP Connection): Mention | ||
| 57 | nnimap-record-commands. | ||
| 58 | |||
| 59 | 2012-02-10 Glenn Morris <rgm@gnu.org> | ||
| 60 | |||
| 61 | * url.texi (Retrieving URLs): Update url-retrieve arguments. | ||
| 62 | Mention url-queue-retrieve. | ||
| 63 | |||
| 64 | 2012-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 | |||
| 70 | 2012-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 | |||
| 75 | 2012-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 | |||
| 80 | 2012-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 | |||
| 86 | 2012-01-23 Glenn Morris <rgm@gnu.org> | ||
| 87 | |||
| 88 | * pcl-cvs.texi (About PCL-CVS): Refer to vc-dir rather than vc-dired. | ||
| 89 | |||
| 90 | 2012-01-19 Eric Hanchrow <eric.hanchrow@gmail.com> | ||
| 91 | |||
| 92 | * tramp.texi (File): Tweak wording for the `scpc' option. | ||
| 93 | |||
| 94 | 2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 95 | |||
| 96 | * gnus.texi (Group Parameters): Really note precedence. | ||
| 97 | |||
| 98 | 2012-01-04 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 99 | |||
| 100 | * gnus.texi (Group Parameters): Note precedence. | ||
| 101 | |||
| 102 | 2012-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 | |||
| 108 | 2012-01-03 Bastien Guerry <bzg@gnu.org> | ||
| 109 | |||
| 110 | * org.texi (Plain lists): Split the table to fix the display | ||
| 111 | of items. | ||
| 112 | |||
| 113 | 2012-01-03 Bastien Guerry <bzg@gnu.org> | ||
| 114 | |||
| 115 | * org.texi (Plain lists): Fix misplaced explanation. | ||
| 116 | |||
| 117 | 2012-01-03 Bastien Guerry <bzg@gnu.org> | ||
| 118 | |||
| 119 | * org.texi (Plain lists, Agenda files): Add index entries. | ||
| 120 | |||
| 121 | 2012-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 | |||
| 126 | 2012-01-03 Bernt Hansen <bernt@norang.ca> | ||
| 127 | |||
| 128 | * org.texi (Agenda commands): Document | ||
| 129 | `org-clock-report-include-clocking-task'. | ||
| 130 | |||
| 131 | 2012-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 | |||
| 136 | 2012-01-03 Julian Gehring <julian.gehring@googlemail.com> | ||
| 137 | |||
| 138 | * org.texi: End sentences with two spaces. | ||
| 139 | |||
| 140 | 2012-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 | |||
| 145 | 2012-01-03 Eric Schulte <eric.schulte@gmx.com> | ||
| 146 | |||
| 147 | * org.texi (colnames): Note that colnames behavior may differ | ||
| 148 | across languages. | ||
| 149 | |||
| 150 | 2012-01-03 Bastien Guerry <bzg@gnu.org> | ||
| 151 | |||
| 152 | * org.texi (Weekly/daily agenda, Agenda commands): Fix typos. | ||
| 153 | |||
| 154 | 2012-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 | |||
| 159 | 2012-01-03 Eric Schulte <schulte.eric@gmail.com> | ||
| 160 | |||
| 161 | * org.texi (eval): Documenting the full range of :eval header | ||
| 162 | argument values. | ||
| 163 | |||
| 164 | 2012-01-03 Eric Schulte <schulte.eric@gmail.com> | ||
| 165 | |||
| 166 | * org.texi (eval): Documentation of the new :eval option. | ||
| 167 | |||
| 168 | 2012-01-03 Thomas Dye <dk@poto.local> | ||
| 169 | |||
| 170 | * org.texi: Add accumulated properties. | ||
| 171 | |||
| 172 | 2012-01-03 Thomas Dye <dk@poto.local> | ||
| 173 | |||
| 174 | * org.texi: Documented no spaces in name=assign, another | ||
| 175 | correction to :var table. | ||
| 176 | |||
| 177 | 2012-01-03 Thomas Dye <dk@poto.local> | ||
| 178 | |||
| 179 | * org.texi: Changed DATA to NAME in Working With Source Code | ||
| 180 | section. | ||
| 181 | |||
| 182 | 2012-01-03 Tom Dye <tsd@tsdye.com> | ||
| 183 | |||
| 184 | * org.texi: Minor change to :var table. | ||
| 185 | |||
| 186 | 2012-01-03 Tom Dye <tsd@tsdye.com> | ||
| 187 | |||
| 188 | * org.texi: More changes to :var table (some examples were wrong). | ||
| 189 | |||
| 190 | 2012-01-03 Tom Dye <tsd@tsdye.com> | ||
| 191 | |||
| 192 | * org.texi: Cleaned up :var table. | ||
| 193 | |||
| 194 | 2012-01-03 Bastien Guerry <bzg@gnu.org> | ||
| 195 | |||
| 196 | * org.texi (Timestamps, Weekly/daily agenda) | ||
| 197 | (Weekly/daily agenda): Add @cindex for "appointment". | ||
| 198 | |||
| 199 | 2012-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 | |||
| 206 | 2012-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 | |||
| 212 | 2012-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 | |||
| 217 | 2012-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 | |||
| 222 | 2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> (tiny change) | ||
| 223 | |||
| 224 | * org.texi (Conflicts): Better yasnippet config info. | ||
| 225 | |||
| 226 | 2012-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 | |||
| 232 | 2012-01-03 Tom Dye <tsd@tsdye.com> | ||
| 233 | |||
| 234 | * org.texi: Added a line to specify that header arguments are | ||
| 235 | lowercase. | ||
| 236 | |||
| 237 | 2012-01-03 Tom Dye <tsd@tsdye.com> | ||
| 238 | |||
| 239 | * org.texi: :var requires default value when declared. | ||
| 240 | |||
| 241 | 2012-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 | |||
| 246 | 2012-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 | |||
| 252 | 2012-01-03 David Maus <dmaus@ictsoc.de> | ||
| 253 | |||
| 254 | * org.texi (Exporting Agenda Views): Fix command line syntax. | ||
| 255 | |||
| 256 | 2011-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 | |||
| 263 | 2011-12-20 Alan Mackenzie <acm@muc.de> | ||
| 264 | |||
| 265 | * cc-mode.texi: Update version string 5.31 -> 5.32. | ||
| 266 | |||
| 267 | 2011-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 | |||
| 271 | 2011-11-24 Glenn Morris <rgm@gnu.org> | ||
| 272 | |||
| 273 | * gnus.texi, smtpmail.texi: Fix case of "GnuTLS". | ||
| 274 | |||
| 275 | 2011-11-24 Juanma Barranquero <lekktu@gmail.com> | ||
| 276 | |||
| 277 | * makefile.w32-in: Update dependencies. | ||
| 278 | |||
| 279 | 2011-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 | |||
| 284 | 2011-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 | |||
| 295 | 2011-11-16 Juanma Barranquero <lekktu@gmail.com> | ||
| 296 | |||
| 297 | * org.texi (Agenda commands, Exporting Agenda Views): Fix typos. | ||
| 298 | |||
| 299 | 2011-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 | |||
| 305 | 2011-11-14 Juanma Barranquero <lekktu@gmail.com> | ||
| 306 | |||
| 307 | * ediff.texi (Hooks): | ||
| 308 | * sem-user.texi (Semanticdb Roots): Fix typos. | ||
| 309 | |||
| 310 | 2011-11-11 Juanma Barranquero <lekktu@gmail.com> | ||
| 311 | |||
| 312 | * semantic.texi (Tag handling): Fix typo. | ||
| 313 | |||
| 314 | 2011-10-31 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 315 | |||
| 316 | * gnus.texi (Other Gnus Versions): Remove. | ||
| 317 | |||
| 318 | 2011-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 | |||
| 329 | 2011-10-23 Michael Albinus <michael.albinus@gmx.de> | ||
| 330 | |||
| 331 | Sync with Tramp 2.2.3. | ||
| 332 | |||
| 333 | * trampver.texi: Update release number. | ||
| 334 | |||
| 335 | 2011-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 | |||
| 348 | 2011-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 | |||
| 353 | 2011-10-12 Glenn Morris <rgm@gnu.org> | ||
| 354 | |||
| 355 | * ert.texi: Whitespace trivia to make main menu items line up better. | ||
| 356 | |||
| 357 | 2011-10-08 Glenn Morris <rgm@gnu.org> | ||
| 358 | |||
| 359 | * Makefile.in: Fix ert rules. | ||
| 360 | |||
| 361 | 2011-10-06 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 362 | |||
| 363 | * gnus.texi (Gnus Utility Functions): Add more references and | ||
| 364 | explanations (bug#9683). | ||
| 365 | |||
| 366 | 2011-09-21 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 367 | |||
| 368 | * gnus.texi (Archived Messages): Note the default (bug#9552). | ||
| 369 | |||
| 370 | 2011-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 | |||
| 381 | 2011-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 | |||
| 387 | 2011-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 | |||
| 392 | 2011-08-15 Suvayu Ali <fatkasuvayu+linux@gmail.com> (tiny change) | ||
| 393 | |||
| 394 | * org.texi (Images in LaTeX export): rewrite. | ||
| 395 | |||
| 396 | 2011-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 | |||
| 401 | 2011-08-15 Carsten Dominik <carsten.dominik@gmail.com> | ||
| 402 | |||
| 403 | * org.texi (Visibility cycling): Document `org-copy-visible'. | ||
| 404 | |||
| 405 | 2011-08-15 Bastien Guerry <bzg@gnu.org> | ||
| 406 | |||
| 407 | * org.texi (Template expansion): order template sequences in the | ||
| 408 | proper order. | ||
| 409 | |||
| 410 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 411 | |||
| 412 | * org.texi (eval): Expand discussion of the :eval header argument. | ||
| 413 | |||
| 414 | 2011-08-15 Bastien Guerry <bzg@gnu.org> | ||
| 415 | |||
| 416 | * org.texi (Languages): Add Lilypond and Awk as supported | ||
| 417 | languages. | ||
| 418 | |||
| 419 | 2011-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 | |||
| 427 | 2011-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 | |||
| 432 | 2011-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 | |||
| 438 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 439 | |||
| 440 | * org.texi (noweb-ref): New header argument documentation. | ||
| 441 | |||
| 442 | 2011-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 | |||
| 447 | 2011-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 | |||
| 452 | 2011-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 | |||
| 457 | 2011-08-15 David Maus <dmaus@ictsoc.de> | ||
| 458 | |||
| 459 | * org.texi (Images in LaTeX export): Escape curly brackets in | ||
| 460 | LaTeX example. | ||
| 461 | |||
| 462 | 2011-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 | |||
| 467 | 2011-08-15 Carsten Dominik <carsten.dominik@gmail.com> | ||
| 468 | |||
| 469 | * org.texi (Tables in LaTeX export): Document specifying placement | ||
| 470 | options for tables. | ||
| 471 | |||
| 472 | 2011-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 | |||
| 477 | 2011-08-15 Manuel Giraud <manuel.giraud@univ-nantes.fr> | ||
| 478 | |||
| 479 | * org.texi (Sitemap): Document `:sitemap-sans-extension' property. | ||
| 480 | |||
| 481 | 2011-08-15 Carsten Dominik <carsten.dominik@gmail.com> | ||
| 482 | |||
| 483 | * org.texi (Built-in table editor): Document the table field | ||
| 484 | follow mode. | ||
| 485 | |||
| 486 | 2011-08-15 Robert P. Goldman <rpgoldman@real-time.com> | ||
| 487 | |||
| 488 | * org.texi (Easy Templates): Document new template. | ||
| 489 | |||
| 490 | 2011-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 | |||
| 495 | 2011-08-15 Carsten Dominik <carsten.dominik@gmail.com> | ||
| 496 | |||
| 497 | * org.texi (The clock table): Add link to match syntax. | ||
| 498 | |||
| 499 | 2011-08-15 Carsten Dominik <carsten.dominik@gmail.com> | ||
| 500 | |||
| 501 | * org.texi (Agenda commands): Document clock consistency checks. | ||
| 502 | |||
| 503 | 2011-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 | |||
| 508 | 2011-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 | |||
| 513 | 2011-08-15 Puneeth Chaganti <punchagan@gmail.com> | ||
| 514 | |||
| 515 | * org.texi (Agenda commands): Doc for function option to bulk | ||
| 516 | action. | ||
| 517 | |||
| 518 | 2011-08-15 Carsten Dominik <carsten.dominik@gmail.com> | ||
| 519 | |||
| 520 | * org.texi (Template expansion): Document new %<...> template | ||
| 521 | escape. | ||
| 522 | |||
| 523 | 2011-08-15 Carsten Dominik <carsten.dominik@gmail.com> | ||
| 524 | |||
| 525 | * org.texi (Selective export): Document exclusion of any tasks | ||
| 526 | from export. | ||
| 527 | |||
| 528 | 2011-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 | |||
| 535 | 2011-08-15 Carsten Dominik <carsten.dominik@gmail.com> | ||
| 536 | |||
| 537 | * org.texi (The date/time prompt): Document date range protection. | ||
| 538 | |||
| 539 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 540 | |||
| 541 | * org.texi (padline): Documentation of the new padline header | ||
| 542 | argument. | ||
| 543 | |||
| 544 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 545 | |||
| 546 | * org.texi (var): Adding "[" to list of characters triggering | ||
| 547 | elisp evaluation. | ||
| 548 | |||
| 549 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 550 | |||
| 551 | * org.texi (var): Documentation of Emacs Lisp evaluation during | ||
| 552 | variable assignment. | ||
| 553 | |||
| 554 | 2011-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 | |||
| 561 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 562 | |||
| 563 | * org.texi (var): Clarification of indexing into tabular | ||
| 564 | variables. | ||
| 565 | |||
| 566 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 567 | |||
| 568 | * org.texi (results): Documentation of the `:results wrap' header | ||
| 569 | argument. | ||
| 570 | |||
| 571 | 2011-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 | |||
| 576 | 2011-08-15 Bastien Guerry <bzg@gnu.org> | ||
| 577 | |||
| 578 | * org.texi (Dynamic blocks, Structure editing): Mention | ||
| 579 | the function `org-narrow-to-block'. | ||
| 580 | |||
| 581 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 582 | |||
| 583 | * org.texi (Languages): Updating list of code block supported | ||
| 584 | languages. | ||
| 585 | |||
| 586 | 2011-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 | |||
| 591 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 592 | |||
| 593 | * org.texi (mkdirp): Documentation of the :mkdirp header argument. | ||
| 594 | |||
| 595 | 2011-08-15 Puneeth Chaganti <punchagan@gmail.com> | ||
| 596 | |||
| 597 | * org.texi (Include files): Document :lines. | ||
| 598 | |||
| 599 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 600 | |||
| 601 | * org.texi (comments): Documentation of the ":comments noweb" code | ||
| 602 | block header argument. | ||
| 603 | |||
| 604 | 2011-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 | |||
| 610 | 2011-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 | |||
| 617 | 2011-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 | |||
| 622 | 2011-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 | |||
| 627 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 628 | |||
| 629 | * org.texi (Conflicts): Adding additional information about | ||
| 630 | resolving org/yasnippet conflicts. | ||
| 631 | |||
| 632 | 2011-08-15 David Maus <dmaus@ictsoc.de> | ||
| 633 | |||
| 634 | * org.texi (Publishing options): Document style-include-scripts | ||
| 635 | publishing project property. | ||
| 636 | |||
| 637 | 2011-08-15 Carsten Dominik <carsten.dominik@gmail.com> | ||
| 638 | |||
| 639 | * org.texi (Sparse trees): Document the next-error / | ||
| 640 | previous-error functionality. | ||
| 641 | |||
| 642 | 2011-08-15 Tom Dye <tsd@tsdye.com> | ||
| 643 | |||
| 644 | * org.texi (cache): Improved documentation of code block caches. | ||
| 645 | |||
| 646 | 2011-08-15 Tom Dye <tsd@tsdye.com> | ||
| 647 | |||
| 648 | * org.texi (Code block specific header arguments): Documentation | ||
| 649 | of multi-line header arguments. | ||
| 650 | |||
| 651 | 2011-08-15 Eric Schulte <schulte.eric@gmail.com> | ||
| 652 | |||
| 653 | * org.texi (Code evaluation security): Add example for using a | ||
| 654 | function. | ||
| 655 | |||
| 656 | 2011-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 | |||
| 661 | 2011-08-03 Michael Albinus <michael.albinus@gmx.de> | ||
| 662 | |||
| 663 | * trampver.texi: Update release number. | ||
| 664 | |||
| 665 | 2011-07-30 Michael Albinus <michael.albinus@gmx.de> | ||
| 666 | |||
| 667 | Sync with Tramp 2.2.2. | ||
| 668 | |||
| 669 | * trampver.texi: Update release number. | ||
| 670 | |||
| 671 | 2011-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 | |||
| 676 | 2011-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 | |||
| 682 | 2011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 683 | |||
| 684 | * org.texi (Special agenda views): Fix double quoting (bug#3509). | ||
| 685 | |||
| 686 | 2010-07-10 Kevin Ryde <user42@zip.com.au> | ||
| 687 | |||
| 688 | * cl.texi (For Clauses): Add destructuring example processing an | ||
| 689 | alist (bug#6596). | ||
| 690 | |||
| 1 | 2011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org> | 691 | 2011-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 @@ | |||
| 1913 | 2009-08-25 Michael Albinus <michael.albinus@gmx.de> | 2603 | 2009-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 | ||
| 2581 | 2008-12-19 Juri Linkov <juri@jurta.org> | 3271 | 2008-12-19 Juri Linkov <juri@jurta.org> |
| @@ -7562,7 +8252,7 @@ | |||
| 7562 | 2003-02-01 Michael Albinus <Michael.Albinus@alcatel.de> | 8252 | 2003-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 | ||
| 7567 | 2003-01-24 Michael Albinus <Michael.Albinus@alcatel.de> | 8257 | 2003-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 | ||
| 372 | ert : $(infodir)/ert | 372 | ert : $(infodir)/ert |
| 373 | $(infodir)/ert: ert.texi $(infodir) | 373 | $(infodir)/ert: ert.texi |
| 374 | cd $(srcdir); $(MAKEINFO) ert.texi | 374 | $(mkinfodir) |
| 375 | ert.dvi: ert.texi | 375 | cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< |
| 376 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi | 376 | ert.dvi: ${srcdir}/ert.texi |
| 377 | ert.pdf: ert.texi | 377 | $(ENVADD) $(TEXI2DVI) $< |
| 378 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi | 378 | ert.pdf: ${srcdir}/ert.texi |
| 379 | $(ENVADD) $(TEXI2PDF) $< | ||
| 379 | 380 | ||
| 380 | eshell : $(infodir)/eshell | 381 | eshell : $(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 |
| 6 | Copyright @copyright{} 1999-2011 Free Software Foundation, Inc. | 6 | Copyright @copyright{} 1999-2012 Free Software Foundation, Inc. |
| 7 | 7 | ||
| 8 | @quotation | 8 | @quotation |
| 9 | Permission is granted to copy, distribute and/or modify this document | 9 | Permission 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 | |||
| 184 | names, and the extension for specs and bodies are | 184 | names, and the extension for specs and bodies are |
| 185 | @samp{.ads} and @samp{.adb}, respectively. | 185 | @samp{.ads} and @samp{.adb}, respectively. |
| 186 | 186 | ||
| 187 | Ada mode uses the file extentions to allow moving from a package body | 187 | Ada mode uses the file extensions to allow moving from a package body |
| 188 | to the corresponding spec and back. | 188 | to the corresponding spec and back. |
| 189 | 189 | ||
| 190 | Ada mode supports a list of alternative file extensions for specs and bodies. | 190 | Ada 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 | |||
| 209 | that ends with either @file{.adb}, @file{_b.ada} or | 209 | that ends with either @file{.adb}, @file{_b.ada} or |
| 210 | @file{.body}. | 210 | @file{.body}. |
| 211 | 211 | ||
| 212 | Simililarly, if Ada mode is looking for a spec, it will look for | 212 | Similarly, 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 | ||
| 215 | If the filename is not derived from the Ada name following the GNAT | 215 | If 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 | |||
| 1357 | included, separated from the word by a space. | 1357 | included, separated from the word by a space. |
| 1358 | 1358 | ||
| 1359 | If the word starts with an asterisk (@key{*}), it defines the casing | 1359 | If the word starts with an asterisk (@key{*}), it defines the casing |
| 1360 | af a word fragemnt (or ``substring''); part of a word between two | 1360 | as a word fragment (or ``substring''); part of a word between two |
| 1361 | underscores or word boundary. | 1361 | underscores or word boundary. |
| 1362 | 1362 | ||
| 1363 | For example: | 1363 | For 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 |
| 11 | This file describes the Emacs auth-source library. | 11 | This file describes the Emacs auth-source library. |
| 12 | 12 | ||
| 13 | Copyright @copyright{} 2008-2011 Free Software Foundation, Inc. | 13 | Copyright @copyright{} 2008-2012 Free Software Foundation, Inc. |
| 14 | 14 | ||
| 15 | @quotation | 15 | @quotation |
| 16 | Permission is granted to copy, distribute and/or modify this document | 16 | Permission 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: | |||
| 182 | If you don't customize @code{auth-sources}, you'll have to live with | 182 | If you don't customize @code{auth-sources}, you'll have to live with |
| 183 | the defaults: any host and any port are looked up in the netrc | 183 | the defaults: any host and any port are looked up in the netrc |
| 184 | file @code{~/.authinfo.gpg}, which is a GnuPG encrypted file | 184 | file @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 | ||
| 187 | If that fails, the unencrypted netrc files @code{~/.authinfo} and | 187 | If 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. | |||
| 281 | Note that the password needs to be evaluated if it's a function. It's | 281 | Note that the password needs to be evaluated if it's a function. It's |
| 282 | wrapped in a function to provide some security. | 282 | wrapped in a function to provide some security. |
| 283 | 283 | ||
| 284 | Later, after a successful login, @code{nnimal.el} calls the | 284 | Later, 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 | ||
| 342 | If you want your GnuPG passwords to be cached, set up @code{gpg-agent} | 342 | If you want your GnuPG passwords to be cached, set up @code{gpg-agent} |
| 343 | or EasyPG Assitant | 343 | or EasyPG Assistant |
| 344 | (@pxref{Caching Passphrases, , Caching Passphrases, epa}). | 344 | (@pxref{Caching Passphrases, , Caching Passphrases, epa}). |
| 345 | 345 | ||
| 346 | To quick start, here are some questions: | 346 | To 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 |
| 13 | Copyright @copyright{} 1994-1995, 1999, 2001-2011 Free Software Foundation, Inc. | 13 | Copyright @copyright{} 1994-1995, 1999, 2001-2012 Free Software Foundation, Inc. |
| 14 | 14 | ||
| 15 | @quotation | 15 | @quotation |
| 16 | Permission is granted to copy, distribute and/or modify this document | 16 | Permission 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 | |||
| 156 | Skeletons}). The point (@pxref{(emacs)Point}) is left at the next | 156 | Skeletons}). The point (@pxref{(emacs)Point}) is left at the next |
| 157 | interesting spot in the skeleton instead. | 157 | interesting 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 |
| 160 | marked interregions (@pxref{(emacs)Mark}). In the simplest case, if you type | 160 | marked 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 |
| 162 | skeleton around the current region, just like a positive argument would have | 162 | skeleton 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 |
| 420 | whenever @code{auto-insert} is called as a function, such as when Emacs | 420 | whenever @code{auto-insert} is called as a function, such as when Emacs |
| 421 | visits an empty file and you have set the above-mentioned hook. Otherwise | 421 | visits an empty file and you have set the above-mentioned hook. Otherwise |
| 422 | you are alway queried. | 422 | you 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 | |||
| 510 | is only done with @kbd{M-x executable-set-magic}. When this is | 510 | is 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 |
| 512 | called as a function, such as when Emacs puts a buffer in Shell script | 512 | called as a function, such as when Emacs puts a buffer in Shell script |
| 513 | mode. Otherwise you are alway queried. | 513 | mode. 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 @@ | |||
| 90 | This file documents Calc, the GNU Emacs calculator. | 90 | This file documents Calc, the GNU Emacs calculator. |
| 91 | @end ifinfo | 91 | @end ifinfo |
| 92 | @ifnotinfo | 92 | @ifnotinfo |
| 93 | This file documents Calc, the GNU Emacs calculator, included with | 93 | This file documents Calc, the GNU Emacs calculator, included with |
| 94 | GNU Emacs @value{EMACSVER}. | 94 | GNU Emacs @value{EMACSVER}. |
| 95 | @end ifnotinfo | 95 | @end ifnotinfo |
| 96 | 96 | ||
| 97 | Copyright @copyright{} 1990-1991, 2001-2011 Free Software Foundation, Inc. | 97 | Copyright @copyright{} 1990-1991, 2001-2012 Free Software Foundation, Inc. |
| 98 | 98 | ||
| 99 | @quotation | 99 | @quotation |
| 100 | Permission is granted to copy, distribute and/or modify this document | 100 | Permission 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 |
| 325 | Every Calc keyboard command is listed in the Calc Summary, and also | 325 | Every Calc keyboard command is listed in the Calc Summary, and also |
| 326 | in the Key Index. Algebraic functions, @kbd{M-x} commands, and | 326 | in the Key Index. Algebraic functions, @kbd{M-x} commands, and |
| 327 | variables also have their own indices. | 327 | variables 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 | |||
| 338 | command @kbd{C-x * t} will jump to the Tutorial and start Calc if | 338 | command @kbd{C-x * t} will jump to the Tutorial and start Calc if |
| 339 | necessary. Pressing @kbd{h s} or @kbd{C-x * s} will take you directly | 339 | necessary. Pressing @kbd{h s} or @kbd{C-x * s} will take you directly |
| 340 | to the Calc Summary. Within Calc, you can also go to the part of the | 340 | to the Calc Summary. Within Calc, you can also go to the part of the |
| 341 | manual describing any Calc key, function, or variable using | 341 | manual 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. | |||
| 437 | then the command to operate on the numbers. | 437 | then the command to operate on the numbers. |
| 438 | 438 | ||
| 439 | @noindent | 439 | @noindent |
| 440 | Type @kbd{2 @key{RET} 3 + Q} to compute | 440 | Type @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 |
| 445 | Type @kbd{P 2 ^} to compute | 445 | Type @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, | |||
| 461 | use the apostrophe key. | 461 | use the apostrophe key. |
| 462 | 462 | ||
| 463 | @noindent | 463 | @noindent |
| 464 | Type @kbd{' sqrt(2+3) @key{RET}} to compute | 464 | Type @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 |
| 469 | Type @kbd{' pi^2 @key{RET}} to enter | 469 | Type @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. |
| 472 | To evaluate this symbolic formula as a number, type @kbd{=}. | 472 | To 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 | |||
| 526 | the lower-right @samp{8} and press @kbd{C-x * r}. | 526 | the lower-right @samp{8} and press @kbd{C-x * r}. |
| 527 | 527 | ||
| 528 | @noindent | 528 | @noindent |
| 529 | Type @kbd{v t} to transpose this | 529 | Type @kbd{v t} to transpose this |
| 530 | @texline @math{3\times2} | 530 | @texline @math{3\times2} |
| 531 | @infoline 3x2 | 531 | @infoline 3x2 |
| 532 | matrix into a | 532 | matrix into a |
| 533 | @texline @math{2\times3} | 533 | @texline @math{2\times3} |
| 534 | @infoline 2x3 | 534 | @infoline 2x3 |
| 535 | matrix. Type @w{@kbd{v u}} to unpack the rows into two separate | 535 | matrix. 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 |
| 607 | On most systems, you can type @kbd{C-x *} to start the Calculator. | 607 | On most systems, you can type @kbd{C-x *} to start the Calculator. |
| 608 | The key sequence @kbd{C-x *} is bound to the command @code{calc-dispatch}, | 608 | The key sequence @kbd{C-x *} is bound to the command @code{calc-dispatch}, |
| 609 | which can be rebound if convenient (@pxref{Customizing Calc}). | 609 | which can be rebound if convenient (@pxref{Customizing Calc}). |
| 610 | 610 | ||
| 611 | When you press @kbd{C-x *}, Emacs waits for you to press a second key to | 611 | When 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 |
| 1155 | Calc was originally started as a two-week project to occupy a lull | 1155 | Calc was originally started as a two-week project to occupy a lull |
| 1156 | in the author's schedule. Basically, a friend asked if I remembered | 1156 | in the author's schedule. Basically, a friend asked if I remembered |
| 1157 | the value of | 1157 | the value of |
| 1158 | @texline @math{2^{32}}. | 1158 | @texline @math{2^{32}}. |
| 1159 | @infoline @expr{2^32}. | 1159 | @infoline @expr{2^32}. |
| 1160 | I didn't offhand, but I said, ``that's easy, just call up an | 1160 | I 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 |
| 1162 | question was @samp{4.294967e+09}---with no way to see the full ten | 1162 | question was @samp{4.294967e+09}---with no way to see the full ten |
| @@ -1213,7 +1213,7 @@ algebra system for microcomputers. | |||
| 1213 | Many people have contributed to Calc by reporting bugs and suggesting | 1213 | Many people have contributed to Calc by reporting bugs and suggesting |
| 1214 | features, large and small. A few deserve special mention: Tim Peters, | 1214 | features, large and small. A few deserve special mention: Tim Peters, |
| 1215 | who helped develop the ideas that led to the selection commands, rewrite | 1215 | who helped develop the ideas that led to the selection commands, rewrite |
| 1216 | rules, and many other algebra features; | 1216 | rules, and many other algebra features; |
| 1217 | @texline Fran\c{c}ois | 1217 | @texline Fran\c{c}ois |
| 1218 | @infoline Francois | 1218 | @infoline Francois |
| 1219 | Pinard, who contributed an early prototype of the Calc Summary appendix | 1219 | Pinard, who contributed an early prototype of the Calc Summary appendix |
| @@ -1226,7 +1226,7 @@ Randal Schwartz, who suggested the @code{calc-eval} function; Juha | |||
| 1226 | Sarlin, who first worked out how to split Calc into quickly-loading | 1226 | Sarlin, who first worked out how to split Calc into quickly-loading |
| 1227 | parts; Bob Weiner, who helped immensely with the Lucid Emacs port; and | 1227 | parts; Bob Weiner, who helped immensely with the Lucid Emacs port; and |
| 1228 | Robert J. Chassell, who suggested the Calc Tutorial and exercises as | 1228 | Robert J. Chassell, who suggested the Calc Tutorial and exercises as |
| 1229 | well as many other things. | 1229 | well 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 | |||
| 1472 | multiplication.) Figure it out by hand, then try it with Calc to see | 1472 | multiplication.) Figure it out by hand, then try it with Calc to see |
| 1473 | if you're right. @xref{RPN Answer 1, 1}. (@bullet{}) | 1473 | if 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} |
| 1478 | using the stack. @xref{RPN Answer 2, 2}. (@bullet{}) | 1478 | using the stack. @xref{RPN Answer 2, 2}. (@bullet{}) |
| 1479 | 1479 | ||
| 1480 | The @key{DEL} key is called Backspace on some keyboards. It is | 1480 | The @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 | |||
| 1889 | accomplish this in Calc by performing your calculation as a series | 1889 | accomplish this in Calc by performing your calculation as a series |
| 1890 | of algebraic entries, using the @kbd{$} sign to tie them together. | 1890 | of algebraic entries, using the @kbd{$} sign to tie them together. |
| 1891 | In an algebraic formula, @kbd{$} represents the number on the top | 1891 | In an algebraic formula, @kbd{$} represents the number on the top |
| 1892 | of the stack. Here, we perform the calculation | 1892 | of 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)}, |
| 1895 | which on a traditional calculator would be done by pressing | 1895 | which 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} | |||
| 2149 | to cancel it. (In fact, you can press @kbd{C-g} to cancel almost | 2149 | to cancel it. (In fact, you can press @kbd{C-g} to cancel almost |
| 2150 | anything in Emacs.) To get help on a prefix key, press that key | 2150 | anything in Emacs.) To get help on a prefix key, press that key |
| 2151 | followed by @kbd{?}. Some prefixes have several lines of help, | 2151 | followed by @kbd{?}. Some prefixes have several lines of help, |
| 2152 | so you need to press @kbd{?} repeatedly to see them all. | 2152 | so you need to press @kbd{?} repeatedly to see them all. |
| 2153 | You can also type @kbd{h h} to see all the help at once. | 2153 | You can also type @kbd{h h} to see all the help at once. |
| 2154 | 2154 | ||
| 2155 | Try pressing @kbd{t ?} now. You will see a line of the form, | 2155 | Try 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 |
| 2552 | The shift-@kbd{S} command computes the sine of an angle. The sine | 2552 | The shift-@kbd{S} command computes the sine of an angle. The sine |
| 2553 | of 45 degrees is | 2553 | of 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}; |
| 2556 | squaring this yields @expr{2/4 = 0.5}. However, there has been a slight | 2556 | squaring this yields @expr{2/4 = 0.5}. However, there has been a slight |
| 2557 | roundoff error because the representation of | 2557 | roundoff 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} |
| 2560 | wasn't exact. The @kbd{c 1} command is a handy way to clean up numbers | 2560 | wasn't exact. The @kbd{c 1} command is a handy way to clean up numbers |
| 2561 | in this case; it temporarily reduces the precision by one digit while it | 2561 | in this case; it temporarily reduces the precision by one digit while it |
| 2562 | re-rounds the number on the top of the stack. | 2562 | re-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 |
| 2598 | Here we compute the Inverse Sine of | 2598 | Here 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)}, |
| 2601 | first in radians, then in degrees. | 2601 | first in radians, then in degrees. |
| 2602 | 2602 | ||
| 2603 | Use @kbd{c d} and @kbd{c r} to convert a number from radians to degrees | 2603 | Use @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 | ||
| 2785 | Let's compute the sine and cosine of an angle, and verify the | 2785 | Let's compute the sine and cosine of an angle, and verify the |
| 2786 | identity | 2786 | identity |
| 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}. |
| 2789 | We'll arbitrarily pick @mathit{-64} degrees as a good value for @expr{x}. | 2789 | We'll arbitrarily pick @mathit{-64} degrees as a good value for @expr{x}. |
| 2790 | With the angular mode set to degrees (type @w{@kbd{m d}}), do: | 2790 | With 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.) | |||
| 2806 | Remember, @kbd{f h} is the @code{calc-hypot}, or square-root of sum | 2806 | Remember, @kbd{f h} is the @code{calc-hypot}, or square-root of sum |
| 2807 | of squares, command. | 2807 | of squares, command. |
| 2808 | 2808 | ||
| 2809 | Another identity is | 2809 | Another 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 | |||
| 2871 | A similar identity is supposed to hold for hyperbolic sines and cosines, | 2871 | A similar identity is supposed to hold for hyperbolic sines and cosines, |
| 2872 | except that it is the @emph{difference} | 2872 | except 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} |
| 2875 | that always equals one. Let's try to verify this identity. | 2875 | that 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 |
| 2996 | Here we verify the identity | 2996 | Here 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 | |||
| 3283 | vector. | 3283 | vector. |
| 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 |
| 3286 | of the above | 3286 | of the above |
| 3287 | @texline @math{2\times3} | 3287 | @texline @math{2\times3} |
| 3288 | @infoline 2x3 | 3288 | @infoline 2x3 |
| 3289 | matrix to get @expr{[6, 15]}. Now use @samp{*} to sum along the columns | 3289 | matrix to get @expr{[6, 15]}. Now use @samp{*} to sum along the columns |
| 3290 | to get @expr{[5, 7, 9]}. | 3290 | to 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 | |||
| 3432 | assume the vector was a row vector in order to make the dimensions | 3432 | assume the vector was a row vector in order to make the dimensions |
| 3433 | come out right, and the answer would be incorrect. If you | 3433 | come out right, and the answer would be incorrect. If you |
| 3434 | don't feel safe letting Calc take either interpretation of your | 3434 | don't feel safe letting Calc take either interpretation of your |
| 3435 | vectors, use explicit | 3435 | vectors, use explicit |
| 3436 | @texline @math{N\times1} | 3436 | @texline @math{N\times1} |
| 3437 | @infoline Nx1 | 3437 | @infoline Nx1 |
| 3438 | or | 3438 | or |
| @@ -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 |
| 3485 | Now | 3485 | Now |
| 3486 | @texline @math{A^T A} | 3486 | @texline @math{A^T A} |
| 3487 | @infoline @expr{trn(A)*A} | 3487 | @infoline @expr{trn(A)*A} |
| 3488 | is a square matrix so a solution is possible. It turns out that the | 3488 | is 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'' |
| 3490 | solution, which can be regarded as the ``closest'' solution to the set | 3490 | solution, 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 | |||
| 3577 | of each element. | 3577 | of 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 |
| 3580 | from | 3580 | from |
| 3581 | @texline @math{2^{-4}} | 3581 | @texline @math{2^{-4}} |
| 3582 | @infoline @expr{2^-4} | 3582 | @infoline @expr{2^-4} |
| 3583 | to @expr{2^4}. @xref{List Answer 1, 1}. (@bullet{}) | 3583 | to @expr{2^4}. @xref{List Answer 1, 1}. (@bullet{}) |
| 3584 | 3584 | ||
| 3585 | You can also @dfn{reduce} a binary operator across a vector. | 3585 | You 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 |
| 3783 | where | 3783 | where |
| 3784 | @texline @math{\sum x} | 3784 | @texline @math{\sum x} |
| 3785 | @infoline @expr{sum(x)} | 3785 | @infoline @expr{sum(x)} |
| 3786 | represents the sum of all the values of @expr{x}. While there is an | 3786 | represents the sum of all the values of @expr{x}. While there is an |
| 3787 | actual @code{sum} function in Calc, it's easier to sum a vector using a | 3787 | actual @code{sum} function in Calc, it's easier to sum a vector using a |
| 3788 | simple reduction. First, let's compute the four different sums that | 3788 | simple 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 | ||
| 3886 | Let's ``plot'' this straight line approximation, | 3886 | Let'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}, |
| 3889 | and compare it with the original data. | 3889 | and 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 |
| 3961 | replaced by a buffer named @samp{*Gnuplot Commands*}. The tutorial | 3961 | replaced by a buffer named @samp{*Gnuplot Commands*}. The tutorial |
| 3962 | will reappear when you terminate GNUPLOT by typing @kbd{g q}.) | 3962 | will 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} |
| 4142 | function @samp{besJ(1,x)} for @expr{x} from 0 to 5 in steps of 0.25. | 4142 | function @samp{besJ(1,x)} for @expr{x} from 0 to 5 in steps of 0.25. |
| 4143 | Find the value of @expr{x} (from among the above set of values) for | 4143 | Find the value of @expr{x} (from among the above set of values) for |
| 4144 | which @samp{besJ(1,x)} is a maximum. Use an ``automatic'' method, | 4144 | which @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} |
| 4154 | for @expr{m=12} (i.e., an integer of less than | 4154 | for @expr{m=12} (i.e., an integer of less than |
| 4155 | twelve digits). Convert this integer into a vector of @expr{m} | 4155 | twelve digits). Convert this integer into a vector of @expr{m} |
| 4156 | digits, each in the range from 0 to 9. In vector-of-digits notation, | 4156 | digits, 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{}) | |||
| 4164 | happened? How would you do this test? @xref{List Answer 10, 10}. (@bullet{}) | 4164 | happened? 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 |
| 4167 | is @cpi{}. The area of the | 4167 | is @cpi{}. The area of the |
| 4168 | @texline @math{2\times2} | 4168 | @texline @math{2\times2} |
| 4169 | @infoline 2x2 | 4169 | @infoline 2x2 |
| 4170 | square that encloses that circle is 4. So if we throw @var{n} darts at | 4170 | square that encloses that circle is 4. So if we throw @var{n} darts at |
| 4171 | random points in the square, about @cpiover{4} of them will land inside | 4171 | random points in the square, about @cpiover{4} of them will land inside |
| 4172 | the circle. This gives us an entertaining way to estimate the value of | 4172 | the 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}} |
| 4174 | command picks a random number between zero and the value on the stack. | 4174 | command picks a random number between zero and the value on the stack. |
| 4175 | We could get a random floating-point number between @mathit{-1} and 1 by typing | 4175 | We 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. | |||
| 4183 | another way to calculate @cpi{}. Say you have an infinite field | 4183 | another way to calculate @cpi{}. Say you have an infinite field |
| 4184 | of vertical lines with a spacing of one inch. Toss a one-inch matchstick | 4184 | of vertical lines with a spacing of one inch. Toss a one-inch matchstick |
| 4185 | onto the field. The probability that the matchstick will land crossing | 4185 | onto the field. The probability that the matchstick will land crossing |
| 4186 | a line turns out to be | 4186 | a 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}. |
| 4189 | Toss 100 matchsticks to estimate @cpi{}. (If you want still more fun, | 4189 | Toss 100 matchsticks to estimate @cpi{}. (If you want still more fun, |
| 4190 | the probability that the GCD (@w{@kbd{k g}}) of two large integers is | 4190 | the probability that the GCD (@w{@kbd{k g}}) of two large integers is |
| 4191 | one turns out to be | 4191 | one 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}. |
| 4194 | That provides yet another way to estimate @cpi{}.) | 4194 | That 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}} |
| 4492 | where @expr{R} is the radius of the circle that | 4492 | where @expr{R} is the radius of the circle that |
| 4493 | defines the center of the tube and @expr{r} is the radius of the tube | 4493 | defines the center of the tube and @expr{r} is the radius of the tube |
| 4494 | itself. Suppose @expr{R} is 20 cm and @expr{r} is 4 cm, each known to | 4494 | itself. 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 | |||
| 4569 | new number which, when multiplied by 5 modulo 24, produces the original | 4569 | new number which, when multiplied by 5 modulo 24, produces the original |
| 4570 | number, 21. If @var{m} is prime and the divisor is not a multiple of | 4570 | number, 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 |
| 4590 | says that | 4590 | says 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} |
| 4593 | if @expr{n} is a prime number and @expr{x} is an integer less than | 4593 | if @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. | |||
| 4615 | This calculation tells me it is six hours and 22 minutes until midnight. | 4615 | This 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 |
| 4618 | is about | 4618 | is 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}} |
| 4621 | seconds. What time will it be that many seconds from right now? | 4621 | seconds. 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} |
| 5096 | of | 5096 | of |
| 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 |
| 5100 | integral for integers @expr{y} from 1 to 5. @xref{Algebra Answer 3, | 5100 | integral for integers @expr{y} from 1 to 5. @xref{Algebra Answer 3, |
| 5101 | 3}. (@bullet{}) | 5101 | 3}. (@bullet{}) |
| 5102 | 5102 | ||
| 5103 | Calc's integrator can do many simple integrals symbolically, but many | 5103 | Calc's integrator can do many simple integrals symbolically, but many |
| 5104 | others are beyond its capabilities. Suppose we wish to find the area | 5104 | others are beyond its capabilities. Suppose we wish to find the area |
| 5105 | under the curve | 5105 | under 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)} |
| 5108 | over the same range of @expr{x}. If you entered this formula and typed | 5108 | over 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 |
| 5110 | long time but would be unable to find a solution. In fact, there is no | 5110 | long 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 | ||
| 5245 | Compute the integral from 1 to 2 of | 5245 | Compute 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)} |
| 5248 | using Simpson's rule with 10 slices. | 5248 | using Simpson's rule with 10 slices. |
| 5249 | @xref{Algebra Answer 4, 4}. (@bullet{}) | 5249 | @xref{Algebra Answer 4, 4}. (@bullet{}) |
| 5250 | 5250 | ||
| 5251 | Calc has a built-in @kbd{a I} command for doing numerical integration. | 5251 | Calc has a built-in @kbd{a I} command for doing numerical integration. |
| @@ -5396,7 +5396,7 @@ having to retype it. | |||
| 5396 | 5396 | ||
| 5397 | To edit a variable, type @kbd{s e} and the variable name, use regular | 5397 | To edit a variable, type @kbd{s e} and the variable name, use regular |
| 5398 | Emacs editing commands as necessary, then type @kbd{C-c C-c} to store | 5398 | Emacs editing commands as necessary, then type @kbd{C-c C-c} to store |
| 5399 | the edited value back into the variable. | 5399 | the edited value back into the variable. |
| 5400 | You can also use @w{@kbd{s e}} to create a new variable if you wish. | 5400 | You can also use @w{@kbd{s e}} to create a new variable if you wish. |
| 5401 | 5401 | ||
| 5402 | Notice that the first time you use each rule, Calc puts up a ``compiling'' | 5402 | Notice 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)} |
| 5784 | is defined as the integral of @samp{sin(t)/t} for | 5784 | is 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 |
| 5786 | integral has no solution in terms of basic functions; if you give it | 5786 | integral 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 |
| 5860 | Compute | 5860 | Compute |
| 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}, |
| 5863 | where @expr{x} is the number on the top of the stack. | 5863 | where @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 |
| 5925 | A fascinating property of the Fibonacci numbers is that the @expr{n}th | 5925 | A fascinating property of the Fibonacci numbers is that the @expr{n}th |
| 5926 | Fibonacci number can be found directly by computing | 5926 | Fibonacci 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)} |
| 5929 | and then rounding to the nearest integer, where | 5929 | and 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}, |
| 5932 | the ``golden ratio,'' is | 5932 | the ``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} |
| 5936 | variable, or the @kbd{I H P} command.) | 5936 | variable, 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} |
| 5949 | representation of | 5949 | representation of |
| 5950 | @texline @math{\phi} | 5950 | @texline @math{\phi} |
| 5951 | @infoline @expr{phi} | 5951 | @infoline @expr{phi} |
| 5952 | is | 5952 | is |
| 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/( ...@: )))}. |
| 5955 | We can compute an approximate value by carrying this however far | 5955 | We can compute an approximate value by carrying this however far |
| 5956 | and then replacing the innermost | 5956 | and then replacing the innermost |
| 5957 | @texline @math{1/( \ldots )} | 5957 | @texline @math{1/( \ldots )} |
| 5958 | @infoline @expr{1/( ...@: )} | 5958 | @infoline @expr{1/( ...@: )} |
| 5959 | by 1. Approximate | 5959 | by 1. Approximate |
| 5960 | @texline @math{\phi} | 5960 | @texline @math{\phi} |
| 5961 | @infoline @expr{phi} | 5961 | @infoline @expr{phi} |
| 5962 | using a twenty-term continued fraction. | 5962 | using 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. | |||
| 6056 | The @dfn{Bernoulli numbers} are a sequence with the interesting | 6056 | The @dfn{Bernoulli numbers} are a sequence with the interesting |
| 6057 | property that all of the odd Bernoulli numbers are zero, and the | 6057 | property that all of the odd Bernoulli numbers are zero, and the |
| 6058 | even ones, while difficult to compute, can be roughly approximated | 6058 | even ones, while difficult to compute, can be roughly approximated |
| 6059 | by the formula | 6059 | by 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}. |
| 6062 | Let's write a keyboard macro to compute (approximate) Bernoulli numbers. | 6062 | Let'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 |
| 6064 | this command is very slow for large @expr{n} since the higher Bernoulli | 6064 | this command is very slow for large @expr{n} since the higher Bernoulli |
| @@ -6166,7 +6166,7 @@ Z` ;; calc-kbd-push (Save local values) | |||
| 6166 | 0 ;; calc digits (Push a zero onto the stack) | 6166 | 0 ;; calc digits (Push a zero onto the stack) |
| 6167 | st ;; calc-store-into (Store it in the following variable) | 6167 | st ;; calc-store-into (Store it in the following variable) |
| 6168 | 1 ;; calc quick variable (Quick variable q1) | 6168 | 1 ;; calc quick variable (Quick variable q1) |
| 6169 | 1 ;; calc digits (Initial value for the loop) | 6169 | 1 ;; calc digits (Initial value for the loop) |
| 6170 | TAB ;; calc-roll-down (Swap initial and final) | 6170 | TAB ;; calc-roll-down (Swap initial and final) |
| 6171 | Z( ;; calc-kbd-for (Begin the "for" loop) | 6171 | Z( ;; 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 | ||
| 6194 | The @file{edmacro} package defines a handy @code{read-kbd-macro} command | 6194 | The @file{edmacro} package defines a handy @code{read-kbd-macro} command |
| 6195 | which reads the current region of the current buffer as a sequence of | 6195 | which reads the current region of the current buffer as a sequence of |
| 6196 | keystroke names, and defines that sequence on the @kbd{X} | 6196 | keystroke 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 |
| 6198 | command on the @kbd{C-x * m} key. Try reading in this macro in the | 6198 | command on the @kbd{C-x * m} key. Try reading in this macro in the |
| 6199 | following form: Press @kbd{C-@@} (or @kbd{C-@key{SPC}}) at | 6199 | following form: Press @kbd{C-@@} (or @kbd{C-@key{SPC}}) at |
| 6200 | one end of the text below, then type @kbd{C-x * m} at the other. | 6200 | one 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)} $$ | |||
| 6230 | where @expr{f'(x)} is the derivative of @expr{f}. The @expr{x} | 6230 | where @expr{f'(x)} is the derivative of @expr{f}. The @expr{x} |
| 6231 | values will quickly converge to a solution, i.e., eventually | 6231 | values 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} |
| 6234 | and @expr{x} will be equal to within the limits | 6234 | and @expr{x} will be equal to within the limits |
| 6235 | of the current precision. Write a program which takes a formula | 6235 | of the current precision. Write a program which takes a formula |
| 6236 | involving the variable @expr{x}, and an initial guess @expr{x_0}, | 6236 | involving the variable @expr{x}, and an initial guess @expr{x_0}, |
| 6237 | on the stack, and produces a value of @expr{x} for which the formula | 6237 | on the stack, and produces a value of @expr{x} for which the formula |
| 6238 | is zero. Use it to find a solution of | 6238 | is 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} |
| 6241 | near @expr{x = 4.5}. (Use angles measured in radians.) Note that | 6241 | near @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)} |
| 6251 | is defined as the derivative of | 6251 | is 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))}. |
| 6254 | For large values of @expr{z}, it can be approximated by the infinite sum | 6254 | For 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 |
| 6270 | where | 6270 | where |
| 6271 | @texline @math{\sum} | 6271 | @texline @math{\sum} |
| 6272 | @infoline @expr{sum} | 6272 | @infoline @expr{sum} |
| 6273 | represents the sum over @expr{n} from 1 to infinity | 6273 | represents 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 |
| 6275 | the @code{bern} function produces (exact) Bernoulli numbers. | 6275 | the @code{bern} function produces (exact) Bernoulli numbers. |
| @@ -6277,27 +6277,27 @@ While this sum is not guaranteed to converge, in practice it is safe. | |||
| 6277 | An interesting mathematical constant is Euler's gamma, which is equal | 6277 | An interesting mathematical constant is Euler's gamma, which is equal |
| 6278 | to about 0.5772. One way to compute it is by the formula, | 6278 | to 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)}. |
| 6281 | Unfortunately, 1 isn't a large enough argument | 6281 | Unfortunately, 1 isn't a large enough argument |
| 6282 | for the above formula to work (5 is a much safer value for @expr{z}). | 6282 | for the above formula to work (5 is a much safer value for @expr{z}). |
| 6283 | Fortunately, we can compute | 6283 | Fortunately, we can compute |
| 6284 | @texline @math{\psi(1)} | 6284 | @texline @math{\psi(1)} |
| 6285 | @infoline @expr{psi(1)} | 6285 | @infoline @expr{psi(1)} |
| 6286 | from | 6286 | from |
| 6287 | @texline @math{\psi(5)} | 6287 | @texline @math{\psi(5)} |
| 6288 | @infoline @expr{psi(5)} | 6288 | @infoline @expr{psi(5)} |
| 6289 | using the recurrence | 6289 | using 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}. |
| 6292 | Your task: Develop a program to compute | 6292 | Your 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)}; |
| 6295 | it should ``pump up'' @expr{z} | 6295 | it should ``pump up'' @expr{z} |
| 6296 | if necessary to be greater than 5, then use the above summation | 6296 | if necessary to be greater than 5, then use the above summation |
| 6297 | formula. Use looping commands to compute the sum. Use your function | 6297 | formula. Use looping commands to compute the sum. Use your function |
| 6298 | to compute | 6298 | to compute |
| 6299 | @texline @math{\gamma} | 6299 | @texline @math{\gamma} |
| 6300 | @infoline @expr{gamma} | 6300 | @infoline @expr{gamma} |
| 6301 | to twelve decimal places. (Calc has a built-in command | 6301 | to twelve decimal places. (Calc has a built-in command |
| 6302 | for Euler's constant, @kbd{I P}, which you can use to check your answer.) | 6302 | for 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 | ||
| 6473 | The result is | 6473 | The 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 | ||
| 6484 | After computing the intermediate term | 6484 | After 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}, |
| 6487 | you can leave that result on the stack while you compute the second | 6487 | you can leave that result on the stack while you compute the second |
| 6488 | term. With both of these results waiting on the stack you can then | 6488 | term. With both of these results waiting on the stack you can then |
| 6489 | compute the final term, then press @kbd{+ +} to add everything up. | 6489 | compute 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 | |||
| 6790 | give a floating-point result that is inaccurate even when rounded | 6790 | give a floating-point result that is inaccurate even when rounded |
| 6791 | down to an integer. Consider @expr{123456789 / 2} when the current | 6791 | down to an integer. Consider @expr{123456789 / 2} when the current |
| 6792 | precision is 6 digits. The true answer is @expr{61728394.5}, but | 6792 | precision is 6 digits. The true answer is @expr{61728394.5}, but |
| 6793 | with a precision of 6 this will be rounded to | 6793 | with 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.}. |
| 6796 | The result, when converted to an integer, will be off by 106. | 6796 | The 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 |
| 6903 | To solve | 6903 | To 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}, |
| 6906 | first we compute | 6906 | first 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} |
| 6909 | and | 6909 | and |
| 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}; |
| 6912 | now, we have a system | 6912 | now, 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} |
| 6915 | which we can solve using Calc's @samp{/} command. | 6915 | which we can solve using Calc's @samp{/} command. |
| 6916 | 6916 | ||
| 6917 | @ifnottex | 6917 | @ifnottex |
| @@ -6942,7 +6942,7 @@ $$ | |||
| 6942 | The first step is to enter the coefficient matrix. We'll store it in | 6942 | The first step is to enter the coefficient matrix. We'll store it in |
| 6943 | quick variable number 7 for later reference. Next, we compute the | 6943 | quick 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} |
| 6946 | vector. | 6946 | vector. |
| 6947 | 6947 | ||
| 6948 | @smallexample | 6948 | @smallexample |
| @@ -6958,9 +6958,9 @@ vector. | |||
| 6958 | @end smallexample | 6958 | @end smallexample |
| 6959 | 6959 | ||
| 6960 | @noindent | 6960 | @noindent |
| 6961 | Now we compute the matrix | 6961 | Now we compute the matrix |
| 6962 | @texline @math{A'} | 6962 | @texline @math{A'} |
| 6963 | @infoline @expr{A2} | 6963 | @infoline @expr{A2} |
| 6964 | and divide. | 6964 | and 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 |
| 6980 | round-off error.) | 6980 | round-off error.) |
| 6981 | 6981 | ||
| 6982 | Notice that the answers are similar to those for the | 6982 | Notice 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 |
| 6985 | system solved in the text. That's because the fourth equation that was | 6985 | system solved in the text. That's because the fourth equation that was |
| 6986 | added to the system is almost identical to the first one multiplied | 6986 | added to the system is almost identical to the first one multiplied |
| 6987 | by two. (If it were identical, we would have gotten the exact same | 6987 | by two. (If it were identical, we would have gotten the exact same |
| 6988 | answer since the | 6988 | answer since the |
| 6989 | @texline @math{4\times3} | 6989 | @texline @math{4\times3} |
| 6990 | @infoline 4x3 | 6990 | @infoline 4x3 |
| 6991 | system would be equivalent to the original | 6991 | system would be equivalent to the original |
| 6992 | @texline @math{3\times3} | 6992 | @texline @math{3\times3} |
| 6993 | @infoline 3x3 | 6993 | @infoline 3x3 |
| 6994 | system.) | 6994 | system.) |
| @@ -7064,7 +7064,7 @@ $$ m \times x + b \times 1 = y $$ | |||
| 7064 | \afterdisplay | 7064 | \afterdisplay |
| 7065 | @end tex | 7065 | @end tex |
| 7066 | 7066 | ||
| 7067 | Thus we want a | 7067 | Thus we want a |
| 7068 | @texline @math{19\times2} | 7068 | @texline @math{19\times2} |
| 7069 | @infoline 19x2 | 7069 | @infoline 19x2 |
| 7070 | matrix with our @expr{x} vector as one column and | 7070 | matrix 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 |
| 7086 | Now we compute | 7086 | Now 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} |
| 7089 | and | 7089 | and |
| 7090 | @texline @math{A^T A} | 7090 | @texline @math{A^T A} |
| 7091 | @infoline @expr{trn(A) * A} | 7091 | @infoline @expr{trn(A) * A} |
| 7092 | and divide. | 7092 | and 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 | ||
| 7117 | Since we were solving equations of the form | 7117 | Since 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}, |
| 7120 | these numbers should be @expr{m} and @expr{b}, respectively. Sure | 7120 | these numbers should be @expr{m} and @expr{b}, respectively. Sure |
| 7121 | enough, they agree exactly with the result computed using @kbd{V M} and | 7121 | enough, 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 |
| 7180 | A number @expr{j} is a divisor of @expr{n} if | 7180 | A 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}. |
| 7183 | The first step is to get a vector that identifies the divisors. | 7183 | The 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 | |||
| 7248 | zero, so adding zeros on the left and right is safe. From then on | 7248 | zero, so adding zeros on the left and right is safe. From then on |
| 7249 | the job is pretty straightforward. | 7249 | the job is pretty straightforward. |
| 7250 | 7250 | ||
| 7251 | Incidentally, Calc provides the | 7251 | Incidentally, 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} |
| 7254 | function which is zero if and only if its argument is square-free. It | 7254 | function which is zero if and only if its argument is square-free. It |
| 7255 | would be a much more convenient way to do the above test in practice. | 7255 | would 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. | |||
| 7282 | The numbers down the lefthand edge of the list we desire are called | 7282 | The numbers down the lefthand edge of the list we desire are called |
| 7283 | the ``triangular numbers'' (now you know why!). The @expr{n}th | 7283 | the ``triangular numbers'' (now you know why!). The @expr{n}th |
| 7284 | triangular number is the sum of the integers from 1 to @expr{n}, and | 7284 | triangular number is the sum of the integers from 1 to @expr{n}, and |
| 7285 | can be computed directly by the formula | 7285 | can 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 |
| 7380 | It's a good idea to verify, as in the last step above, that only | 7380 | It's a good idea to verify, as in the last step above, that only |
| 7381 | one value is equal to the maximum. (After all, a plot of | 7381 | one 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)} |
| 7384 | might have many points all equal to the maximum value, 1.) | 7384 | might have many points all equal to the maximum value, 1.) |
| @@ -7650,12 +7650,12 @@ return to full-sized display of vectors. | |||
| 7650 | This problem can be made a lot easier by taking advantage of some | 7650 | This problem can be made a lot easier by taking advantage of some |
| 7651 | symmetries. First of all, after some thought it's clear that the | 7651 | symmetries. 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} |
| 7653 | component for one end of the match, pick a random direction | 7653 | component 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}, |
| 7656 | and see if @expr{x} and | 7656 | and 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. |
| 7660 | The lines are at integer coordinates, so this happens when the two | 7660 | The lines are at integer coordinates, so this happens when the two |
| 7661 | numbers surround an integer. | 7661 | numbers surround an integer. |
| @@ -7670,9 +7670,9 @@ In fact, since the field of lines is infinite we can choose the | |||
| 7670 | coordinates 0 and 1 for the lines on either side of the leftmost | 7670 | coordinates 0 and 1 for the lines on either side of the leftmost |
| 7671 | endpoint. The rightmost endpoint will be between 0 and 1 if the | 7671 | endpoint. The rightmost endpoint will be between 0 and 1 if the |
| 7672 | match does not cross a line, or between 1 and 2 if it does. So: | 7672 | match does not cross a line, or between 1 and 2 if it does. So: |
| 7673 | Pick random @expr{x} and | 7673 | Pick random @expr{x} and |
| 7674 | @texline @math{\theta}, | 7674 | @texline @math{\theta}, |
| 7675 | @infoline @expr{theta}, | 7675 | @infoline @expr{theta}, |
| 7676 | compute | 7676 | compute |
| 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 | |||
| 8997 | algebraic entry, whichever way you prefer: | 8997 | algebraic entry, whichever way you prefer: |
| 8998 | 8998 | ||
| 8999 | @noindent | 8999 | @noindent |
| 9000 | Computing | 9000 | Computing |
| 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 |
| 9070 | This program is quite efficient because Calc knows how to raise a | 9070 | This program is quite efficient because Calc knows how to raise a |
| 9071 | matrix (or other value) to the power @expr{n} in only | 9071 | matrix (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)} |
| 9074 | steps. For example, this program can compute the 1000th Fibonacci | 9074 | steps. For example, this program can compute the 1000th Fibonacci |
| @@ -9122,7 +9122,7 @@ harmonic number is 4.02. | |||
| 9122 | 9122 | ||
| 9123 | @noindent | 9123 | @noindent |
| 9124 | The first step is to compute the derivative @expr{f'(x)} and thus | 9124 | The first step is to compute the derivative @expr{f'(x)} and thus |
| 9125 | the formula | 9125 | the 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 |
| 9240 | The first step is to adjust @expr{z} to be greater than 5. A simple | 9240 | The 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 |
| 9242 | reduce the problem using | 9242 | reduce 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 |
| 9245 | on to compute | 9245 | on 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)}, |
| 9248 | and remember to add back a factor of @expr{-1/z} when we're done. This | 9248 | and remember to add back a factor of @expr{-1/z} when we're done. This |
| 9249 | step is repeated until @expr{z > 5}. | 9249 | step 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 | ||
| 9286 | Now we compute the initial part of the sum: | 9286 | Now 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} |
| 9289 | minus the adjustment factor. | 9289 | minus 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 | ||
| 9329 | This is the value of | 9329 | This is the value of |
| 9330 | @texline @math{-\gamma}, | 9330 | @texline @math{-\gamma}, |
| 9331 | @infoline @expr{- gamma}, | 9331 | @infoline @expr{- gamma}, |
| 9332 | with a slight bit of roundoff error. To get a full 12 digits, let's use | 9332 | with a slight bit of roundoff error. To get a full 12 digits, let's use |
| 9333 | a higher precision: | 9333 | a higher precision: |
| 9334 | 9334 | ||
| @@ -9361,9 +9361,9 @@ C-x ) | |||
| 9361 | 9361 | ||
| 9362 | @noindent | 9362 | @noindent |
| 9363 | Taking the derivative of a term of the form @expr{x^n} will produce | 9363 | Taking the derivative of a term of the form @expr{x^n} will produce |
| 9364 | a term like | 9364 | a 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)}. |
| 9367 | Taking the derivative of a constant | 9367 | Taking the derivative of a constant |
| 9368 | produces zero. From this it is easy to see that the @expr{n}th | 9368 | produces zero. From this it is easy to see that the @expr{n}th |
| 9369 | derivative of a polynomial, evaluated at @expr{x = 0}, will equal the | 9369 | derivative 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 |
| 9654 | In most installations, the @kbd{C-x * c} key sequence is a more | 9654 | In most installations, the @kbd{C-x * c} key sequence is a more |
| 9655 | convenient way to start the Calculator. Also, @kbd{C-x * *} | 9655 | convenient way to start the Calculator. Also, @kbd{C-x * *} |
| 9656 | is a synonym for @kbd{C-x * c} unless you last used Calc | 9656 | is a synonym for @kbd{C-x * c} unless you last used Calc |
| 9657 | in its Keypad mode. | 9657 | in 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 |
| 9821 | The @kbd{?} key (@code{calc-help}) displays a series of brief help messages. | 9821 | The @kbd{?} key (@code{calc-help}) displays a series of brief help messages. |
| 9822 | Some keys (such as @kbd{b} and @kbd{d}) are prefix keys, like Emacs' | 9822 | Some 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 |
| 9825 | prefix. (If the message includes @samp{[MORE]}, press @kbd{?} again | 9825 | prefix. (If the message includes @samp{[MORE]}, press @kbd{?} again |
| @@ -9908,9 +9908,9 @@ additional notes from the summary that apply to this command. | |||
| 9908 | The @kbd{h f} (@code{calc-describe-function}) command looks up an | 9908 | The @kbd{h f} (@code{calc-describe-function}) command looks up an |
| 9909 | algebraic function or a command name in the Calc manual. Enter an | 9909 | algebraic function or a command name in the Calc manual. Enter an |
| 9910 | algebraic function name to look up that function in the Function | 9910 | algebraic function name to look up that function in the Function |
| 9911 | Index or enter a command name beginning with @samp{calc-} to look it | 9911 | Index or enter a command name beginning with @samp{calc-} to look it |
| 9912 | up in the Command Index. This command will also look up operator | 9912 | up in the Command Index. This command will also look up operator |
| 9913 | symbols that can appear in algebraic formulas, like @samp{%} and | 9913 | symbols 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 |
| 10039 | The @kbd{'} (@code{calc-algebraic-entry}) command can be used to enter | 10039 | The @kbd{'} (@code{calc-algebraic-entry}) command can be used to enter |
| 10040 | calculations in algebraic form. This is accomplished by typing the | 10040 | calculations in algebraic form. This is accomplished by typing the |
| 10041 | apostrophe key, ', followed by the expression in standard format: | 10041 | apostrophe 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 |
| 10048 | This will compute | 10048 | This 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} |
| 10051 | and push it on the stack. If you wish you can | 10051 | and push it on the stack. If you wish you can |
| 10052 | ignore the RPN aspect of Calc altogether and simply enter algebraic | 10052 | ignore the RPN aspect of Calc altogether and simply enter algebraic |
| 10053 | expressions in this way. You may want to use @key{DEL} every so often to | 10053 | expressions 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 | |||
| 10453 | approximation. This value will not need to be recomputed ever again | 10453 | approximation. This value will not need to be recomputed ever again |
| 10454 | unless you raise the precision still further. Many operations such as | 10454 | unless you raise the precision still further. Many operations such as |
| 10455 | logarithms and sines make use of similarly cached values such as | 10455 | logarithms 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)}. |
| 10459 | The visible effect of caching is that | 10459 | The visible effect of caching is that |
| 10460 | high-precision computations may seem to do extra work the first time. | 10460 | high-precision computations may seem to do extra work the first time. |
| 10461 | Other things cached include powers of two (for the binary arithmetic | 10461 | Other things cached include powers of two (for the binary arithmetic |
| @@ -10612,10 +10612,10 @@ form). The numerator and denominator always use the same radix. | |||
| 10612 | A floating-point number or @dfn{float} is a number stored in scientific | 10612 | A floating-point number or @dfn{float} is a number stored in scientific |
| 10613 | notation. The number of significant digits in the fractional part is | 10613 | notation. The number of significant digits in the fractional part is |
| 10614 | governed by the current floating precision (@pxref{Precision}). The | 10614 | governed by the current floating precision (@pxref{Precision}). The |
| 10615 | range of acceptable values is from | 10615 | range 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 | |||
| 10666 | float that is entered in a radix other that 10 will be converted to | 10666 | float that is entered in a radix other that 10 will be converted to |
| 10667 | decimal, the number that Calc stores may not be exactly the number that | 10667 | decimal, the number that Calc stores may not be exactly the number that |
| 10668 | was entered, it will be the closest decimal approximation given the | 10668 | was entered, it will be the closest decimal approximation given the |
| 10669 | current precison. The notation @samp{@var{radix}#@var{ddd}.@var{ddd}} | 10669 | current precision. The notation @samp{@var{radix}#@var{ddd}.@var{ddd}} |
| 10670 | is a floating-point number whose digits are in the specified radix. | 10670 | is a floating-point number whose digits are in the specified radix. |
| 10671 | Note that the @samp{.} is more aptly referred to as a ``radix point'' | 10671 | Note that the @samp{.} is more aptly referred to as a ``radix point'' |
| 10672 | than as a decimal point in this case. The number @samp{8#123.4567} is | 10672 | than 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 | |||
| 10690 | Rectangular complex numbers can also be displayed in @samp{@var{a}+@var{b}i} | 10690 | Rectangular complex numbers can also be displayed in @samp{@var{a}+@var{b}i} |
| 10691 | notation; @pxref{Complex Formats}. | 10691 | notation; @pxref{Complex Formats}. |
| 10692 | 10692 | ||
| 10693 | Polar complex numbers are displayed in the form | 10693 | Polar 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{)}' |
| 10696 | where @var{r} is the nonnegative magnitude and | 10696 | where @var{r} is the nonnegative magnitude and |
| 10697 | @texline @math{\theta} | 10697 | @texline @math{\theta} |
| 10698 | @infoline @var{theta} | 10698 | @infoline @var{theta} |
| 10699 | is the argument or phase angle. The range of | 10699 | is the argument or phase angle. The range of |
| 10700 | @texline @math{\theta} | 10700 | @texline @math{\theta} |
| 10701 | @infoline @var{theta} | 10701 | @infoline @var{theta} |
| 10702 | depends on the current angular mode (@pxref{Angular Modes}); it is | 10702 | depends on the current angular mode (@pxref{Angular Modes}); it is |
| 10703 | generally between @mathit{-180} and @mathit{+180} degrees or the equivalent range | 10703 | generally between @mathit{-180} and @mathit{+180} degrees or the equivalent range |
| 10704 | in radians. | 10704 | in radians. |
| 10705 | 10705 | ||
| 10706 | Complex numbers are entered in stages using incomplete objects. | 10706 | Complex 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 | |||
| 10742 | larger, becomes arbitrarily close to zero. So you can imagine | 10742 | larger, becomes arbitrarily close to zero. So you can imagine |
| 10743 | that if @expr{x} got ``all the way to infinity,'' then @expr{1 / x} | 10743 | that if @expr{x} got ``all the way to infinity,'' then @expr{1 / x} |
| 10744 | would go all the way to zero. Similarly, when they say that | 10744 | would 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)} |
| 10748 | grows without bound as @expr{x} grows. The symbol @samp{-inf} likewise | 10748 | grows without bound as @expr{x} grows. The symbol @samp{-inf} likewise |
| 10749 | stands for an infinitely negative real value; for example, we say that | 10749 | stands 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 |
| 10841 | Algebraic functions for building vectors include @samp{vec(a, b, c)} | 10841 | Algebraic functions for building vectors include @samp{vec(a, b, c)} |
| 10842 | to build @samp{[a, b, c]}, @samp{cvec(a, n, m)} to build an | 10842 | to 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} |
| 10845 | matrix of @samp{a}s, and @samp{index(n)} to build a vector of integers | 10845 | matrix 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. |
| 11102 | This is the length of a Julian cycle. Working backwards, the previous | 11102 | This is the length of a Julian cycle. Working backwards, the previous |
| 11103 | year in which all three cycles began was 4713 BC, and so Scalinger | 11103 | year in which all three cycles began was 4713 BC, and so Scaliger |
| 11104 | chose that year as the beginning of a Julian cycle. Since at the time | 11104 | chose that year as the beginning of a Julian cycle. Since at the time |
| 11105 | there were no historical records from before 4713 BC, using this year | 11105 | there were no historical records from before 4713 BC, using this year |
| 11106 | as a starting point had the advantage of avoiding negative year | 11106 | as 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 | |||
| 11184 | division is left in symbolic form. Other operations, such as square | 11184 | division is left in symbolic form. Other operations, such as square |
| 11185 | roots, are not yet supported for modulo forms. (Note that, although | 11185 | roots, 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'' |
| 11187 | in the sense of reducing | 11187 | in the sense of reducing |
| 11188 | @texline @math{\sqrt a} | 11188 | @texline @math{\sqrt a} |
| 11189 | @infoline @expr{sqrt(a)} | 11189 | @infoline @expr{sqrt(a)} |
| 11190 | modulo @expr{M}, this is not a useful definition from the | 11190 | modulo @expr{M}, this is not a useful definition from the |
| 11191 | number-theoretical point of view.) | 11191 | number-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 |
| 11221 | An @dfn{error form} is a number with an associated standard | 11221 | An @dfn{error form} is a number with an associated standard |
| 11222 | deviation, as in @samp{2.3 +/- 0.12}. The notation | 11222 | deviation, 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' |
| 11225 | stands for an uncertain value which follows | 11225 | stands for an uncertain value which follows |
| 11226 | a normal or Gaussian distribution of mean @expr{x} and standard | 11226 | a normal or Gaussian distribution of mean @expr{x} and standard |
| 11227 | deviation or ``error'' | 11227 | deviation or ``error'' |
| 11228 | @texline @math{\sigma}. | 11228 | @texline @math{\sigma}. |
| 11229 | @infoline @expr{sigma}. | 11229 | @infoline @expr{sigma}. |
| 11230 | Both the mean and the error can be either numbers or | 11230 | Both the mean and the error can be either numbers or |
| @@ -11235,7 +11235,7 @@ regular number by the Calculator. | |||
| 11235 | 11235 | ||
| 11236 | All arithmetic and transcendental functions accept error forms as input. | 11236 | All arithmetic and transcendental functions accept error forms as input. |
| 11237 | Operations on the mean-value part work just like operations on regular | 11237 | Operations on the mean-value part work just like operations on regular |
| 11238 | numbers. The error part for any function @expr{f(x)} (such as | 11238 | numbers. 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)}) |
| 11241 | is defined by the error of @expr{x} times the derivative of @expr{f} | 11241 | is 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 | |||
| 11267 | of standard deviations. Actual errors often are neither Gaussian-distributed | 11267 | of standard deviations. Actual errors often are neither Gaussian-distributed |
| 11268 | nor uncorrelated, and the above formulas are valid only when errors | 11268 | nor uncorrelated, and the above formulas are valid only when errors |
| 11269 | are small. As an example, the error arising from | 11269 | are 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{)}' |
| 11272 | is | 11272 | is |
| 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{))}'. |
| 11275 | When @expr{x} is close to zero, | 11275 | When @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)} |
| 11278 | is close to one so the error in the sine is close to | 11278 | is 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}; |
| 11281 | this makes sense, since | 11281 | this makes sense, since |
| 11282 | @texline @math{\sin x} | 11282 | @texline @math{\sin x} |
| 11283 | @infoline @expr{sin(x)} | 11283 | @infoline @expr{sin(x)} |
| 11284 | is approximately @expr{x} near zero, so a given error in @expr{x} will | 11284 | is approximately @expr{x} near zero, so a given error in @expr{x} will |
| 11285 | produce about the same error in the sine. Likewise, near 90 degrees | 11285 | produce 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)} |
| 11288 | is nearly zero and so the computed error is | 11288 | is nearly zero and so the computed error is |
| 11289 | small: The sine curve is nearly flat in that region, so an error in @expr{x} | 11289 | small: The sine curve is nearly flat in that region, so an error in @expr{x} |
| 11290 | has relatively little effect on the value of | 11290 | has 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)}. |
| 11293 | However, consider @samp{sin(90 +/- 1000)}. The cosine of 90 is zero, so | 11293 | However, consider @samp{sin(90 +/- 1000)}. The cosine of 90 is zero, so |
| 11294 | Calc will report zero error! We get an obviously wrong result because | 11294 | Calc will report zero error! We get an obviously wrong result because |
| 11295 | we have violated the small-error approximation underlying the error | 11295 | we have violated the small-error approximation underlying the error |
| 11296 | analysis. If the error in @expr{x} had been small, the error in | 11296 | analysis. 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)} |
| 11299 | would indeed have been negligible. | 11299 | would 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 | ||
| 11403 | While it may seem that intervals and error forms are similar, they are | 11403 | While it may seem that intervals and error forms are similar, they are |
| 11404 | based on entirely different concepts of inexact quantities. An error | 11404 | based on entirely different concepts of inexact quantities. An error |
| 11405 | form | 11405 | form |
| 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}' |
| 11408 | means a variable is random, and its value could | 11408 | means a variable is random, and its value could |
| 11409 | be anything but is ``probably'' within one | 11409 | be anything but is ``probably'' within one |
| 11410 | @texline @math{\sigma} | 11410 | @texline @math{\sigma} |
| 11411 | @infoline @var{sigma} | 11411 | @infoline @var{sigma} |
| 11412 | of the mean value @expr{x}. An interval | 11412 | of 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 |
| 11414 | variable's value is unknown, but guaranteed to lie in the specified | 11414 | variable's value is unknown, but guaranteed to lie in the specified |
| 11415 | range. Error forms are statistical or ``average case'' approximations; | 11415 | range. 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 | ||
| 11643 | Note that, unlike in usual computer notation, multiplication binds more | 11643 | Note that, unlike in usual computer notation, multiplication binds more |
| 11644 | strongly than division: @samp{a*b/c*d} is equivalent to | 11644 | strongly 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 | |||
| 11858 | stack and the point on the line containing @samp{30}, @kbd{C-x C-t} | 11858 | stack and the point on the line containing @samp{30}, @kbd{C-x C-t} |
| 11859 | creates @samp{10 20 40 30 50}. More generally, @kbd{C-x C-t} acts on | 11859 | creates @samp{10 20 40 30 50}. More generally, @kbd{C-x C-t} acts on |
| 11860 | the stack objects determined by the current point (and mark) similar | 11860 | the stack objects determined by the current point (and mark) similar |
| 11861 | to how the text-mode command @code{transpose-lines} acts on | 11861 | to how the text-mode command @code{transpose-lines} acts on |
| 11862 | lines. With argument @var{n}, @kbd{C-x C-t} will move the stack object | 11862 | lines. With argument @var{n}, @kbd{C-x C-t} will move the stack object |
| 11863 | at the level above the current point and move it past N other objects; | 11863 | at the level above the current point and move it past N other objects; |
| 11864 | for example, with @samp{10 20 30 40 50} on the stack and the point on | 11864 | for example, with @samp{10 20 30 40 50} on the stack and the point on |
| 11865 | the line containing @samp{30}, @kbd{C-u 2 C-x C-t} creates | 11865 | the 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 |
| 11867 | the stack objects at the levels determined by the point and the mark. | 11867 | the 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}. | |||
| 12056 | With the exception of keyboard macros, this works for all commands that | 12056 | With the exception of keyboard macros, this works for all commands that |
| 12057 | take arguments off the stack. (To avoid potentially unpleasant behavior, | 12057 | take arguments off the stack. (To avoid potentially unpleasant behavior, |
| 12058 | a @kbd{K} prefix before a keyboard macro will be ignored. A @kbd{K} | 12058 | a @kbd{K} prefix before a keyboard macro will be ignored. A @kbd{K} |
| 12059 | prefix called @emph{within} the keyboard macro will still take effect.) | 12059 | prefix called @emph{within} the keyboard macro will still take effect.) |
| 12060 | As another example, @kbd{K a s} simplifies a formula, pushing the | 12060 | As another example, @kbd{K a s} simplifies a formula, pushing the |
| 12061 | simplified version of the formula onto the stack after the original | 12061 | simplified version of the formula onto the stack after the original |
| 12062 | formula (rather than replacing the original formula). Note that you | 12062 | formula (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 | |||
| 12064 | formula and then simplifying the copy. One difference is that for a very | 12064 | formula and then simplifying the copy. One difference is that for a very |
| 12065 | large formula the time taken to format the intermediate copy in | 12065 | large 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 |
| 12067 | extra work. | 12067 | extra work. |
| 12068 | 12068 | ||
| 12069 | Even stack manipulation commands are affected. @key{TAB} works by | 12069 | Even stack manipulation commands are affected. @key{TAB} works by |
| 12070 | popping two values and pushing them back in the opposite order, | 12070 | popping 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}. | |||
| 12155 | If the file name you give is your user init file (typically | 12155 | If 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 |
| 12157 | is because your user init file may contain other things you don't want | 12157 | is because your user init file may contain other things you don't want |
| 12158 | to reread. You can give | 12158 | to reread. You can give |
| 12159 | a numeric prefix argument of 1 to @kbd{m F} to force it to read the | 12159 | a numeric prefix argument of 1 to @kbd{m F} to force it to read the |
| 12160 | file no matter what. Conversely, an argument of @mathit{-1} tells | 12160 | file 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 |
| 12275 | The @kbd{O} key (@code{calc-option}) sets another flag, the | 12275 | The @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 |
| 12277 | various ways. | 12277 | various ways. |
| 12278 | 12278 | ||
| 12279 | The Inverse, Hyperbolic and Option flags apply only to the next | 12279 | The Inverse, Hyperbolic and Option flags apply only to the next |
| 12280 | Calculator command, after which they are automatically cleared. (They | 12280 | Calculator command, after which they are automatically cleared. (They |
| @@ -12366,7 +12366,7 @@ result cannot be expressed as an integer. In some cases you would | |||
| 12366 | rather get an exact fractional answer. One way to accomplish this is | 12366 | rather get an exact fractional answer. One way to accomplish this is |
| 12367 | to use the @kbd{:} (@code{calc-fdiv}) [@code{fdiv}] command, which | 12367 | to use the @kbd{:} (@code{calc-fdiv}) [@code{fdiv}] command, which |
| 12368 | divides the two integers on the top of the stack to produce a fraction: | 12368 | divides 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, | |||
| 12878 | use @samp{[[-inf .. 0), (0 .. inf]]}. (There is no way in the | 12878 | use @samp{[[-inf .. 0), (0 .. inf]]}. (There is no way in the |
| 12879 | current notation to say that @code{x} is nonzero but not necessarily | 12879 | current notation to say that @code{x} is nonzero but not necessarily |
| 12880 | real.) The @kbd{a e} command does ``unsafe'' simplifications, | 12880 | real.) The @kbd{a e} command does ``unsafe'' simplifications, |
| 12881 | including cancelling @samp{x} from the equation when @samp{x} is | 12881 | including canceling @samp{x} from the equation when @samp{x} is |
| 12882 | not known to be nonzero. | 12882 | not known to be nonzero. |
| 12883 | 12883 | ||
| 12884 | Another set of type symbols distinguish between scalars and vectors. | 12884 | Another 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}) | |||
| 13155 | command causes integers to be padded out with leading zeros according to the | 13155 | command causes integers to be padded out with leading zeros according to the |
| 13156 | current binary word size. (@xref{Binary Functions}, for a discussion of | 13156 | current binary word size. (@xref{Binary Functions}, for a discussion of |
| 13157 | word size.) If the absolute value of the word size is @expr{w}, all integers | 13157 | word size.) If the absolute value of the word size is @expr{w}, all integers |
| 13158 | are displayed with at least enough digits to represent | 13158 | are 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} |
| 13161 | in the current radix. (Larger integers will still be displayed in their | 13161 | in the current radix. (Larger integers will still be displayed in their |
| 13162 | entirety.) | 13162 | entirety.) |
| 13163 | 13163 | ||
| 13164 | @cindex Two's complements | 13164 | @cindex Two's complements |
| 13165 | Calc can display @expr{w}-bit integers using two's complement | 13165 | Calc can display @expr{w}-bit integers using two's complement |
| @@ -13181,7 +13181,7 @@ the integers from @expr{0} to | |||
| 13181 | are represented by themselves and the integers from | 13181 | are 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)} |
| 13184 | to @expr{-1} are represented by the integers from | 13184 | to @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)} |
| 13187 | to @expr{2^w-1} (the integer @expr{k} is represented by @expr{k+2^w}). | 13187 | to @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 | |||
| 13190 | representation (including any leading zeros necessary to include all | 13190 | representation (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 |
| 13192 | are not displayed in two's complement notation (i.e., that aren't | 13192 | are not displayed in two's complement notation (i.e., that aren't |
| 13193 | integers from | 13193 | integers 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)} |
| 13196 | to | 13196 | to |
| @@ -14095,13 +14095,13 @@ the @samp{$} sign has the same meaning it always does in algebraic | |||
| 14095 | formulas (a reference to an existing entry on the stack). | 14095 | formulas (a reference to an existing entry on the stack). |
| 14096 | 14096 | ||
| 14097 | Complex numbers are displayed as in @samp{3 + 4i}. Fractions and | 14097 | Complex numbers are displayed as in @samp{3 + 4i}. Fractions and |
| 14098 | quotients are written using @code{\over} in @TeX{} mode (as in | 14098 | quotients 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@}}). |
| 14103 | Interval forms are written with @code{\ldots}, and error forms are | 14103 | Interval forms are written with @code{\ldots}, and error forms are |
| 14104 | written with @code{\pm}. Absolute values are written as in | 14104 | written 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 | |||
| 14114 | instead of parentheses for very simple arguments. During input, curly | 14114 | instead of parentheses for very simple arguments. During input, curly |
| 14115 | braces and parentheses work equally well for grouping, but when the | 14115 | braces and parentheses work equally well for grouping, but when the |
| 14116 | document is formatted the curly braces will be invisible. Thus the | 14116 | document is formatted the curly braces will be invisible. Thus the |
| 14117 | printed result is | 14117 | printed result is |
| 14118 | @texline @math{\sin{2 x}} | 14118 | @texline @math{\sin{2 x}} |
| 14119 | @infoline @expr{sin 2x} | 14119 | @infoline @expr{sin 2x} |
| 14120 | but | 14120 | but |
| 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 |
| 14132 | one character will instead be enclosed in a protective commands that | 14132 | one character will instead be enclosed in a protective commands that |
| 14133 | will prevent them from being typeset in the math italics; they will be | 14133 | will prevent them from being typeset in the math italics; they will be |
| 14134 | written @samp{\hbox@{@var{name}@}} in @TeX{} mode and | 14134 | written @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 |
| 14137 | reading. If you use a negative prefix argument, such function names are | 14137 | reading. If you use a negative prefix argument, such function names are |
| @@ -14143,7 +14143,7 @@ any @TeX{} mode.) | |||
| 14143 | 14143 | ||
| 14144 | During reading, text of the form @samp{\matrix@{ ...@: @}} is replaced | 14144 | During reading, text of the form @samp{\matrix@{ ...@: @}} is replaced |
| 14145 | by @samp{[ ...@: ]}. The same also applies to @code{\pmatrix} and | 14145 | by @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 | |||
| 14151 | The symbol @samp{&} is interpreted as a comma, | 14151 | The symbol @samp{&} is interpreted as a comma, |
| 14152 | and the symbols @samp{\cr} and @samp{\\} are interpreted as semicolons. | 14152 | and the symbols @samp{\cr} and @samp{\\} are interpreted as semicolons. |
| 14153 | During output, matrices are displayed in @samp{\matrix@{ a & b \\ c & d@}} | 14153 | During output, matrices are displayed in @samp{\matrix@{ a & b \\ c & d@}} |
| 14154 | format in @TeX{} mode and in | 14154 | format 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 |
| 14156 | La@TeX{} mode; you may need to edit this afterwards to change to your | 14156 | La@TeX{} mode; you may need to edit this afterwards to change to your |
| 14157 | preferred matrix form. If you invoke @kbd{d T} or @kbd{d L} with an | 14157 | preferred matrix form. If you invoke @kbd{d T} or @kbd{d L} with an |
| 14158 | argument of 2 or -2, then matrices will be displayed in two-dimensional | 14158 | argument of 2 or -2, then matrices will be displayed in two-dimensional |
| 14159 | form, such as | 14159 | form, 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 |
| 14301 | Calc TeX LaTeX eqn | 14301 | Calc TeX LaTeX eqn |
| 14302 | ---- --- ----- --- | 14302 | ---- --- ----- --- |
| 14303 | acute \acute \acute | 14303 | acute \acute \acute |
| 14304 | Acute \Acute | 14304 | Acute \Acute |
| 14305 | bar \bar \bar bar | 14305 | bar \bar \bar bar |
| 14306 | Bar \Bar | 14306 | Bar \Bar |
| 14307 | breve \breve \breve | 14307 | breve \breve \breve |
| 14308 | Breve \Breve | 14308 | Breve \Breve |
| 14309 | check \check \check | 14309 | check \check \check |
| 14310 | Check \Check | 14310 | Check \Check |
| 14311 | dddot \dddot | 14311 | dddot \dddot |
| 14312 | ddddot \ddddot | 14312 | ddddot \ddddot |
| 14313 | dot \dot \dot dot | 14313 | dot \dot \dot dot |
| 14314 | Dot \Dot | 14314 | Dot \Dot |
| 14315 | dotdot \ddot \ddot dotdot | 14315 | dotdot \ddot \ddot dotdot |
| 14316 | DotDot \Ddot | 14316 | DotDot \Ddot |
| 14317 | dyad dyad | 14317 | dyad dyad |
| 14318 | grave \grave \grave | 14318 | grave \grave \grave |
| 14319 | Grave \Grave | 14319 | Grave \Grave |
| 14320 | hat \hat \hat hat | 14320 | hat \hat \hat hat |
| 14321 | Hat \Hat | 14321 | Hat \Hat |
| 14322 | Prime prime | 14322 | Prime prime |
| 14323 | tilde \tilde \tilde tilde | 14323 | tilde \tilde \tilde tilde |
| 14324 | Tilde \Tilde | 14324 | Tilde \Tilde |
| @@ -14363,7 +14363,7 @@ reading is: | |||
| 14363 | 14363 | ||
| 14364 | Note that, because these symbols are ignored, reading a @TeX{} or | 14364 | Note that, because these symbols are ignored, reading a @TeX{} or |
| 14365 | La@TeX{} formula into Calc and writing it back out may lose spacing and | 14365 | La@TeX{} formula into Calc and writing it back out may lose spacing and |
| 14366 | font information. | 14366 | font information. |
| 14367 | 14367 | ||
| 14368 | Also, the ``discretionary multiplication sign'' @samp{\*} is read | 14368 | Also, the ``discretionary multiplication sign'' @samp{\*} is read |
| 14369 | the same as @samp{*}. | 14369 | the same as @samp{*}. |
| @@ -14542,7 +14542,7 @@ are treated the same as curly braces: @samp{sqrt "1+x"} is equivalent to | |||
| 14542 | of quotes in @dfn{eqn}, but it is good enough for most uses. | 14542 | of quotes in @dfn{eqn}, but it is good enough for most uses. |
| 14543 | 14543 | ||
| 14544 | Accent codes (@samp{@var{x} dot}) are handled by treating them as | 14544 | Accent codes (@samp{@var{x} dot}) are handled by treating them as |
| 14545 | function calls (@samp{dot(@var{x})}) internally. | 14545 | function 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 |
| 14547 | functions. The @code{prime} accent is treated specially if it occurs on | 14547 | functions. The @code{prime} accent is treated specially if it occurs on |
| 14548 | a variable or function name: @samp{f prime prime @w{( x prime )}} is | 14548 | a variable or function name: @samp{f prime prime @w{( x prime )}} is |
| @@ -14572,7 +14572,7 @@ if the matrix justification mode so specifies. | |||
| 14572 | The @kbd{d Y} (@code{calc-yacas-language}) command selects the | 14572 | The @kbd{d Y} (@code{calc-yacas-language}) command selects the |
| 14573 | conventions of Yacas, a free computer algebra system. While the | 14573 | conventions of Yacas, a free computer algebra system. While the |
| 14574 | operators and functions in Yacas are similar to those of Calc, the names | 14574 | operators and functions in Yacas are similar to those of Calc, the names |
| 14575 | of built-in functions in Yacas are capitalized. The Calc formula | 14575 | of 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)} |
| 14577 | in Yacas mode, and `@samp{arcsin(x^2)} is @samp{ArcSin(x^2)} in Yacas | 14577 | in Yacas mode, and `@samp{arcsin(x^2)} is @samp{ArcSin(x^2)} in Yacas |
| 14578 | mode. Complex numbers are written are written @samp{3 + 4 I}. | 14578 | mode. Complex numbers are written are written @samp{3 + 4 I}. |
| @@ -14581,9 +14581,9 @@ The standard special constants are written @code{Pi}, @code{E}, | |||
| 14581 | represents both @code{inf} and @code{uinf}, and @code{Undefined} | 14581 | represents both @code{inf} and @code{uinf}, and @code{Undefined} |
| 14582 | represents @code{nan}. | 14582 | represents @code{nan}. |
| 14583 | 14583 | ||
| 14584 | Certain operators on functions, such as @code{D} for differentiation | 14584 | Certain operators on functions, such as @code{D} for differentiation |
| 14585 | and @code{Integrate} for integration, take a prefix form in Yacas. For | 14585 | and @code{Integrate} for integration, take a prefix form in Yacas. For |
| 14586 | example, the derivative of @w{@samp{e^x sin(x)}} can be computed with | 14586 | example, 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 | ||
| 14589 | Other notable differences between Yacas and standard Calc expressions | 14589 | Other notable differences between Yacas and standard Calc expressions |
| @@ -14602,7 +14602,7 @@ use square brackets. If, for example, @samp{A} represents the list | |||
| 14602 | The @kbd{d X} (@code{calc-maxima-language}) command selects the | 14602 | The @kbd{d X} (@code{calc-maxima-language}) command selects the |
| 14603 | conventions of Maxima, another free computer algebra system. The | 14603 | conventions of Maxima, another free computer algebra system. The |
| 14604 | function names in Maxima are similar, but not always identical, to Calc. | 14604 | function names in Maxima are similar, but not always identical, to Calc. |
| 14605 | For example, instead of @samp{arcsin(x)}, Maxima will use | 14605 | For 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 |
| 14607 | standard special constants are written @code{%pi}, @code{%e}, | 14607 | standard 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 | ||
| 14611 | Underscores as well as percent signs are allowed in function and | 14611 | Underscores as well as percent signs are allowed in function and |
| 14612 | variable names in Maxima mode. The underscore again is equivalent to | 14612 | variable names in Maxima mode. The underscore again is equivalent to |
| 14613 | the @samp{#} in Normal mode, and the percent sign is equivalent to | 14613 | the @samp{#} in Normal mode, and the percent sign is equivalent to |
| 14614 | @samp{o'o}. | 14614 | @samp{o'o}. |
| 14615 | 14615 | ||
| 14616 | Maxima uses square brackets for lists and vectors, and matrices are | 14616 | Maxima uses square brackets for lists and vectors, and matrices are |
| 14617 | written as calls to the function @code{matrix}, given the row vectors of | 14617 | written 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 | |||
| 14629 | names in Giac are similar to Maxima. Complex numbers are written | 14629 | names 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 |
| 14631 | in Calc, except that @code{infinity} represents both Calc's @code{inf} | 14631 | in Calc, except that @code{infinity} represents both Calc's @code{inf} |
| 14632 | and @code{uinf}. | 14632 | and @code{uinf}. |
| 14633 | 14633 | ||
| 14634 | Underscores are allowed in function and variable names in Giac mode. | 14634 | Underscores are allowed in function and variable names in Giac mode. |
| 14635 | Brackets are used for subscripts. In Giac, indexing of lists begins at | 14635 | Brackets are used for subscripts. In Giac, indexing of lists begins at |
| @@ -15786,9 +15786,9 @@ Command is @kbd{m p}. | |||
| 15786 | @item | 15786 | @item |
| 15787 | Matrix/Scalar mode. Default value is @mathit{-1}. Value is 0 for Scalar | 15787 | Matrix/Scalar mode. Default value is @mathit{-1}. Value is 0 for Scalar |
| 15788 | mode, @mathit{-2} for Matrix mode, @mathit{-3} for square Matrix mode, | 15788 | mode, @mathit{-2} for Matrix mode, @mathit{-3} for square Matrix mode, |
| 15789 | or @var{N} for | 15789 | or @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} |
| 15792 | Matrix mode. Command is @kbd{m v}. | 15792 | Matrix 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 / |
| 16181 | The @kbd{/} (@code{calc-divide}) command divides two numbers. | 16181 | The @kbd{/} (@code{calc-divide}) command divides two numbers. |
| 16182 | 16182 | ||
| 16183 | When combining multiplication and division in an algebraic formula, it | 16183 | When combining multiplication and division in an algebraic formula, it |
| 16184 | is good style to use parentheses to distinguish between possible | 16184 | is good style to use parentheses to distinguish between possible |
| @@ -16187,7 +16187,7 @@ interpretations; the expression @samp{a/b*c} should be written | |||
| 16187 | parentheses, Calc will interpret @samp{a/b*c} as @samp{a/(b*c)}, since | 16187 | parentheses, Calc will interpret @samp{a/b*c} as @samp{a/(b*c)}, since |
| 16188 | in algebraic entry Calc gives division a lower precedence than | 16188 | in algebraic entry Calc gives division a lower precedence than |
| 16189 | multiplication. (This is not standard across all computer languages, and | 16189 | multiplication. (This is not standard across all computer languages, and |
| 16190 | Calc may change the precedence depending on the language mode being used. | 16190 | Calc 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 |
| 16192 | the customizable variable @code{calc-multiplication-has-precedence} to | 16192 | the 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.) | |||
| 16373 | The @kbd{f M} (@code{calc-mant-part}) [@code{mant}] function extracts | 16373 | The @kbd{f M} (@code{calc-mant-part}) [@code{mant}] function extracts |
| 16374 | the ``mantissa'' part @expr{m} of its floating-point argument; @kbd{f X} | 16374 | the ``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}, |
| 16379 | where @expr{m} is in the interval @samp{[1.0 ..@: 10.0)} except that | 16379 | where @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. | |||
| 16406 | For example, incrementing @samp{12.3456} when the current precision | 16406 | For example, incrementing @samp{12.3456} when the current precision |
| 16407 | is 6 digits yields @samp{12.3457}. If the current precision had been | 16407 | is 6 digits yields @samp{12.3457}. If the current precision had been |
| 16408 | 8 digits, the result would have been @samp{12.345601}. Incrementing | 16408 | 8 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}, |
| 16412 | where @expr{p} is the current | 16412 | where @expr{p} is the current |
| 16413 | precision. These operations are defined only on integers and floats. | 16413 | precision. These operations are defined only on integers and floats. |
| 16414 | With numeric prefix arguments, they change the number by @expr{n} units. | 16414 | With numeric prefix arguments, they change the number by @expr{n} units. |
| @@ -16852,7 +16852,7 @@ The last two arguments default to zero if omitted. | |||
| 16852 | The @kbd{t J} (@code{calc-julian}) [@code{julian}] command converts | 16852 | The @kbd{t J} (@code{calc-julian}) [@code{julian}] command converts |
| 16853 | a date form into a Julian day count, which is the number of days | 16853 | a date form into a Julian day count, which is the number of days |
| 16854 | since noon (GMT) on Jan 1, 4713 BC. A pure date is converted to an | 16854 | since noon (GMT) on Jan 1, 4713 BC. A pure date is converted to an |
| 16855 | integer Julian count representing noon of that day. A date/time form | 16855 | integer Julian count representing noon of that day. A date/time form |
| 16856 | is converted to an exact floating-point Julian count, adjusted to | 16856 | is converted to an exact floating-point Julian count, adjusted to |
| 16857 | interpret the date form in the current time zone but the Julian | 16857 | interpret the date form in the current time zone but the Julian |
| 16858 | day count in Greenwich Mean Time. A numeric prefix argument allows | 16858 | day 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 | |||
| 16873 | converts a date form into a Unix time value, which is the number of | 16873 | converts a date form into a Unix time value, which is the number of |
| 16874 | seconds since midnight on Jan 1, 1970, or vice-versa. The numeric result | 16874 | seconds since midnight on Jan 1, 1970, or vice-versa. The numeric result |
| 16875 | will be an integer if the current precision is 12 or less; for higher | 16875 | will be an integer if the current precision is 12 or less; for higher |
| 16876 | precisions, the result may be a float with (@var{precision}@minus{}12) | 16876 | precision, the result may be a float with (@var{precision}@minus{}12) |
| 16877 | digits after the decimal. Just as for @kbd{t J}, the numeric time | 16877 | digits after the decimal. Just as for @kbd{t J}, the numeric time |
| 16878 | is interpreted in the GMT time zone and the date form is interpreted | 16878 | is interpreted in the GMT time zone and the date form is interpreted |
| 16879 | in the current or specified zone. Some systems use Unix-like | 16879 | in 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. | |||
| 16943 | The @kbd{M-6 t P} [@code{second}] function extracts the second | 16943 | The @kbd{M-6 t P} [@code{second}] function extracts the second |
| 16944 | from a date form. If the current precision is 12 or less, | 16944 | from a date form. If the current precision is 12 or less, |
| 16945 | the result is an integer in the range 0 to 59. For higher | 16945 | the result is an integer in the range 0 to 59. For higher |
| 16946 | precisions, the result may instead be a floating-point number. | 16946 | precision, the result may instead be a floating-point number. |
| 16947 | 16947 | ||
| 16948 | @tindex weekday | 16948 | @tindex weekday |
| 16949 | The @kbd{M-7 t P} [@code{weekday}] function extracts the weekday | 16949 | The @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 | |||
| 17294 | default get the time zone and daylight saving information from the | 17294 | default get the time zone and daylight saving information from the |
| 17295 | calendar (@pxref{Daylight Saving,Calendar/Diary,The Calendar and the Diary, | 17295 | calendar (@pxref{Daylight Saving,Calendar/Diary,The Calendar and the Diary, |
| 17296 | emacs,The GNU Emacs Manual}). To use a different time zone, or if the | 17296 | emacs,The GNU Emacs Manual}). To use a different time zone, or if the |
| 17297 | calendar does not give the desired result, you can set the Calc variable | 17297 | calendar 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 |
| 17299 | time zone name. (The easiest way to do this is to edit the | 17299 | time 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.) |
| 17303 | If the time zone given by @code{TimeZone} is a generalized time zone, | 17303 | If the time zone given by @code{TimeZone} is a generalized time zone, |
| 17304 | e.g., @code{EGT}, Calc examines the date being converted to tell whether | 17304 | e.g., @code{EGT}, Calc examines the date being converted to tell whether |
| 17305 | to use standard or daylight saving time. But if the current time zone | 17305 | to use standard or daylight saving time. But if the current time zone |
| @@ -17311,12 +17311,12 @@ from the calendar. | |||
| 17311 | 17311 | ||
| 17312 | The @kbd{t J} and @code{t U} commands with no numeric prefix | 17312 | The @kbd{t J} and @code{t U} commands with no numeric prefix |
| 17313 | arguments do the same thing as @samp{tzone()}; namely, use the | 17313 | arguments do the same thing as @samp{tzone()}; namely, use the |
| 17314 | information from the calendar if @code{TimeZone} is @code{nil}, | 17314 | information from the calendar if @code{TimeZone} is @code{nil}, |
| 17315 | otherwise use the time zone given by @code{TimeZone}. | 17315 | otherwise 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 |
| 17319 | When Calc computes the daylight saving information itself (i.e., when | 17319 | When Calc computes the daylight saving information itself (i.e., when |
| 17320 | the @code{TimeZone} variable is set), it will by default consider | 17320 | the @code{TimeZone} variable is set), it will by default consider |
| 17321 | daylight saving time to begin at 2 a.m.@: on the second Sunday of March | 17321 | daylight 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, | |||
| 17392 | from 3 a.m.@: to 4 a.m. At the end of daylight saving time, the | 17392 | from 3 a.m.@: to 4 a.m. At the end of daylight saving time, the |
| 17393 | hour from 1 a.m.@: to 2 a.m.@: repeats itself; converting a date/time | 17393 | hour from 1 a.m.@: to 2 a.m.@: repeats itself; converting a date/time |
| 17394 | form that falls in this hour results in a time value for the first | 17394 | form that falls in this hour results in a time value for the first |
| 17395 | manifestation of that time (@emph{not} the one that occurs one hour | 17395 | manifestation of that time (@emph{not} the one that occurs one hour |
| 17396 | later). | 17396 | later). |
| 17397 | 17397 | ||
| 17398 | If @code{math-daylight-savings-hook} is @code{nil}, then the | 17398 | If @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 | ||
| 17997 | If the word size is negative, binary operations produce twos-complement | 17997 | If the word size is negative, binary operations produce twos-complement |
| 17998 | integers from | 17998 | integers 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))} |
| 18001 | to | 18001 | to |
| 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} |
| 18004 | inclusive. Either mode accepts inputs in any range; the sign of | 18004 | inclusive. 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. | |||
| 18182 | One miscellaneous command is shift-@kbd{P} (@code{calc-pi}), which pushes | 18182 | One miscellaneous command is shift-@kbd{P} (@code{calc-pi}), which pushes |
| 18183 | the value of @cpi{} (at the current precision) onto the stack. With the | 18183 | the value of @cpi{} (at the current precision) onto the stack. With the |
| 18184 | Hyperbolic flag, it pushes the value @expr{e}, the base of natural logarithms. | 18184 | Hyperbolic flag, it pushes the value @expr{e}, the base of natural logarithms. |
| 18185 | With the Inverse flag, it pushes Euler's constant | 18185 | With 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 |
| 18189 | pushes the ``golden ratio'' | 18189 | pushes 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 |
| 18193 | to unlimited precision; Calc knows only the first 100 digits.) | 18193 | to unlimited precision; Calc knows only the first 100 digits.) |
| 18194 | In Symbolic mode, these commands push the | 18194 | In 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}], |
| 18267 | it raises ten to a given power.) Note that the common logarithm of a | 18267 | it raises ten to a given power.) Note that the common logarithm of a |
| 18268 | complex number is computed by taking the natural logarithm and dividing | 18268 | complex number is computed by taking the natural logarithm and dividing |
| 18269 | by | 18269 | by |
| 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 | |||
| 18278 | The @kbd{B} (@code{calc-log}) [@code{log}] command computes a logarithm | 18278 | The @kbd{B} (@code{calc-log}) [@code{log}] command computes a logarithm |
| 18279 | to any base. For example, @kbd{1024 @key{RET} 2 B} produces 10, since | 18279 | to 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}. |
| 18282 | In certain cases like @samp{log(3,9)}, the result | 18282 | In certain cases like @samp{log(3,9)}, the result |
| 18283 | will be either @expr{1:2} or @expr{0.5} depending on the current Fraction | 18283 | will be either @expr{1:2} or @expr{0.5} depending on the current Fraction |
| 18284 | mode setting. With the Inverse flag [@code{alog}], this command is | 18284 | mode 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 |
| 18301 | The @kbd{f E} (@code{calc-expm1}) [@code{expm1}] command computes | 18301 | The @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}, |
| 18304 | but using an algorithm that produces a more accurate | 18304 | but using an algorithm that produces a more accurate |
| 18305 | answer when the result is close to zero, i.e., when | 18305 | answer 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)} |
| 18308 | is close to one. | 18308 | is 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 |
| 18313 | The @kbd{f L} (@code{calc-lnp1}) [@code{lnp1}] command computes | 18313 | The @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)}, |
| 18316 | producing a more accurate answer when @expr{x} is close to zero. | 18316 | producing 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} | |||
| 18499 | Calc can compute a variety of less common functions that arise in | 18499 | Calc can compute a variety of less common functions that arise in |
| 18500 | various branches of mathematics. All of the functions described in | 18500 | various branches of mathematics. All of the functions described in |
| 18501 | this section allow arbitrary complex arguments and, except as noted, | 18501 | this section allow arbitrary complex arguments and, except as noted, |
| 18502 | will work to arbitrarily large precisions. They can not at present | 18502 | will work to arbitrarily large precision. They can not at present |
| 18503 | handle error forms or intervals as arguments. | 18503 | handle error forms or intervals as arguments. |
| 18504 | 18504 | ||
| 18505 | NOTE: These functions are still experimental. In particular, their | 18505 | NOTE: 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 | |||
| 18515 | gamma function. For positive integer arguments, this is related to the | 18515 | gamma function. For positive integer arguments, this is related to the |
| 18516 | factorial function: @samp{gamma(n+1) = fact(n)}. For general complex | 18516 | factorial function: @samp{gamma(n+1) = fact(n)}. For general complex |
| 18517 | arguments the gamma function can be defined by the following definite | 18517 | arguments the gamma function can be defined by the following definite |
| 18518 | integral: | 18518 | integral: |
| 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 |
| 18550 | The @kbd{f G} (@code{calc-inc-gamma}) [@code{gammaP}] command computes | 18550 | The @kbd{f G} (@code{calc-inc-gamma}) [@code{gammaP}] command computes |
| 18551 | the incomplete gamma function, denoted @samp{P(a,x)}. This is defined by | 18551 | the incomplete gamma function, denoted @samp{P(a,x)}. This is defined by |
| 18552 | the integral, | 18552 | the 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)}. |
| 18555 | This implies that @samp{gammaP(a,inf) = 1} for any @expr{a} (see the | 18555 | This 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 | |||
| 18583 | The @kbd{f b} (@code{calc-beta}) [@code{beta}] command computes the | 18583 | The @kbd{f b} (@code{calc-beta}) [@code{beta}] command computes the |
| 18584 | Euler beta function, which is defined in terms of the gamma function as | 18584 | Euler 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)}, |
| 18587 | or by | 18587 | or 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 |
| 18608 | The @kbd{f e} (@code{calc-erf}) [@code{erf}] command computes the | 18608 | The @kbd{f e} (@code{calc-erf}) [@code{erf}] command computes the |
| 18609 | error function | 18609 | error 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)}. |
| 18612 | The complementary error function @kbd{I f e} (@code{calc-erfc}) [@code{erfc}] | 18612 | The 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 | |||
| 18784 | random numbers of various sorts. | 18784 | random numbers of various sorts. |
| 18785 | 18785 | ||
| 18786 | Given a positive numeric prefix argument @expr{M}, it produces a random | 18786 | Given a positive numeric prefix argument @expr{M}, it produces a random |
| 18787 | integer @expr{N} in the range | 18787 | integer @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}. |
| 18790 | Each possible value @expr{N} appears with equal probability. | 18790 | Each possible value @expr{N} appears with equal probability. |
| 18791 | 18791 | ||
| 18792 | With no numeric prefix argument, the @kbd{k r} command takes its argument | 18792 | With 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} | |||
| 18794 | the result is a random integer less than @expr{M}. However, note that | 18794 | the result is a random integer less than @expr{M}. However, note that |
| 18795 | while numeric prefix arguments are limited to six digits or so, an @expr{M} | 18795 | while numeric prefix arguments are limited to six digits or so, an @expr{M} |
| 18796 | taken from the stack can be arbitrarily large. If @expr{M} is negative, | 18796 | taken from the stack can be arbitrarily large. If @expr{M} is negative, |
| 18797 | the result is a random integer in the range | 18797 | the 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 | ||
| 18801 | If the value on the stack is a floating-point number @expr{M}, the result | 18801 | If the value on the stack is a floating-point number @expr{M}, the result |
| 18802 | is a random floating-point number @expr{N} in the range | 18802 | is 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} |
| 18805 | or | 18805 | or |
| 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}, |
| 18808 | according to the sign of @expr{M}. | 18808 | according to the sign of @expr{M}. |
| 18809 | 18809 | ||
| 18810 | If @expr{M} is zero, the result is a Gaussian-distributed random real | 18810 | If @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 | |||
| 18812 | of one. The algorithm used generates random numbers in pairs; thus, | 18812 | of one. The algorithm used generates random numbers in pairs; thus, |
| 18813 | every other call to this function will be especially fast. | 18813 | every other call to this function will be especially fast. |
| 18814 | 18814 | ||
| 18815 | If @expr{M} is an error form | 18815 | If @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} |
| 18818 | where @var{m} and | 18818 | where @var{m} and |
| 18819 | @texline @math{\sigma} | 18819 | @texline @math{\sigma} |
| 18820 | @infoline @var{s} | 18820 | @infoline @var{s} |
| 18821 | are both real numbers, the result uses a Gaussian distribution with mean | 18821 | are 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 | |||
| 18912 | of the theory of random number generators and their measurement and | 18912 | of the theory of random number generators and their measurement and |
| 18913 | characterization. | 18913 | characterization. |
| 18914 | 18914 | ||
| 18915 | If @code{RandSeed} has no stored value, Calc calls Emacs' built-in | 18915 | If @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 |
| 18917 | then treats in various ways to avoid problems inherent in the simple | 18917 | then treats in various ways to avoid problems inherent in the simple |
| 18918 | random number generators that many systems use to implement @code{random}. | 18918 | random 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 | ||
| 18933 | If @code{RandSeed} contains an integer, Calc uses this integer to | 18933 | If @code{RandSeed} contains an integer, Calc uses this integer to |
| 18934 | seed an ``additive congruential'' method (Knuth's algorithm 3.2.2A, | 18934 | seed an ``additive congruential'' method (Knuth's algorithm 3.2.2A, |
| 18935 | computing | 18935 | computing |
| 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}). |
| 18938 | This method expands the seed | 18938 | This method expands the seed |
| 18939 | value into a large table which is maintained internally; the variable | 18939 | value 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. | |||
| 18970 | To create a random floating-point number with precision @var{p}, Calc | 18970 | To create a random floating-point number with precision @var{p}, Calc |
| 18971 | simply creates a random @var{p}-digit integer and multiplies by | 18971 | simply 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}. |
| 18974 | The resulting random numbers should be very clean, but note | 18974 | The resulting random numbers should be very clean, but note |
| 18975 | that relatively small numbers will have few significant random digits. | 18975 | that relatively small numbers will have few significant random digits. |
| 18976 | In other words, with a precision of 12, you will occasionally get | 18976 | In other words, with a precision of 12, you will occasionally get |
| 18977 | numbers on the order of | 18977 | numbers on the order of |
| 18978 | @texline @math{10^{-9}} | 18978 | @texline @math{10^{-9}} |
| 18979 | @infoline @expr{10^-9} | 18979 | @infoline @expr{10^-9} |
| 18980 | or | 18980 | or |
| 18981 | @texline @math{10^{-10}}, | 18981 | @texline @math{10^{-10}}, |
| 18982 | @infoline @expr{10^-10}, | 18982 | @infoline @expr{10^-10}, |
| 18983 | but those numbers will only have two or three random digits since they | 18983 | but those numbers will only have two or three random digits since they |
| 18984 | correspond to small integers times | 18984 | correspond 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 |
| 19033 | The @kbd{k E} (@code{calc-extended-gcd}) [@code{egcd}] command computes | 19033 | The @kbd{k E} (@code{calc-extended-gcd}) [@code{egcd}] command computes |
| 19034 | the GCD of two integers @expr{x} and @expr{y} and returns a vector | 19034 | the 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 |
| 19121 | The @kbd{k s} (@code{calc-stirling-number}) [@code{stir1}] command | 19121 | The @kbd{k s} (@code{calc-stirling-number}) [@code{stir1}] command |
| 19122 | computes a Stirling number of the first | 19122 | computes 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, |
| 19125 | given two integers @expr{n} and @expr{m} on the stack. The @kbd{H k s} | 19125 | given 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. |
| 19129 | These are the number of @expr{m}-cycle permutations of @expr{n} objects, | 19129 | These 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 |
| 19204 | The @kbd{k t} (@code{calc-totient}) [@code{totient}] command computes the | 19204 | The @kbd{k t} (@code{calc-totient}) [@code{totient}] command computes the |
| 19205 | Euler ``totient'' | 19205 | Euler ``totient'' |
| 19206 | @texline function@tie{}@math{\phi(n)}, | 19206 | @texline function@tie{}@math{\phi(n)}, |
| 19207 | @infoline function, | 19207 | @infoline function, |
| 19208 | the number of integers less than @expr{n} which | 19208 | the 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 |
| 19278 | The @samp{utpc(x,v)} function uses the chi-square distribution with | 19278 | The @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} |
| 19281 | degrees of freedom. It is the probability that a model is | 19281 | degrees of freedom. It is the probability that a model is |
| 19282 | correct if its chi-square statistic is @expr{x}. | 19282 | correct 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 |
| 19295 | The @samp{utpf(F,v1,v2)} function uses the F distribution, used in | 19295 | The @samp{utpf(F,v1,v2)} function uses the F distribution, used in |
| 19296 | various statistical tests. The parameters | 19296 | various statistical tests. The parameters |
| 19297 | @texline @math{\nu_1} | 19297 | @texline @math{\nu_1} |
| 19298 | @infoline @expr{v1} | 19298 | @infoline @expr{v1} |
| 19299 | and | 19299 | and |
| 19300 | @texline @math{\nu_2} | 19300 | @texline @math{\nu_2} |
| 19301 | @infoline @expr{v2} | 19301 | @infoline @expr{v2} |
| 19302 | are the degrees of freedom in the numerator and denominator, | 19302 | are 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 |
| 19316 | The @samp{utpn(x,m,s)} function uses a normal (Gaussian) distribution | 19316 | The @samp{utpn(x,m,s)} function uses a normal (Gaussian) distribution |
| 19317 | with mean @expr{m} and standard deviation | 19317 | with mean @expr{m} and standard deviation |
| 19318 | @texline @math{\sigma}. | 19318 | @texline @math{\sigma}. |
| 19319 | @infoline @expr{s}. | 19319 | @infoline @expr{s}. |
| 19320 | It is the probability that such a normal-distributed random variable | 19320 | It is the probability that such a normal-distributed random variable |
| 19321 | would exceed @expr{x}. | 19321 | would 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 |
| 19349 | The @samp{utpt(t,v)} function uses the Student's ``t'' distribution | 19349 | The @samp{utpt(t,v)} function uses the Student's ``t'' distribution |
| 19350 | with | 19350 | with |
| 19351 | @texline @math{\nu} | 19351 | @texline @math{\nu} |
| 19352 | @infoline @expr{v} | 19352 | @infoline @expr{v} |
| 19353 | degrees of freedom. It is the probability that a | 19353 | degrees of freedom. It is the probability that a |
| 19354 | t-distributed random variable will be greater than @expr{t}. | 19354 | t-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)} |
| 19358 | where | 19358 | where |
| 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} |
| 19361 | and | 19361 | and |
| 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}. |
| 19364 | The @code{UTPT} operation on the HP-48 uses a different definition which | 19364 | The @code{UTPT} operation on the HP-48 uses a different definition which |
| 19365 | returns half of Calc's value: @samp{UTPT(t,v) = .5*utpt(t,v)}.) | 19365 | returns 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 | |||
| 19670 | the stack is a scalar, it is used for each element on the diagonal, and | 19670 | the stack is a scalar, it is used for each element on the diagonal, and |
| 19671 | the prefix argument is required. | 19671 | the prefix argument is required. |
| 19672 | 19672 | ||
| 19673 | To build a constant square matrix, e.g., a | 19673 | To build a constant square matrix, e.g., a |
| 19674 | @texline @math{3\times3} | 19674 | @texline @math{3\times3} |
| 19675 | @infoline 3x3 | 19675 | @infoline 3x3 |
| 19676 | matrix filled with ones, use @kbd{0 M-3 v d 1 +}, i.e., build a zero | 19676 | matrix filled with ones, use @kbd{0 M-3 v d 1 +}, i.e., build a zero |
| @@ -19911,7 +19911,7 @@ command. | |||
| 19911 | With the Hyperbolic flag, @kbd{H v l} [@code{mdims}] computes a vector | 19911 | With the Hyperbolic flag, @kbd{H v l} [@code{mdims}] computes a vector |
| 19912 | of the dimensions of a vector, matrix, or higher-order object. For | 19912 | of the dimensions of a vector, matrix, or higher-order object. For |
| 19913 | example, @samp{mdims([[a,b,c],[d,e,f]])} returns @samp{[2, 3]} since | 19913 | example, @samp{mdims([[a,b,c],[d,e,f]])} returns @samp{[2, 3]} since |
| 19914 | its argument is a | 19914 | its argument is a |
| 19915 | @texline @math{2\times3} | 19915 | @texline @math{2\times3} |
| 19916 | @infoline 2x3 | 19916 | @infoline 2x3 |
| 19917 | matrix. | 19917 | matrix. |
| @@ -19945,17 +19945,17 @@ If the number of columns does not evenly divide the number of elements | |||
| 19945 | in the vector, the last row will be short and the result will not be | 19945 | in the vector, the last row will be short and the result will not be |
| 19946 | suitable for use as a matrix. For example, with the matrix | 19946 | suitable 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 |
| 19951 | matrix), @kbd{v a 1} produces @samp{[[1], [2], [3], [4]]} (a | 19951 | matrix), @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 |
| 19954 | matrix), @kbd{v a 2} produces @samp{[[1, 2], [3, 4]]} (the original | 19954 | matrix), @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 |
| 19957 | matrix), @w{@kbd{v a 3}} produces @samp{[[1, 2, 3], [4]]} (not a | 19957 | matrix), @w{@kbd{v a 3}} produces @samp{[[1, 2, 3], [4]]} (not a |
| 19958 | matrix), and @kbd{v a 0} produces the flattened list | 19958 | matrix), 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 | |||
| 20040 | will be used to determine the bins. (If a positive integer is given at | 20040 | will be used to determine the bins. (If a positive integer is given at |
| 20041 | this prompt, it will be still treated as if it were given as a | 20041 | this prompt, it will be still treated as if it were given as a |
| 20042 | prefix.) Each bin will consist of the interval of numbers closest to | 20042 | prefix.) Each bin will consist of the interval of numbers closest to |
| 20043 | the corresponding number of this new vector; if the vector | 20043 | the 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 |
| 20046 | this command will be a vector counting how many elements of the | 20046 | this command will be a vector counting how many elements of the |
| 20047 | original vector are in each bin. | 20047 | original 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 | |||
| 20313 | sets are disjoint, i.e., if they share no common elements, the result | 20313 | sets are disjoint, i.e., if they share no common elements, the result |
| 20314 | will be the empty vector @samp{[]}. Note that the characters @kbd{V} | 20314 | will be the empty vector @samp{[]}. Note that the characters @kbd{V} |
| 20315 | and @kbd{^} were chosen to be close to the conventional mathematical | 20315 | and @kbd{^} were chosen to be close to the conventional mathematical |
| 20316 | notation for set | 20316 | notation for set |
| 20317 | @texline union@tie{}(@math{A \cup B}) | 20317 | @texline union@tie{}(@math{A \cup B}) |
| 20318 | @infoline union | 20318 | @infoline union |
| 20319 | and | 20319 | and |
| 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 | |||
| 20432 | not include any negative numbers. The input is interpreted as a | 20432 | not include any negative numbers. The input is interpreted as a |
| 20433 | set of integers in the sense of @kbd{V F} (@code{vfloor}). Beware | 20433 | set of integers in the sense of @kbd{V F} (@code{vfloor}). Beware |
| 20434 | that a simple input like @samp{[100]} can result in a huge integer | 20434 | that a simple input like @samp{[100]} can result in a huge integer |
| 20435 | representation | 20435 | representation |
| 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 |
| 20545 | The @kbd{u M} (@code{calc-vector-mean}) [@code{vmean}] command | 20545 | The @kbd{u M} (@code{calc-vector-mean}) [@code{vmean}] command |
| 20546 | computes the average (arithmetic mean) of the data values. | 20546 | computes the average (arithmetic mean) of the data values. |
| 20547 | If the inputs are error forms | 20547 | If 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}, |
| 20550 | this is the weighted mean of the @expr{x} values with weights | 20550 | this 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 | |||
| 20558 | values divided by the count of the values. | 20558 | values divided by the count of the values. |
| 20559 | 20559 | ||
| 20560 | Note that a plain number can be considered an error form with | 20560 | Note that a plain number can be considered an error form with |
| 20561 | error | 20561 | error |
| 20562 | @texline @math{\sigma = 0}. | 20562 | @texline @math{\sigma = 0}. |
| 20563 | @infoline @expr{s = 0}. | 20563 | @infoline @expr{s = 0}. |
| 20564 | If the input to @kbd{u M} is a mixture of | 20564 | If the input to @kbd{u M} is a mixture of |
| 20565 | plain numbers and error forms, the result is the mean of the | 20565 | plain numbers and error forms, the result is the mean of the |
| 20566 | plain numbers, ignoring all values with non-zero errors. (By the | 20566 | plain 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 |
| 20664 | The @kbd{u S} (@code{calc-vector-sdev}) [@code{vsdev}] command | 20664 | The @kbd{u S} (@code{calc-vector-sdev}) [@code{vsdev}] command |
| 20665 | computes the standard | 20665 | computes the standard |
| 20666 | @texline deviation@tie{}@math{\sigma} | 20666 | @texline deviation@tie{}@math{\sigma} |
| 20667 | @infoline deviation | 20667 | @infoline deviation |
| 20668 | of the data values. If the values are error forms, the errors are used | 20668 | of 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 $$ | |||
| 20677 | This function also applies to distributions. The standard deviation | 20677 | This function also applies to distributions. The standard deviation |
| 20678 | of a single error form is simply the error part. The standard deviation | 20678 | of a single error form is simply the error part. The standard deviation |
| 20679 | of a continuous interval happens to equal the difference between the | 20679 | of a continuous interval happens to equal the difference between the |
| 20680 | limits, divided by | 20680 | limits, divided by |
| 20681 | @texline @math{\sqrt{12}}. | 20681 | @texline @math{\sqrt{12}}. |
| 20682 | @infoline @expr{sqrt(12)}. | 20682 | @infoline @expr{sqrt(12)}. |
| 20683 | The standard deviation of an integer interval is the same as the | 20683 | The standard deviation of an integer interval is the same as the |
| 20684 | standard deviation of a vector of those integers. | 20684 | standard deviation of a vector of those integers. |
| 20685 | 20685 | ||
| @@ -20714,7 +20714,7 @@ population standard deviation of the equivalent vector of integers. | |||
| 20714 | The @kbd{H u S} (@code{calc-vector-variance}) [@code{vvar}] and | 20714 | The @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}] |
| 20716 | commands compute the variance of the data values. The variance | 20716 | commands compute the variance of the data values. The variance |
| 20717 | is the | 20717 | is the |
| 20718 | @texline square@tie{}@math{\sigma^2} | 20718 | @texline square@tie{}@math{\sigma^2} |
| 20719 | @infoline square | 20719 | @infoline square |
| 20720 | of the standard deviation, i.e., the sum of the | 20720 | of the standard deviation, i.e., the sum of the |
| @@ -20738,7 +20738,7 @@ The functions in this section take two arguments, which must be | |||
| 20738 | vectors of equal size. The vectors are each flattened in the same | 20738 | vectors of equal size. The vectors are each flattened in the same |
| 20739 | way as by the single-variable statistical functions. Given a numeric | 20739 | way as by the single-variable statistical functions. Given a numeric |
| 20740 | prefix argument of 1, these functions instead take one object from | 20740 | prefix argument of 1, these functions instead take one object from |
| 20741 | the stack, which must be an | 20741 | the stack, which must be an |
| 20742 | @texline @math{N\times2} | 20742 | @texline @math{N\times2} |
| 20743 | @infoline Nx2 | 20743 | @infoline Nx2 |
| 20744 | matrix of data values. Once again, variable names can be used in place | 20744 | matrix 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. | |||
| 20996 | If any argument to @kbd{V M} is a matrix, the operator is normally mapped | 20996 | If any argument to @kbd{V M} is a matrix, the operator is normally mapped |
| 20997 | across all elements of the matrix. For example, given the matrix | 20997 | across 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 |
| 20999 | produce another | 20999 | produce another |
| 21000 | @texline @math{3\times2} | 21000 | @texline @math{3\times2} |
| 21001 | @infoline 3x2 | 21001 | @infoline 3x2 |
| 21002 | matrix, @expr{[[1, 2, 3], [4, 5, 6]]}. | 21002 | matrix, @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 |
| 21613 | The @kbd{j b} (@code{calc-break-selections}) command controls a mode | 21613 | The @kbd{j b} (@code{calc-break-selections}) command controls a mode |
| 21614 | in which the ``deep structure'' of these associative formulas shows | 21614 | in which the ``deep structure'' of these associative formulas shows |
| 21615 | through. Calc actually stores the above formulas as | 21615 | through. 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 |
| 21617 | obscure reasons, by default Calc treats multiplication as | 21617 | obscure reasons, by default Calc treats multiplication as |
| 21618 | right-associative.) Once you have enabled @kbd{j b} mode, selecting | 21618 | right-associative.) Once you have enabled @kbd{j b} mode, selecting |
| 21619 | with the cursor on the @samp{-} sign would only select the @samp{a + b - | 21619 | with 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 | ||
| 21905 | Unselecting the sub-formula reveals that the minus sign, which would | 21905 | Unselecting the sub-formula reveals that the minus sign, which would |
| 21906 | normally have cancelled out with the subtraction automatically, has | 21906 | normally have canceled out with the subtraction automatically, has |
| 21907 | not been able to do so because the subtraction was not part of the | 21907 | not been able to do so because the subtraction was not part of the |
| 21908 | selected portion. Pressing @kbd{=} (@code{calc-evaluate}) or doing | 21908 | selected portion. Pressing @kbd{=} (@code{calc-evaluate}) or doing |
| 21909 | any other mathematical operation on the whole formula will cause it | 21909 | any 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 | |||
| 22098 | example, if the formula on the stack is @samp{1 / (sqrt(a) + 1)}, you may | 22098 | example, if the formula on the stack is @samp{1 / (sqrt(a) + 1)}, you may |
| 22099 | wish to eliminate the square root in the denominator by multiplying | 22099 | wish to eliminate the square root in the denominator by multiplying |
| 22100 | the top and bottom by @samp{sqrt(a) - 1}. If you did this simply by using | 22100 | the top and bottom by @samp{sqrt(a) - 1}. If you did this simply by using |
| 22101 | a simple @kbd{j *} command, you would get | 22101 | a 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, |
| 22103 | you would probably want to use @kbd{C-u 0 j *}, which would expand the | 22103 | you would probably want to use @kbd{C-u 0 j *}, which would expand the |
| 22104 | bottom and give you the desired result @samp{(sqrt(a)-1)/(a-1)}. More | 22104 | bottom 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. | |||
| 22405 | For example, @expr{2 + 3} is evaluated to @expr{5}, and @expr{@tfn{sqrt}(9)} | 22405 | For example, @expr{2 + 3} is evaluated to @expr{5}, and @expr{@tfn{sqrt}(9)} |
| 22406 | is evaluated to @expr{3}. Evaluation does not occur if the arguments | 22406 | is evaluated to @expr{3}. Evaluation does not occur if the arguments |
| 22407 | to a function are somehow of the wrong type @expr{@tfn{tan}([2,3,4])}), | 22407 | to a function are somehow of the wrong type @expr{@tfn{tan}([2,3,4])}), |
| 22408 | range (@expr{@tfn{tan}(90)}), or number (@expr{@tfn{tan}(3,5)}), | 22408 | range (@expr{@tfn{tan}(90)}), or number (@expr{@tfn{tan}(3,5)}), |
| 22409 | or if the function name is not recognized (@expr{@tfn{f}(5)}), or if | 22409 | or if the function name is not recognized (@expr{@tfn{f}(5)}), or if |
| 22410 | Symbolic mode (@pxref{Symbolic Mode}) prevents evaluation | 22410 | Symbolic 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 | |||
| 22452 | arguments in Calc's internal form. Sums and products of three or | 22452 | arguments in Calc's internal form. Sums and products of three or |
| 22453 | more terms are arranged by the associative law of algebra into | 22453 | more terms are arranged by the associative law of algebra into |
| 22454 | a left-associative form for sums, @expr{((a + b) + c) + d}, and | 22454 | a 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 |
| 22457 | rearranged to left-associative form, though this rarely matters since | 22457 | rearranged to left-associative form, though this rarely matters since |
| 22458 | Calc's algebra commands are designed to hide the inner structure of sums | 22458 | Calc'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 | |||
| 22533 | rewritten to @expr{a (c - b)}. | 22533 | rewritten to @expr{a (c - b)}. |
| 22534 | 22534 | ||
| 22535 | The distributive law of products and powers is used for adjacent | 22535 | The distributive law of products and powers is used for adjacent |
| 22536 | terms of the product: @expr{x^a x^b} goes to | 22536 | terms 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)} |
| 22539 | where @expr{a} is a number, or an implicit 1 (as in @expr{x}), | 22539 | where @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 | ||
| 22546 | The product of a negative power times anything but another negative | 22546 | The product of a negative power times anything but another negative |
| 22547 | power is changed to use division: | 22547 | power 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} |
| 22550 | goes to @expr{y / x^2} unless Matrix mode is | 22550 | goes to @expr{y / x^2} unless Matrix mode is |
| 22551 | in effect and neither @expr{x} nor @expr{y} are scalar (in which | 22551 | in effect and neither @expr{x} nor @expr{y} are scalar (in which |
| 22552 | case it is considered unsafe to rearrange the order of the terms). | 22552 | case 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 | |||
| 22568 | infinite quantity, as directed by the current infinite mode. | 22568 | infinite quantity, as directed by the current infinite mode. |
| 22569 | @xref{Infinite Mode}. | 22569 | @xref{Infinite Mode}. |
| 22570 | 22570 | ||
| 22571 | The expression | 22571 | The 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)} |
| 22574 | is changed to @expr{a b^c}, where @expr{-c} is any negative-looking | 22574 | is changed to @expr{a b^c}, where @expr{-c} is any negative-looking |
| 22575 | power. Also, @expr{1 / b^c} is changed to | 22575 | power. 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)} |
| 22578 | for any power @expr{c}. | 22578 | for any power @expr{c}. |
| 22579 | 22579 | ||
| 22580 | Also, @expr{(-a) / b} and @expr{a / (-b)} go to @expr{-(a/b)}; | 22580 | Also, @expr{(-a) / b} and @expr{a / (-b)} go to @expr{-(a/b)}; |
| @@ -22590,7 +22590,7 @@ described for multiplication. | |||
| 22590 | 22590 | ||
| 22591 | Quotients of products cancel only in the leading terms of the | 22591 | Quotients of products cancel only in the leading terms of the |
| 22592 | numerator and denominator. In other words, @expr{a x b / a y b} | 22592 | numerator and denominator. In other words, @expr{a x b / a y b} |
| 22593 | is cancelled to @expr{x b / y b} but not to @expr{x / y}. Once | 22593 | is canceled to @expr{x b / y b} but not to @expr{x / y}. Once |
| 22594 | again this is because full cancellation can be slow; use @kbd{a s} | 22594 | again this is because full cancellation can be slow; use @kbd{a s} |
| 22595 | to cancel all terms of the quotient. | 22595 | to 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} | |||
| 22614 | is an integer, or if either @expr{a} or @expr{b} are nonnegative | 22614 | is an integer, or if either @expr{a} or @expr{b} are nonnegative |
| 22615 | real numbers. Powers of powers @expr{(a^b)^c} are simplified to | 22615 | real 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)} |
| 22618 | only when @expr{c} is an integer and @expr{b c} also | 22618 | only when @expr{c} is an integer and @expr{b c} also |
| 22619 | evaluates to an integer. Without these restrictions these simplifications | 22619 | evaluates to an integer. Without these restrictions these simplifications |
| 22620 | would not be safe because of problems with principal values. | 22620 | would 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} |
| 22624 | is safe to simplify, but | 22624 | is 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} |
| 22627 | is not.) @xref{Declarations}, for ways to inform Calc that your | 22627 | is not.) @xref{Declarations}, for ways to inform Calc that your |
| 22628 | variables satisfy these requirements. | 22628 | variables satisfy these requirements. |
| 22629 | 22629 | ||
| 22630 | As a special case of this rule, @expr{@tfn{sqrt}(x)^n} is simplified to | 22630 | As 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)} |
| 22633 | only for even integers @expr{n}. | 22633 | only for even integers @expr{n}. |
| 22634 | 22634 | ||
| 22635 | If @expr{a} is known to be real, @expr{b} is an even integer, and | 22635 | If @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 | ||
| 22643 | Square roots @expr{@tfn{sqrt}(x)} generally act like one-half powers | 22643 | Square 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} |
| 22646 | for the purposes of the above-listed simplifications. | 22646 | for the purposes of the above-listed simplifications. |
| 22647 | 22647 | ||
| 22648 | Also, note that | 22648 | Also, 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} |
| 22651 | is changed to | 22651 | is 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)}, |
| 22654 | but @expr{1 / @tfn{sqrt}(x)} is left alone. | 22654 | but @expr{1 / @tfn{sqrt}(x)} is left alone. |
| @@ -22660,9 +22660,9 @@ but @expr{1 / @tfn{sqrt}(x)} is left alone. | |||
| 22660 | Generic identity matrices (@pxref{Matrix Mode}) are simplified by the | 22660 | Generic identity matrices (@pxref{Matrix Mode}) are simplified by the |
| 22661 | following rules: @expr{@tfn{idn}(a) + b} to @expr{a + b} if @expr{b} | 22661 | following rules: @expr{@tfn{idn}(a) + b} to @expr{a + b} if @expr{b} |
| 22662 | is provably scalar, or expanded out if @expr{b} is a matrix; | 22662 | is 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} |
| 22666 | if @expr{a} is provably non-scalar; @expr{@tfn{idn}(a) @tfn{idn}(b)} to | 22666 | if @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)}. | |||
| 22683 | The expression @expr{@tfn{abs}(@tfn{abs}(x))} changes to | 22683 | The 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 | ||
| 22688 | While most functions do not recognize the variable @code{i} as an | 22688 | While most functions do not recognize the variable @code{i} as an |
| 22689 | imaginary number, the @code{arg} function does handle the two cases | 22689 | imaginary 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}. | |||
| 22693 | Various other expressions involving @code{conj}, @code{re}, and | 22693 | Various 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 |
| 22695 | provably real or involve the constant @code{i}. For example, | 22695 | provably 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} |
| 22698 | and @expr{b} are known to be real. | 22698 | and @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 | |||
| 22810 | cancel @expr{x^2} from the top and bottom to get @expr{a b / c x d}. | 22810 | cancel @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} |
| 22812 | as described above.) If there is any common integer or fractional | 22812 | as described above.) If there is any common integer or fractional |
| 22813 | factor in the numerator and denominator, it is cancelled out; | 22813 | factor in the numerator and denominator, it is canceled out; |
| 22814 | for example, @expr{(4 x + 6) / 8 x} simplifies to @expr{(2 x + 3) / 4 x}. | 22814 | for example, @expr{(4 x + 6) / 8 x} simplifies to @expr{(2 x + 3) / 4 x}. |
| 22815 | 22815 | ||
| 22816 | Non-constant common factors are not found even by @kbd{a s}. To | 22816 | Non-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 | |||
| 22836 | Symbolic mode.) First, square integer or rational factors are | 22836 | Symbolic mode.) First, square integer or rational factors are |
| 22837 | pulled out so that @expr{@tfn{sqrt}(8)} is rewritten as | 22837 | pulled 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)}. |
| 22840 | Conceptually speaking this implies factoring the argument into primes | 22840 | Conceptually speaking this implies factoring the argument into primes |
| 22841 | and moving pairs of primes out of the square root, but for reasons of | 22841 | and moving pairs of primes out of the square root, but for reasons of |
| 22842 | efficiency Calc only looks for primes up to 29. | 22842 | efficiency 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 | ||
| 22859 | If the argument is multiplied by a constant, and this constant | 22859 | If the argument is multiplied by a constant, and this constant |
| 22860 | has a common integer divisor with the modulus, then this factor is | 22860 | has a common integer divisor with the modulus, then this factor is |
| 22861 | cancelled out. For example, @samp{12 x % 15} is changed to | 22861 | canceled 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} |
| 22863 | is changed to @samp{3 ((4 x + 1:3) % 5)}. While these forms may | 22863 | is changed to @samp{3 ((4 x + 1:3) % 5)}. While these forms may |
| 22864 | not seem ``simpler,'' they allow Calc to discover useful information | 22864 | not seem ``simpler,'' they allow Calc to discover useful information |
| @@ -22879,7 +22879,7 @@ declared to be an integer. | |||
| 22879 | Trigonometric functions are simplified in several ways. Whenever a | 22879 | Trigonometric functions are simplified in several ways. Whenever a |
| 22880 | products of two trigonometric functions can be replaced by a single | 22880 | products of two trigonometric functions can be replaced by a single |
| 22881 | function, the replacement is made; for example, | 22881 | function, 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)}. |
| 22883 | Reciprocals of trigonometric functions are replaced by their reciprocal | 22883 | Reciprocals of trigonometric functions are replaced by their reciprocal |
| 22884 | function; for example, @expr{1/@tfn{sec}(x)} is simplified to | 22884 | function; 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 | ||
| 22888 | Trigonometric functions of their inverse functions are | 22888 | Trigonometric functions of their inverse functions are |
| 22889 | simplified. The expression @expr{@tfn{sin}(@tfn{arcsin}(x))} is | 22889 | simplified. The expression @expr{@tfn{sin}(@tfn{arcsin}(x))} is |
| 22890 | simplified to @expr{x}, and similarly for @code{cos} and @code{tan}. | 22890 | simplified to @expr{x}, and similarly for @code{cos} and @code{tan}. |
| 22891 | Trigonometric functions of inverses of different trigonometric | 22891 | Trigonometric functions of inverses of different trigonometric |
| 22892 | functions can also be simplified, as in @expr{@tfn{sin}(@tfn{arccos}(x))} | 22892 | functions can also be simplified, as in @expr{@tfn{sin}(@tfn{arccos}(x))} |
| 22893 | to @expr{@tfn{sqrt}(1 - x^2)}. | 22893 | to @expr{@tfn{sqrt}(1 - x^2)}. |
| @@ -22905,30 +22905,30 @@ No simplifications for inverse trigonometric and hyperbolic | |||
| 22905 | functions are known, except for negative arguments of @code{arcsin}, | 22905 | functions 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} |
| 22911 | radians or 360 degrees. However, @expr{@tfn{arcsinh}(@tfn{sinh}(x))} is | 22911 | radians or 360 degrees. However, @expr{@tfn{arcsinh}(@tfn{sinh}(x))} is |
| 22912 | simplified to @expr{x} if @expr{x} is known to be real. | 22912 | simplified to @expr{x} if @expr{x} is known to be real. |
| 22913 | 22913 | ||
| 22914 | Several simplifications that apply to logarithms and exponentials | 22914 | Several simplifications that apply to logarithms and exponentials |
| 22915 | are that @expr{@tfn{exp}(@tfn{ln}(x))}, | 22915 | are 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)}, |
| 22918 | and | 22918 | and |
| 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)} |
| 22921 | all reduce to @expr{x}. Also, @expr{@tfn{ln}(@tfn{exp}(x))}, etc., can | 22921 | all reduce to @expr{x}. Also, @expr{@tfn{ln}(@tfn{exp}(x))}, etc., can |
| 22922 | reduce to @expr{x} if @expr{x} is provably real. The form | 22922 | reduce 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} |
| 22924 | is a suitable multiple of | 22924 | is 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 |
| 22931 | negative imaginary. | 22931 | negative imaginary. |
| 22932 | 22932 | ||
| 22933 | The error functions @code{erf} and @code{erfc} are simplified when | 22933 | The error functions @code{erf} and @code{erfc} are simplified when |
| 22934 | their arguments are negative-looking or are calls to the @code{conj} | 22934 | their 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 | ||
| 22941 | Equations and inequalities are simplified by cancelling factors | 22941 | Equations and inequalities are simplified by canceling factors |
| 22942 | of products, quotients, or sums on both sides. Inequalities | 22942 | of products, quotients, or sums on both sides. Inequalities |
| 22943 | change sign if a negative multiplicative factor is cancelled. | 22943 | change sign if a negative multiplicative factor is canceled. |
| 22944 | Non-constant multiplicative factors as in @expr{a b = a c} are | 22944 | Non-constant multiplicative factors as in @expr{a b = a c} are |
| 22945 | cancelled from equations only if they are provably nonzero (generally | 22945 | canceled from equations only if they are provably nonzero (generally |
| 22946 | because they were declared so; @pxref{Declarations}). Factors | 22946 | because they were declared so; @pxref{Declarations}). Factors |
| 22947 | are cancelled from inequalities only if they are nonzero and their | 22947 | are canceled from inequalities only if they are nonzero and their |
| 22948 | sign is known. | 22948 | sign is known. |
| 22949 | 22949 | ||
| 22950 | Simplification also replaces an equation or inequality with | 22950 | Simplification also replaces an equation or inequality with |
| @@ -23006,18 +23006,18 @@ values of @expr{x} in a certain range; outside that range, values | |||
| 23006 | are folded down to the 360-degree range that the inverse trigonometric | 23006 | are folded down to the 360-degree range that the inverse trigonometric |
| 23007 | functions always produce. | 23007 | functions always produce. |
| 23008 | 23008 | ||
| 23009 | Powers of powers @expr{(x^a)^b} are simplified to | 23009 | Powers 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)} |
| 23012 | for all @expr{a} and @expr{b}. These results will be valid only | 23012 | for all @expr{a} and @expr{b}. These results will be valid only |
| 23013 | in a restricted range of @expr{x}; for example, in | 23013 | in 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} |
| 23016 | the powers cancel to get @expr{x}, which is valid for positive values | 23016 | the powers cancel to get @expr{x}, which is valid for positive values |
| 23017 | of @expr{x} but not for negative or complex values. | 23017 | of @expr{x} but not for negative or complex values. |
| 23018 | 23018 | ||
| 23019 | Similarly, @expr{@tfn{sqrt}(x^a)} and @expr{@tfn{sqrt}(x)^a} are both | 23019 | Similarly, @expr{@tfn{sqrt}(x^a)} and @expr{@tfn{sqrt}(x)^a} are both |
| 23020 | simplified (possibly unsafely) to | 23020 | simplified (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 | ||
| 23028 | Arguments of square roots are partially factored to look for | 23028 | Arguments of square roots are partially factored to look for |
| 23029 | squared terms that can be extracted. For example, | 23029 | squared 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 | ||
| 23033 | The simplifications of @expr{@tfn{ln}(@tfn{exp}(x))}, | 23033 | The simplifications of @expr{@tfn{ln}(@tfn{exp}(x))}, |
| @@ -23035,9 +23035,9 @@ The simplifications of @expr{@tfn{ln}(@tfn{exp}(x))}, | |||
| 23035 | unsafe because of problems with principal values (although these | 23035 | unsafe because of problems with principal values (although these |
| 23036 | simplifications are safe if @expr{x} is known to be real). | 23036 | simplifications are safe if @expr{x} is known to be real). |
| 23037 | 23037 | ||
| 23038 | Common factors are cancelled from products on both sides of an | 23038 | Common factors are canceled from products on both sides of an |
| 23039 | equation, even if those factors may be zero: @expr{a x / b x} | 23039 | equation, even if those factors may be zero: @expr{a x / b x} |
| 23040 | to @expr{a / b}. Such factors are never cancelled from | 23040 | to @expr{a / b}. Such factors are never canceled from |
| 23041 | inequalities: Even @kbd{a e} is not bold enough to reduce | 23041 | inequalities: 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 |
| 23043 | on whether you believe @expr{x} is positive or negative). | 23043 | on whether you believe @expr{x} is positive or negative). |
| @@ -23071,7 +23071,7 @@ If units auto-ranging mode is enabled, products or quotients in | |||
| 23071 | which the first argument is a number which is out of range for the | 23071 | which the first argument is a number which is out of range for the |
| 23072 | leading unit are modified accordingly. | 23072 | leading unit are modified accordingly. |
| 23073 | 23073 | ||
| 23074 | When cancelling and combining units in products and quotients, | 23074 | When canceling and combining units in products and quotients, |
| 23075 | Calc accounts for unit names that differ only in the prefix letter. | 23075 | Calc accounts for unit names that differ only in the prefix letter. |
| 23076 | For example, @samp{2 km m} is simplified to @samp{2000 m^2}. | 23076 | For example, @samp{2 km m} is simplified to @samp{2000 m^2}. |
| 23077 | However, compatible but different units like @code{ft} and @code{in} | 23077 | However, 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 | ||
| 23094 | For powers and square roots, the ``unsafe'' simplifications | 23094 | For 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}, |
| 23096 | and @expr{(a^b)^c} to | 23096 | and @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)} |
| 23099 | are done if the powers are real numbers. (These are safe in the context | 23099 | are done if the powers are real numbers. (These are safe in the context |
| 23100 | of units because all numbers involved can reasonably be assumed to be | 23100 | of units because all numbers involved can reasonably be assumed to be |
| 23101 | real.) | 23101 | real.) |
| @@ -23108,12 +23108,12 @@ according to the previous paragraph. For example, @samp{acre^1.5} | |||
| 23108 | is simplified by noting that @expr{1.5 = 3:2}, that @samp{acre} | 23108 | is simplified by noting that @expr{1.5 = 3:2}, that @samp{acre} |
| 23109 | is defined in terms of @samp{m^2}, and that the 2 in the power of | 23109 | is 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 |
| 23111 | replaced by approximately | 23111 | replaced 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}, |
| 23114 | which is then changed to | 23114 | which 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}, |
| 23117 | then to @expr{257440 m^3}. | 23117 | then to @expr{257440 m^3}. |
| 23118 | 23118 | ||
| 23119 | The functions @code{float}, @code{frac}, @code{clean}, @code{abs}, | 23119 | The functions @code{float}, @code{frac}, @code{clean}, @code{abs}, |
| @@ -23401,7 +23401,7 @@ answer! | |||
| 23401 | 23401 | ||
| 23402 | If you use the @code{deriv} function directly in an algebraic formula, | 23402 | If you use the @code{deriv} function directly in an algebraic formula, |
| 23403 | you can write @samp{deriv(f,x,x0)} which represents the derivative | 23403 | you can write @samp{deriv(f,x,x0)} which represents the derivative |
| 23404 | of @expr{f} with respect to @expr{x}, evaluated at the point | 23404 | of @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 | |||
| 23441 | work for all integrable functions, but it is able to integrate several | 23441 | work for all integrable functions, but it is able to integrate several |
| 23442 | large classes of formulas. In particular, any polynomial or rational | 23442 | large classes of formulas. In particular, any polynomial or rational |
| 23443 | function (a polynomial divided by a polynomial) is acceptable. | 23443 | function (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)} |
| 23447 | is not strictly a quotient of polynomials, but it is equivalent to | 23447 | is not strictly a quotient of polynomials, but it is equivalent to |
| @@ -23472,7 +23472,7 @@ integral $\int_a^b f(x) \, dx$. | |||
| 23472 | 23472 | ||
| 23473 | Please note that the current implementation of Calc's integrator sometimes | 23473 | Please note that the current implementation of Calc's integrator sometimes |
| 23474 | produces results that are significantly more complex than they need to | 23474 | produces results that are significantly more complex than they need to |
| 23475 | be. For example, the integral Calc finds for | 23475 | be. 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))} |
| 23478 | is several times more complicated than the answer Mathematica | 23478 | is several times more complicated than the answer Mathematica |
| @@ -23480,11 +23480,11 @@ returns for the same input, although the two forms are numerically | |||
| 23480 | equivalent. Also, any indefinite integral should be considered to have | 23480 | equivalent. Also, any indefinite integral should be considered to have |
| 23481 | an arbitrary constant of integration added to it, although Calc does not | 23481 | an arbitrary constant of integration added to it, although Calc does not |
| 23482 | write an explicit constant of integration in its result. For example, | 23482 | write an explicit constant of integration in its result. For example, |
| 23483 | Calc's solution for | 23483 | Calc'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))} |
| 23486 | differs from the solution given in the @emph{CRC Math Tables} by a | 23486 | differs from the solution given in the @emph{CRC Math Tables} by a |
| 23487 | constant factor of | 23487 | constant 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}, |
| 23490 | due to a different choice of constant of integration. | 23490 | due to a different choice of constant of integration. |
| @@ -23544,9 +23544,9 @@ in your @code{IntegRules}. | |||
| 23544 | @tindex Ei | 23544 | @tindex Ei |
| 23545 | As a more serious example, the expression @samp{exp(x)/x} cannot be | 23545 | As a more serious example, the expression @samp{exp(x)/x} cannot be |
| 23546 | integrated in terms of the standard functions, so the ``exponential | 23546 | integrated in terms of the standard functions, so the ``exponential |
| 23547 | integral'' function | 23547 | integral'' function |
| 23548 | @texline @math{{\rm Ei}(x)} | 23548 | @texline @math{{\rm Ei}(x)} |
| 23549 | @infoline @expr{Ei(x)} | 23549 | @infoline @expr{Ei(x)} |
| 23550 | was invented to describe it. | 23550 | was invented to describe it. |
| 23551 | We can get Calc to do this integral in terms of a made-up @code{Ei} | 23551 | We can get Calc to do this integral in terms of a made-up @code{Ei} |
| 23552 | function by adding the rule @samp{[integtry(exp(x)/x, x) := Ei(x)]} | 23552 | function by adding the rule @samp{[integtry(exp(x)/x, x) := Ei(x)]} |
| @@ -23717,18 +23717,18 @@ form @expr{X = 0}. | |||
| 23717 | 23717 | ||
| 23718 | This command also works for inequalities, as in @expr{y < 3x + 6}. | 23718 | This command also works for inequalities, as in @expr{y < 3x + 6}. |
| 23719 | Some inequalities cannot be solved where the analogous equation could | 23719 | Some inequalities cannot be solved where the analogous equation could |
| 23720 | be; for example, solving | 23720 | be; 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} |
| 23723 | for @expr{b} is impossible | 23723 | for @expr{b} is impossible |
| 23724 | without knowing the sign of @expr{c}. In this case, @kbd{a S} will | 23724 | without knowing the sign of @expr{c}. In this case, @kbd{a S} will |
| 23725 | produce the result | 23725 | produce 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 |
| 23729 | inequality is now unknown. The inequality | 23729 | inequality 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} |
| 23732 | is not even partially solved. @xref{Declarations}, for a way to tell | 23732 | is not even partially solved. @xref{Declarations}, for a way to tell |
| 23733 | Calc that the signs of the variables in a formula are in fact known. | 23733 | Calc 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 | |||
| 24186 | with the minimum value itself. | 24186 | with the minimum value itself. |
| 24187 | 24187 | ||
| 24188 | Note that this command looks for a @emph{local} minimum. Many functions | 24188 | Note that this command looks for a @emph{local} minimum. Many functions |
| 24189 | have more than one minimum; some, like | 24189 | have 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)}, |
| 24192 | have infinitely many. In fact, there is no easy way to define the | 24192 | have 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)} |
| 24196 | but Calc can still locate any particular local minimum | 24196 | but Calc can still locate any particular local minimum |
| 24197 | for you. Calc basically goes downhill from the initial guess until it | 24197 | for you. Calc basically goes downhill from the initial guess until it |
| 24198 | finds a point at which the function's value is greater both to the left | 24198 | finds 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 | |||
| 24271 | no single @expr{m} and @expr{b} that exactly fit the data; in this | 24271 | no single @expr{m} and @expr{b} that exactly fit the data; in this |
| 24272 | case, Calc chooses values of the parameters that provide the closest | 24272 | case, Calc chooses values of the parameters that provide the closest |
| 24273 | possible fit. The model formula can be entered in various ways after | 24273 | possible fit. The model formula can be entered in various ways after |
| 24274 | the key sequence @kbd{a F} is pressed. | 24274 | the key sequence @kbd{a F} is pressed. |
| 24275 | 24275 | ||
| 24276 | If the letter @kbd{P} is pressed after @kbd{a F} but before the model | 24276 | If the letter @kbd{P} is pressed after @kbd{a F} but before the model |
| 24277 | description is entered, the data as well as the model formula will be | 24277 | description is entered, the data as well as the model formula will be |
| @@ -24319,7 +24319,7 @@ the @dfn{parameters} of the model. | |||
| 24319 | 24319 | ||
| 24320 | The @kbd{a F} command takes the data set to be fitted from the stack. | 24320 | The @kbd{a F} command takes the data set to be fitted from the stack. |
| 24321 | By default, it expects the data in the form of a matrix. For example, | 24321 | By default, it expects the data in the form of a matrix. For example, |
| 24322 | for a linear or polynomial fit, this would be a | 24322 | for 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 |
| 24325 | matrix where the first row is a list of @expr{x} values and the second | 24325 | matrix 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 | |||
| 24327 | shown above, the matrix would have four rows (@expr{x_1}, @expr{x_2}, | 24327 | shown 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 | ||
| 24330 | If you happen to have an | 24330 | If you happen to have an |
| 24331 | @texline @math{N\times2} | 24331 | @texline @math{N\times2} |
| 24332 | @infoline Nx2 | 24332 | @infoline Nx2 |
| 24333 | matrix instead of a | 24333 | matrix instead of a |
| 24334 | @texline @math{2\times N} | 24334 | @texline @math{2\times N} |
| 24335 | @infoline 2xN | 24335 | @infoline 2xN |
| 24336 | matrix, just press @kbd{v t} first to transpose the matrix. | 24336 | matrix, 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 $$ | |||
| 24425 | which is clearly zero if @expr{a + b x} exactly fits all data points, | 24425 | which is clearly zero if @expr{a + b x} exactly fits all data points, |
| 24426 | and increases as various @expr{a + b x_i} values fail to match the | 24426 | and increases as various @expr{a + b x_i} values fail to match the |
| 24427 | corresponding @expr{y_i} values. There are several reasons why the | 24427 | corresponding @expr{y_i} values. There are several reasons why the |
| 24428 | summand is squared, one of them being to ensure that | 24428 | summand 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}. |
| 24431 | Least-squares fitting simply chooses the values of @expr{a} and @expr{b} | 24431 | Least-squares fitting simply chooses the values of @expr{a} and @expr{b} |
| 24432 | for which the error | 24432 | for which the error |
| 24433 | @texline @math{\chi^2} | 24433 | @texline @math{\chi^2} |
| 24434 | @infoline @expr{chi^2} | 24434 | @infoline @expr{chi^2} |
| 24435 | is as small as possible. | 24435 | is as small as possible. |
| 24436 | 24436 | ||
| 24437 | Other kinds of models do the same thing but with a different model | 24437 | Other 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 | |||
| 24593 | or all be plain numbers. Error forms can go anywhere but generally | 24593 | or all be plain numbers. Error forms can go anywhere but generally |
| 24594 | go on the numbers in the last row of the data matrix. If the last | 24594 | go on the numbers in the last row of the data matrix. If the last |
| 24595 | row contains error forms | 24595 | row 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}', |
| 24598 | then the | 24598 | then the |
| 24599 | @texline @math{\chi^2} | 24599 | @texline @math{\chi^2} |
| 24600 | @infoline @expr{chi^2} | 24600 | @infoline @expr{chi^2} |
| 24601 | statistic is now, | 24601 | statistic is now, |
| @@ -24617,9 +24617,9 @@ the fitting operation. | |||
| 24617 | 24617 | ||
| 24618 | If there are error forms on other rows of the data matrix, all the | 24618 | If there are error forms on other rows of the data matrix, all the |
| 24619 | errors for a given data point are combined; the square root of the | 24619 | errors for a given data point are combined; the square root of the |
| 24620 | sum of the squares of the errors forms the | 24620 | sum 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} |
| 24623 | used for the data point. | 24623 | used for the data point. |
| 24624 | 24624 | ||
| 24625 | Both @kbd{a F} and @kbd{H a F} can accept error forms in the input | 24625 | Both @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 | |||
| 24627 | probably use @kbd{H a F} so that the output also contains error | 24627 | probably use @kbd{H a F} so that the output also contains error |
| 24628 | estimates. | 24628 | estimates. |
| 24629 | 24629 | ||
| 24630 | If the input contains error forms but all the | 24630 | If 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} |
| 24633 | values are the same, it is easy to see that the resulting fitted model | 24633 | values are the same, it is easy to see that the resulting fitted model |
| 24634 | will be the same as if the input did not have error forms at all | 24634 | will 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} |
| 24637 | is simply scaled uniformly by | 24637 | is 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}, |
| 24640 | which doesn't affect where it has a minimum). But there @emph{will} be | 24640 | which doesn't affect where it has a minimum). But there @emph{will} be |
| 24641 | a difference in the estimated errors of the coefficients reported by | 24641 | a difference in the estimated errors of the coefficients reported by |
| 24642 | @kbd{H a F}. | 24642 | @kbd{H a F}. |
| 24643 | 24643 | ||
| 24644 | Consult any text on statistical modeling of data for a discussion | 24644 | Consult any text on statistical modeling of data for a discussion |
| 24645 | of where these error estimates come from and how they should be | 24645 | of 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. | |||
| 24671 | The covariance matrix @expr{C} computed from the fit. This is | 24671 | The covariance matrix @expr{C} computed from the fit. This is |
| 24672 | an @var{m}x@var{m} symmetric matrix; the diagonal elements | 24672 | an @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} |
| 24675 | are the variances | 24675 | are 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} |
| 24678 | of the parameters. The other elements are covariances | 24678 | of 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} |
| 24681 | that describe the correlation between pairs of parameters. (A related | 24681 | that describe the correlation between pairs of parameters. (A related |
| 24682 | set of numbers, the @dfn{linear correlation coefficients} | 24682 | set 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}, |
| 24685 | are defined as | 24685 | are 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 | |||
| 24693 | polynomial and multilinear fits described so far. | 24693 | polynomial and multilinear fits described so far. |
| 24694 | 24694 | ||
| 24695 | @item | 24695 | @item |
| 24696 | The value of | 24696 | The value of |
| 24697 | @texline @math{\chi^2} | 24697 | @texline @math{\chi^2} |
| 24698 | @infoline @expr{chi^2} | 24698 | @infoline @expr{chi^2} |
| 24699 | for the fit, calculated by the formulas shown above. This gives a | 24699 | for the fit, calculated by the formulas shown above. This gives a |
| 24700 | measure of the quality of the fit; statisticians consider | 24700 | measure 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} |
| 24703 | to indicate a moderately good fit (where again @expr{N} is the number of | 24703 | to indicate a moderately good fit (where again @expr{N} is the number of |
| 24704 | data points and @expr{M} is the number of parameters). | 24704 | data points and @expr{M} is the number of parameters). |
| 24705 | 24705 | ||
| 24706 | @item | 24706 | @item |
| 24707 | A measure of goodness of fit expressed as a probability @expr{Q}. | 24707 | A measure of goodness of fit expressed as a probability @expr{Q}. |
| 24708 | This is computed from the @code{utpc} probability distribution | 24708 | This is computed from the @code{utpc} probability distribution |
| 24709 | function using | 24709 | function using |
| 24710 | @texline @math{\chi^2} | 24710 | @texline @math{\chi^2} |
| 24711 | @infoline @expr{chi^2} | 24711 | @infoline @expr{chi^2} |
| 24712 | with @expr{N - M} degrees of freedom. A | 24712 | with @expr{N - M} degrees of freedom. A |
| 24713 | value of 0.5 implies a good fit; some texts recommend that often | 24713 | value 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 |
| 24715 | particular, | 24715 | particular, |
| 24716 | @texline @math{\chi^2} | 24716 | @texline @math{\chi^2} |
| 24717 | @infoline @expr{chi^2} | 24717 | @infoline @expr{chi^2} |
| 24718 | statistics assume the errors in your inputs | 24718 | statistics assume the errors in your inputs |
| 24719 | follow a normal (Gaussian) distribution; if they don't, you may | 24719 | follow a normal (Gaussian) distribution; if they don't, you may |
| 24720 | have to accept smaller values of @expr{Q}. | 24720 | have to accept smaller values of @expr{Q}. |
| 24721 | 24721 | ||
| 24722 | The @expr{Q} value is computed only if the input included error | 24722 | The @expr{Q} value is computed only if the input included error |
| 24723 | estimates. Otherwise, Calc will report the symbol @code{nan} | 24723 | estimates. Otherwise, Calc will report the symbol @code{nan} |
| 24724 | for @expr{Q}. The reason is that in this case the | 24724 | for @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} |
| 24727 | value has effectively been used to estimate the original errors | 24727 | value 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 |
| 24764 | Quadratic. @mathit{a + b (x-c)^2 + d (x-e)^2}. | 24764 | Quadratic. @mathit{a + b (x-c)^2 + d (x-e)^2}. |
| 24765 | @item g | 24765 | @item g |
| 24766 | Gaussian. | 24766 | Gaussian. |
| 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 | ||
| 24789 | All models except Gaussian, logistics, Hubbert and polynomials can | 24789 | All models except Gaussian, logistics, Hubbert and polynomials can |
| 24790 | generalize as shown to any number of independent variables. Also, all | 24790 | generalize as shown to any number of independent variables. Also, all |
| 24791 | the built-in models except for the logistic and Hubbert curves have an | 24791 | the built-in models except for the logistic and Hubbert curves have an |
| 24792 | additive or multiplicative parameter shown as @expr{a} in the above table | 24792 | additive or multiplicative parameter shown as @expr{a} in the above table |
| 24793 | which can be replaced by zero or one, as appropriate, by typing @kbd{h} | 24793 | which can be replaced by zero or one, as appropriate, by typing @kbd{h} |
| 24794 | before the model key. | 24794 | before the model key. |
| @@ -24893,9 +24893,9 @@ form @samp{arcsin(y) = a t + b}. The @code{arcsin} function always | |||
| 24893 | returns results in the range from @mathit{-90} to 90 degrees (or the | 24893 | returns results in the range from @mathit{-90} to 90 degrees (or the |
| 24894 | equivalent range in radians). Suppose you had data that you | 24894 | equivalent range in radians). Suppose you had data that you |
| 24895 | believed to represent roughly three oscillations of a sine wave, | 24895 | believed to represent roughly three oscillations of a sine wave, |
| 24896 | so that the argument of the sine might go from zero to | 24896 | so 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} |
| 24899 | degrees. | 24899 | degrees. |
| 24900 | The above model would appear to be a good way to determine the | 24900 | The above model would appear to be a good way to determine the |
| 24901 | true frequency and phase of the sine wave, but in practice it | 24901 | true 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 |
| 24958 | which matches the desired form with | 24958 | which 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)}. |
| 24966 | Calc thus computes the logarithms of your @expr{y} and @expr{x} values, | 24966 | Calc thus computes the logarithms of your @expr{y} and @expr{x} values, |
| 24967 | does a linear fit for @expr{A} and @expr{B}, then solves to get | 24967 | does 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)} |
| 24970 | and @expr{b = B}. | 24970 | and @expr{b = B}. |
| 24971 | 24971 | ||
| 24972 | Another interesting example is the ``quadratic'' model, which can | 24972 | Another 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 | ||
| 25016 | A last desperate step would be to use the general-purpose | 25016 | A 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 |
| 25018 | functions solve the problem of minimizing an expression (the | 25018 | functions 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} |
| 25021 | sum) by adjusting certain parameters in the expression. The @kbd{a F} | 25021 | sum) by adjusting certain parameters in the expression. The @kbd{a F} |
| @@ -25026,9 +25026,9 @@ command can do the same thing by brute force. | |||
| 25026 | A compromise would be to pick out a few parameters without which the | 25026 | A compromise would be to pick out a few parameters without which the |
| 25027 | fit is linearizable, and use @code{minimize} on a call to @code{fit} | 25027 | fit is linearizable, and use @code{minimize} on a call to @code{fit} |
| 25028 | which efficiently takes care of the rest of the parameters. The thing | 25028 | which efficiently takes care of the rest of the parameters. The thing |
| 25029 | to be minimized would be the value of | 25029 | to 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} |
| 25032 | returned as the fifth result of the @code{xfit} function: | 25032 | returned 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} | |||
| 25086 | and @expr{y} to be plain numbers, and makes @expr{z} into an error | 25086 | and @expr{y} to be plain numbers, and makes @expr{z} into an error |
| 25087 | form with this combined error. The @expr{Y(x,y,z)} part of the | 25087 | form with this combined error. The @expr{Y(x,y,z)} part of the |
| 25088 | linearized model is evaluated, and the result should be an error | 25088 | linearized model is evaluated, and the result should be an error |
| 25089 | form. The error part of that result is used for | 25089 | form. 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} |
| 25092 | for the data point. If for some reason @expr{Y(x,y,z)} does not return | 25092 | for the data point. If for some reason @expr{Y(x,y,z)} does not return |
| 25093 | an error form, the combined error from @expr{z} is used directly for | 25093 | an 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}. |
| 25096 | Finally, @expr{z} is also stripped of its error | 25096 | Finally, @expr{z} is also stripped of its error |
| 25097 | for use in computing @expr{F(x,y,z)}, @expr{G(x,y,z)} and so on; | 25097 | for use in computing @expr{F(x,y,z)}, @expr{G(x,y,z)} and so on; |
| 25098 | the righthand side of the linearized model is computed in regular | 25098 | the 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 | |||
| 25104 | often simply equal to @expr{z}. For common cases like polynomials | 25104 | often simply equal to @expr{z}. For common cases like polynomials |
| 25105 | and multilinear models, the combined error is simply used as the | 25105 | and 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} |
| 25108 | for the data point with no further ado.) | 25108 | for 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 | |||
| 25481 | formula works out to the indeterminate form @expr{0 / 0}, which | 25481 | formula works out to the indeterminate form @expr{0 / 0}, which |
| 25482 | Calc will not assume is zero. Better would be to use | 25482 | Calc 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 |
| 25484 | an ``if-then-else'' test: This expression says, ``if | 25484 | an ``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}, |
| 25487 | then @expr{1/(k-k_0)}, else zero.'' Now the formula @expr{1/(k-k_0)} | 25487 | then @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)}. | |||
| 25644 | of @samp{<} and @samp{<=} are allowed, or any of the four combinations | 25644 | of @samp{<} and @samp{<=} are allowed, or any of the four combinations |
| 25645 | of @samp{>} and @samp{>=}. Four-argument constructions like | 25645 | of @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 |
| 25647 | involve both equalities and inequalities, are not allowed. | 25647 | involve 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}, | |||
| 26496 | then the rule set @samp{[f(0) := 0, import(linearF)]} will apply | 26496 | then the rule set @samp{[f(0) := 0, import(linearF)]} will apply |
| 26497 | all three rules. It is possible to modify the imported rules | 26497 | all three rules. It is possible to modify the imported rules |
| 26498 | slightly: @samp{import(x, v1, x1, v2, x2, @dots{})} imports | 26498 | slightly: @samp{import(x, v1, x1, v2, x2, @dots{})} imports |
| 26499 | the rule set @expr{x} with all occurrences of | 26499 | the 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}, |
| 26502 | as either a variable name or a function name, replaced with | 26502 | as 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} |
| 26505 | and so on. (If | 26505 | and so on. (If |
| 26506 | @texline @math{v_1} | 26506 | @texline @math{v_1} |
| 26507 | @infoline @expr{v1} | 26507 | @infoline @expr{v1} |
| 26508 | is used as a function name, then | 26508 | is used as a function name, then |
| 26509 | @texline @math{x_1} | 26509 | @texline @math{x_1} |
| 26510 | @infoline @expr{x1} | 26510 | @infoline @expr{x1} |
| 26511 | must be either a function name itself or a @w{@samp{< >}} nameless | 26511 | must 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 |
| 27612 | The following rule set, contributed by | 27612 | The following rule set, contributed by |
| 27613 | @texline Fran\c cois | 27613 | @texline Fran\c cois |
| 27614 | @infoline Francois | 27614 | @infoline Francois |
| 27615 | Pinard, implements @dfn{quaternions}, a generalization of the concept of | 27615 | Pinard, 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 | |||
| 27748 | typing @kbd{u c @key{RET}} (without specifying new units) produces | 27748 | typing @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 | ||
| 27754 | The @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 | ||
| 27757 | corresponds to a change of 18 degrees Fahrenheit. To convert absolute | ||
| 27758 | temperatures, you can use the @kbd{u t} | ||
| 27759 | (@code{calc-convert-temperature}) command. The value on the stack | ||
| 27760 | must be a simple units expression with units of temperature only. | ||
| 27761 | This command would convert @samp{10 degC} to @samp{50 degF}, the | ||
| 27762 | equivalent temperature on the Fahrenheit scale. | ||
| 27763 | |||
| 27751 | While many of Calc's conversion factors are exact, some are necessarily | 27764 | While many of Calc's conversion factors are exact, some are necessarily |
| 27752 | approximate. If Calc is in fraction mode (@pxref{Fraction Mode}), then | 27765 | approximate. If Calc is in fraction mode (@pxref{Fraction Mode}), then |
| 27753 | unit conversions will try to give exact, rational conversions, but it | 27766 | unit conversions will try to give exact, rational conversions, but it |
| 27754 | isn't always possible. Given @samp{55 mph} in fraction mode, typing | 27767 | isn'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, |
| 27756 | while typing @kbd{u c au/yr @key{RET}} produces | 27769 | while 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 | ||
| 27759 | If the units you request are inconsistent with the original units, the | 27772 | If 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 | |||
| 27818 | stack into @code{base} units. If @kbd{u s} does not simplify a | 27831 | stack into @code{base} units. If @kbd{u s} does not simplify a |
| 27819 | units expression as far as you would like, try @kbd{u b}. | 27832 | units expression as far as you would like, try @kbd{u b}. |
| 27820 | 27833 | ||
| 27821 | The @kbd{u c} and @kbd{u b} commands treat temperature units (like | 27834 | Like the @kbd{u c} command, the @kbd{u b} command treats temperature |
| 27822 | @samp{degC} and @samp{K}) as relative temperatures. For example, | 27835 | units as relative temperatures. |
| 27823 | @kbd{u c} converts @samp{10 degC} to @samp{18 degF}: A change of 10 | ||
| 27824 | degrees Celsius corresponds to a change of 18 degrees Fahrenheit. | ||
| 27825 | |||
| 27826 | @kindex u t | ||
| 27827 | @pindex calc-convert-temperature | ||
| 27828 | @cindex Temperature conversion | ||
| 27829 | The @kbd{u t} (@code{calc-convert-temperature}) command converts | ||
| 27830 | absolute temperatures. The value on the stack must be a simple units | ||
| 27831 | expression with units of temperature only. This command would convert | ||
| 27832 | @samp{10 degC} to @samp{50 degF}, the equivalent temperature on the | ||
| 27833 | Fahrenheit 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}. | |||
| 27992 | Other units used by @TeX{} are available; they are @code{texpc} (a pica), | 27994 | Other 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 |
| 27994 | than the point used by @TeX{}), @code{texdd} (a Didot point), | 27996 | than 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, |
| 27996 | all dimensions representable in @TeX{} are multiples of this value). | 27998 | all dimensions representable in @TeX{} are multiples of this value). |
| 27997 | 27999 | ||
| 27998 | When Calc is using the @TeX{} or La@TeX{} language mode (@pxref{TeX | 28000 | When 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 | |||
| 28129 | units which are manipulated differently than standard units. Calc | 28131 | units which are manipulated differently than standard units. Calc |
| 28130 | provides commands to work with these logarithmic units. | 28132 | provides commands to work with these logarithmic units. |
| 28131 | 28133 | ||
| 28132 | Decibels and nepers are used to measure power quantities as well as | 28134 | Decibels and nepers are used to measure power quantities as well as |
| 28133 | field quantities (quantities whose squares are proportional to power); | 28135 | field quantities (quantities whose squares are proportional to power); |
| 28134 | these two types of quantities are handled slightly different from each | 28136 | these two types of quantities are handled slightly different from each |
| 28135 | other. By default the Calc commands work as if power quantities are | 28137 | other. By default the Calc commands work as if power quantities are |
| 28136 | being used; with the @kbd{H} prefix the Calc commands work as if field | 28138 | being used; with the @kbd{H} prefix the Calc commands work as if field |
| 28137 | quantities are being used. | 28139 | quantities are being used. |
| 28138 | 28140 | ||
| 28139 | The decibel level of a power | 28141 | The decibel level of a power |
| 28140 | @infoline @math{P1}, | 28142 | @infoline @math{P1}, |
| 28141 | @texline @math{P_1}, | 28143 | @texline @math{P_1}, |
| 28142 | relative to a reference power | 28144 | relative to a reference power |
| 28143 | @infoline @math{P0}, | 28145 | @infoline @math{P0}, |
| 28144 | @texline @math{P_0}, | 28146 | @texline @math{P_0}, |
| 28145 | is defined to be | 28147 | is defined to be |
| @@ -28149,10 +28151,10 @@ is defined to be | |||
| 28149 | one-tenth of a bel. The bel, named after Alexander Graham Bell, was | 28151 | one-tenth of a bel. The bel, named after Alexander Graham Bell, was |
| 28150 | considered to be too large of a unit and was effectively replaced by | 28152 | considered to be too large of a unit and was effectively replaced by |
| 28151 | the decibel.) If @math{F} is a field quantity with power | 28153 | the 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} |
| 28155 | would correspond to a power of | 28157 | would 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}. |
| 28158 | If | 28160 | If |
| @@ -28161,7 +28163,7 @@ If | |||
| 28161 | then | 28163 | then |
| 28162 | 28164 | ||
| 28163 | @ifnottex | 28165 | @ifnottex |
| 28164 | @example | 28166 | @example |
| 28165 | 10 log10(P1/P0) = 10 log10(F1^2/F0^2) = 20 log10(F1/F0). | 28167 | 10 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 |
| 28174 | In order to get the same decibel level regardless of whether a field | 28176 | In order to get the same decibel level regardless of whether a field |
| 28175 | quantity or the corresponding power quantity is used, the decibel | 28177 | quantity or the corresponding power quantity is used, the decibel |
| 28176 | level of a field quantity | 28178 | level of a field quantity |
| 28177 | @infoline @math{F1}, | 28179 | @infoline @math{F1}, |
| 28178 | @texline @math{F_1}, | 28180 | @texline @math{F_1}, |
| 28179 | relative to a reference | 28181 | relative to a reference |
| 28180 | @infoline @math{F0}, | 28182 | @infoline @math{F0}, |
| 28181 | @texline @math{F_0}, | 28183 | @texline @math{F_0}, |
| 28182 | is defined as | 28184 | is 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}}. |
| 28185 | For example, the decibel value of a sound pressure level of | 28187 | For 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}} |
| 28188 | relative to | 28190 | relative 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}}, |
| 28194 | which is about | 28196 | which 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}}. |
| 28197 | Note that in taking the ratio, the original units cancel and so these | 28199 | Note that in taking the ratio, the original units cancel and so these |
| 28198 | logarithmic units are dimensionless. | 28200 | logarithmic units are dimensionless. |
| 28199 | 28201 | ||
| 28200 | Nepers (named after John Napier, who is credited with inventing the | 28202 | Nepers (named after John Napier, who is credited with inventing the |
| 28201 | logarithm) are similar to bels except they use natural logarithms instead | 28203 | logarithm) are similar to bels except they use natural logarithms instead |
| 28202 | of common logarithms. The neper level of a power | 28204 | of 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}, |
| 28205 | relative to a reference power | 28207 | relative to a reference power |
| 28206 | @infoline @math{P0}, | 28208 | @infoline @math{P0}, |
| 28207 | @texline @math{P_0}, | 28209 | @texline @math{P_0}, |
| 28208 | is | 28210 | is |
| 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}}. |
| 28211 | The neper level of a field | 28213 | The neper level of a field |
| 28212 | @infoline @math{F1}, | 28214 | @infoline @math{F1}, |
| 28213 | @texline @math{F_1}, | 28215 | @texline @math{F_1}, |
| 28214 | relative to a reference field | 28216 | relative 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 |
| 28223 | For power quantities, Calc uses | 28225 | For 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}} |
| 28226 | as the default reference quantity; this default can be changed by changing | 28228 | as the default reference quantity; this default can be changed by changing |
| 28227 | the value of the customizable variable | 28229 | the value of the customizable variable |
| 28228 | @code{calc-lu-power-reference} (@pxref{Customizing Calc}). | 28230 | @code{calc-lu-power-reference} (@pxref{Customizing Calc}). |
| 28229 | For field quantities, Calc uses | 28231 | For 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}} |
| 28232 | as the default reference quantity; this is the value used in acoustics | 28234 | as the default reference quantity; this is the value used in acoustics |
| 28233 | which is where decibels are commonly encountered. This default can be | 28235 | which 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 | |||
| 28245 | logarithmic units. With the capital @kbd{O} prefix, @kbd{O l q}, the | 28247 | logarithmic units. With the capital @kbd{O} prefix, @kbd{O l q}, the |
| 28246 | reference level will be read from the top of the stack. (In an | 28248 | reference level will be read from the top of the stack. (In an |
| 28247 | algebraic formula, @code{lupquant} can be given an optional second | 28249 | algebraic formula, @code{lupquant} can be given an optional second |
| 28248 | argument which will be used for the reference level.) For example, | 28250 | argument 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}. |
| 28251 | The @kbd{H l q} [@code{lufquant}] command behaves like @kbd{l q} but | 28253 | The @kbd{H l q} [@code{lufquant}] command behaves like @kbd{l q} but |
| 28252 | computes field quantities instead of power quantities. | 28254 | computes 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 |
| 28287 | The sum of two power or field quantities doesn't correspond to the sum | 28289 | The sum of two power or field quantities doesn't correspond to the sum |
| 28288 | of the corresponding decibel or neper levels. If the powers | 28290 | of the corresponding decibel or neper levels. If the powers |
| 28289 | corresponding to decibel levels | 28291 | corresponding to decibel levels |
| 28290 | @infoline @math{D1} | 28292 | @infoline @math{D1} |
| 28291 | @texline @math{D_1} | 28293 | @texline @math{D_1} |
| 28292 | and | 28294 | and |
| 28293 | @infoline @math{D2} | 28295 | @infoline @math{D2} |
| 28294 | @texline @math{D_2} | 28296 | @texline @math{D_2} |
| 28295 | are added, the corresponding decibel level ``sum'' will be | 28297 | are 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 |
| 28338 | if a field quantity is multiplied by @math{N} the corresponding decibel level | 28340 | if a field quantity is multiplied by @math{N} the corresponding decibel level |
| 28339 | will be | 28341 | will be |
| 28340 | 28342 | ||
| 28341 | @ifnottex | 28343 | @ifnottex |
| 28342 | @example | 28344 | @example |
| @@ -28373,31 +28375,31 @@ operating on notes. | |||
| 28373 | Scientific pitch notation refers to a note by giving a letter | 28375 | Scientific pitch notation refers to a note by giving a letter |
| 28374 | A through G, possibly followed by a flat or sharp) with a subscript | 28376 | A through G, possibly followed by a flat or sharp) with a subscript |
| 28375 | indicating an octave number. Each octave starts with C and ends with | 28377 | indicating an octave number. Each octave starts with C and ends with |
| 28376 | B and | 28378 | B 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}. |
| 28381 | the octave numbered 0 was chosen to correspond to the lowest | 28383 | the octave numbered 0 was chosen to correspond to the lowest |
| 28382 | audible frequency. Using this system, middle C (about 261.625 Hz) | 28384 | audible frequency. Using this system, middle C (about 261.625 Hz) |
| 28383 | corresponds to the note @expr{C} in octave 4 and is denoted | 28385 | corresponds 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 |
| 28385 | offset in cents (where a cent is a ratio of frequencies so that a | 28387 | offset in cents (where a cent is a ratio of frequencies so that a |
| 28386 | semitone consists of 100 cents). | 28388 | semitone consists of 100 cents). |
| 28387 | 28389 | ||
| 28388 | The midi note number system assigns numbers to notes so that | 28390 | The 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} |
| 28390 | corresponds to the midi note number 127. A midi controller can have | 28392 | corresponds to the midi note number 127. A midi controller can have |
| 28391 | up to 128 keys and each midi note number from 0 to 127 corresponds to | 28393 | up to 128 keys and each midi note number from 0 to 127 corresponds to |
| 28392 | a possible key. | 28394 | a 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 |
| 28397 | The @kbd{l s} (@code{calc-spn}) [@code{spn}] command converts either | 28399 | The @kbd{l s} (@code{calc-spn}) [@code{spn}] command converts either |
| 28398 | a frequency or a midi number to scientific pitch notation. For | 28400 | a frequency or a midi number to scientific pitch notation. For |
| 28399 | example, @code{500 Hz} gets converted to | 28401 | example, @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 | |||
| 28462 | the stack into a specified variable. It prompts you to enter the | 28464 | the stack into a specified variable. It prompts you to enter the |
| 28463 | name of the variable. If you press a single digit, the value is stored | 28465 | name of the variable. If you press a single digit, the value is stored |
| 28464 | immediately in one of the ``quick'' variables @code{q0} through | 28466 | immediately 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. | |||
| 28552 | All the arithmetic stores accept the Inverse prefix to reverse the | 28554 | All the arithmetic stores accept the Inverse prefix to reverse the |
| 28553 | order of the operands. If @expr{v} represents the contents of the | 28555 | order of the operands. If @expr{v} represents the contents of the |
| 28554 | variable, and @expr{a} is the value drawn from the stack, then regular | 28556 | variable, 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}, |
| 28558 | but @kbd{I s -} assigns | 28560 | but @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}. |
| 28561 | While @kbd{I s *} might seem pointless, it is | 28563 | While @kbd{I s *} might seem pointless, it is |
| 28562 | useful if matrix multiplication is involved. Actually, all the | 28564 | useful if matrix multiplication is involved. Actually, all the |
| 28563 | arithmetic stores use formulas designed to behave usefully both | 28565 | arithmetic 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 |
| 28668 | If one of the ``special constants'' is redefined (or undefined) so that | 28670 | If one of the ``special constants'' is redefined (or undefined) so that |
| 28669 | it no longer has its magic property, the property can be restored with | 28671 | it 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 |
| 28671 | for a special constant and a variable to store it in, and so a special | 28673 | for a special constant and a variable to store it in, and so a special |
| 28672 | constant can be stored in any variable. Here, the special constant that | 28674 | constant can be stored in any variable. Here, the special constant that |
| @@ -28848,7 +28850,7 @@ explicitly naming them in an @kbd{s p} command.) | |||
| 28848 | The @kbd{s i} (@code{calc-insert-variables}) command writes | 28850 | The @kbd{s i} (@code{calc-insert-variables}) command writes |
| 28849 | the values of all Calc variables into a specified buffer. | 28851 | the values of all Calc variables into a specified buffer. |
| 28850 | The variables are written with the prefix @code{var-} in the form of | 28852 | The variables are written with the prefix @code{var-} in the form of |
| 28851 | Lisp @code{setq} commands | 28853 | Lisp @code{setq} commands |
| 28852 | which store the values in string form. You can place these commands | 28854 | which store the values in string form. You can place these commands |
| 28853 | in your Calc init file (or @file{.emacs}) if you wish, though in this case it | 28855 | in your Calc init file (or @file{.emacs}) if you wish, though in this case it |
| 28854 | would be easier to use @kbd{s p @key{RET}}. (Note that @kbd{s i} | 28856 | would 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 | |||
| 29157 | the same length); either or both may instead be interval forms. The | 29159 | the 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 |
| 29159 | in ``x'', and the same number of columns as elements in ``y''. The | 29161 | in ``x'', and the same number of columns as elements in ``y''. The |
| 29160 | result is a surface plot where | 29162 | result 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} |
| 29163 | is the height of the point | 29165 | is the height of the point |
| 29164 | at coordinate @expr{(x_i, y_j)} on the surface. The 3D graph will | 29166 | at coordinate @expr{(x_i, y_j)} on the surface. The 3D graph will |
| 29165 | be displayed from a certain default viewpoint; you can change this | 29167 | be 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'' | |||
| 29268 | values covered by all the curves ought to be roughly the same if | 29270 | values covered by all the curves ought to be roughly the same if |
| 29269 | they are to look nice on the same graph.) | 29271 | they are to look nice on the same graph.) |
| 29270 | 29272 | ||
| 29271 | For example, to plot | 29273 | For 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)} |
| 29274 | for integers @expr{n} | 29276 | for integers @expr{n} |
| 29275 | from 1 to 5, you could use @kbd{v x} to create a vector of integers | 29277 | from 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. | |||
| 29508 | The @kbd{g S} (@code{calc-graph-point-style}) command similarly turns | 29510 | The @kbd{g S} (@code{calc-graph-point-style}) command similarly turns |
| 29509 | the symbols at the data points on or off, or sets the point style. | 29511 | the symbols at the data points on or off, or sets the point style. |
| 29510 | If you turn both lines and points off, the data points will show as | 29512 | If you turn both lines and points off, the data points will show as |
| 29511 | tiny dots. If the ``y'' values being plotted contain error forms and | 29513 | tiny dots. If the ``y'' values being plotted contain error forms and |
| 29512 | the connecting lines are turned off, then this command will also turn | 29514 | the connecting lines are turned off, then this command will also turn |
| 29513 | the error bars on or off. | 29515 | the 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 | |||
| 29561 | picture of the graph composed of characters like @code{-} and @code{|} | 29563 | picture of the graph composed of characters like @code{-} and @code{|} |
| 29562 | to a buffer called @samp{*Gnuplot Trail*}, which Calc then displays. | 29564 | to a buffer called @samp{*Gnuplot Trail*}, which Calc then displays. |
| 29563 | The graph is made the same size as the Emacs screen, which on most | 29565 | The graph is made the same size as the Emacs screen, which on most |
| 29564 | dumb terminals will be | 29566 | dumb terminals will be |
| 29565 | @texline @math{80\times24} | 29567 | @texline @math{80\times24} |
| 29566 | @infoline 80x24 | 29568 | @infoline 80x24 |
| 29567 | characters. The graph is displayed in | 29569 | characters. 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 |
| 29821 | An alternative to killing and yanking stack entries is using | 29823 | An alternative to killing and yanking stack entries is using |
| 29822 | registers in Calc. Saving stack entries in registers is like | 29824 | registers in Calc. Saving stack entries in registers is like |
| 29823 | saving text in normal Emacs registers; although, like Calc's kill | 29825 | saving text in normal Emacs registers; although, like Calc's kill |
| 29824 | commands, register commands always operate on whole stack | 29826 | commands, register commands always operate on whole stack |
| @@ -29933,7 +29935,7 @@ separately as a matrix element. If a line contained | |||
| 29933 | would correctly split the line into two error forms. | 29935 | would 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 |
| 29936 | constituent rows and columns. (If it is a | 29938 | constituent rows and columns. (If it is a |
| 29937 | @texline @math{1\times1} | 29939 | @texline @math{1\times1} |
| 29938 | @infoline 1x1 | 29940 | @infoline 1x1 |
| 29939 | matrix, just hit @kbd{v u} (@code{calc-unpack}) twice.) | 29941 | matrix, 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}, |
| 30491 | and eqn for @code{nroff-mode} (@pxref{Customizing Calc}). | 30493 | and eqn for @code{nroff-mode} (@pxref{Customizing Calc}). |
| 30492 | These can be overridden with Calc's mode | 30494 | These can be overridden with Calc's mode |
| 30493 | changing commands (@pxref{Mode Settings in Embedded Mode}). If no | 30495 | changing commands (@pxref{Mode Settings in Embedded Mode}). If no |
| 30494 | suitable language is available, Calc will continue with its current language. | 30496 | suitable language is available, Calc will continue with its current language. |
| @@ -30668,13 +30670,13 @@ version. | |||
| 30668 | 30670 | ||
| 30669 | Plain formulas are preceded and followed by @samp{%%%} signs | 30671 | Plain formulas are preceded and followed by @samp{%%%} signs |
| 30670 | by default. This notation has the advantage that the @samp{%} | 30672 | by default. This notation has the advantage that the @samp{%} |
| 30671 | character begins a comment in @TeX{} and La@TeX{}, so if your formula is | 30673 | character begins a comment in @TeX{} and La@TeX{}, so if your formula is |
| 30672 | embedded in a @TeX{} or La@TeX{} document its plain version will be | 30674 | embedded in a @TeX{} or La@TeX{} document its plain version will be |
| 30673 | invisible in the final printed copy. Certain major modes have different | 30675 | invisible in the final printed copy. Certain major modes have different |
| 30674 | delimiters to ensure that the ``plain'' version will be | 30676 | delimiters to ensure that the ``plain'' version will be |
| 30675 | in a comment for those modes, also. | 30677 | in a comment for those modes, also. |
| 30676 | See @ref{Customizing Embedded Mode} to see how to change the ``plain'' | 30678 | See @ref{Customizing Embedded Mode} to see how to change the ``plain'' |
| 30677 | formula delimiters. | 30679 | formula delimiters. |
| 30678 | 30680 | ||
| 30679 | There are several notations which Calc's parser for ``big'' | 30681 | There are several notations which Calc's parser for ``big'' |
| 30680 | formatted formulas can't yet recognize. In particular, it can't | 30682 | formatted 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} | |||
| 31176 | on it in order to get it to notice the new annotation. | 31178 | on it in order to get it to notice the new annotation. |
| 31177 | 31179 | ||
| 31178 | Two more mode-recording modes selectable by @kbd{m R} are available | 31180 | Two more mode-recording modes selectable by @kbd{m R} are available |
| 31179 | which are also available outside of Embedded mode. | 31181 | which 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 |
| 31181 | settings are recorded permanently in your Calc init file (the file given | 31183 | settings are recorded permanently in your Calc init file (the file given |
| 31182 | by the variable @code{calc-settings-file}, typically @file{~/.emacs.d/calc.el}) | 31184 | by 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 |
| 31195 | You can modify Embedded mode's behavior by setting various Lisp | 31197 | You can modify Embedded mode's behavior by setting various Lisp |
| 31196 | variables described here. These variables are customizable | 31198 | variables 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} |
| 31198 | or @kbd{M-x edit-options} to adjust a variable on the fly. | 31200 | or @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 |
| 31200 | the end of the file; | 31202 | the 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}.) |
| 31202 | Many of the variables given mentioned here can be set to depend on the | 31204 | Many of the variables given mentioned here can be set to depend on the |
| 31203 | major mode of the editing buffer (@pxref{Customizing Calc}). | 31205 | major mode of the editing buffer (@pxref{Customizing Calc}). |
| @@ -31332,7 +31334,7 @@ Calc never scans for this string; Calc always looks for the | |||
| 31332 | annotation itself. But this is the string that is inserted before | 31334 | annotation itself. But this is the string that is inserted before |
| 31333 | the opening bracket when Calc adds an annotation on its own. | 31335 | the opening bracket when Calc adds an annotation on its own. |
| 31334 | The default is @code{"% "}, but may be different for different major | 31336 | The default is @code{"% "}, but may be different for different major |
| 31335 | modes. | 31337 | modes. |
| 31336 | 31338 | ||
| 31337 | @vindex calc-embedded-close-mode | 31339 | @vindex calc-embedded-close-mode |
| 31338 | The @code{calc-embedded-close-mode} variable is a string which | 31340 | The @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, |
| 31458 | and if the function has any display formats, those will be saved, but | 31460 | and if the function has any display formats, those will be saved, but |
| 31459 | not the other way around: Saving a function will not save any commands | 31461 | not the other way around: Saving a function will not save any commands |
| 31460 | or key bindings associated with the function.) | 31462 | or 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 |
| 31541 | The @kbd{Z E} (@code{calc-user-define-edit}) command on a key that has | 31543 | The @kbd{Z E} (@code{calc-user-define-edit}) command on a key that has |
| 31542 | been defined by a keyboard macro tries to use the @code{edmacro} package | 31544 | been defined by a keyboard macro tries to use the @code{edmacro} package |
| 31543 | edit the macro. Type @kbd{C-c C-c} to finish editing and update | 31545 | edit the macro. Type @kbd{C-c C-c} to finish editing and update |
| 31544 | the definition stored on the key, or, to cancel the edit, kill the | 31546 | the definition stored on the key, or, to cancel the edit, kill the |
| 31545 | buffer with @kbd{C-x k}. | 31547 | buffer with @kbd{C-x k}. |
| 31546 | The special characters @code{RET}, @code{LFD}, @code{TAB}, @code{SPC}, | 31548 | The 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 | |||
| 31550 | copied verbatim into the keyboard macro. Basically, the notation is the | 31552 | copied verbatim into the keyboard macro. Basically, the notation is the |
| 31551 | same as is used in all of this manual's examples, except that the manual | 31553 | same as is used in all of this manual's examples, except that the manual |
| 31552 | takes some liberties with spaces: When we say @kbd{' [1 2 3] @key{RET}}, | 31554 | takes some liberties with spaces: When we say @kbd{' [1 2 3] @key{RET}}, |
| 31553 | we take it for granted that it is clear we really mean | 31555 | we 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 | |||
| 31821 | subsequent calculations.) This command allows your keyboard macros to | 31823 | subsequent calculations.) This command allows your keyboard macros to |
| 31822 | accept numbers or formulas as interactive input. | 31824 | accept numbers or formulas as interactive input. |
| 31823 | 31825 | ||
| 31824 | As an example, | 31826 | As 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 |
| 31826 | input with ``Power: '' in the minibuffer, then return 2 to the provided | 31828 | input with ``Power: '' in the minibuffer, then return 2 to the provided |
| 31827 | power. (The response to the prompt that's given, 3 in this example, | 31829 | power. (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 | |||
| 31898 | use the same name as the command name but without the @samp{calc-} | 31900 | use the same name as the command name but without the @samp{calc-} |
| 31899 | prefix. (If this is of the form @samp{User-m}, the hyphen is removed so | 31901 | prefix. (If this is of the form @samp{User-m}, the hyphen is removed so |
| 31900 | it won't be taken for a minus sign in algebraic formulas.) | 31902 | it won't be taken for a minus sign in algebraic formulas.) |
| 31901 | This is the name you will use if you want to enter your | 31903 | This is the name you will use if you want to enter your |
| 31902 | new function in an algebraic formula. Suppose we enter @kbd{yow @key{RET}}. | 31904 | new function in an algebraic formula. Suppose we enter @kbd{yow @key{RET}}. |
| 31903 | Then the new function can be invoked by pushing two numbers on the | 31905 | Then the new function can be invoked by pushing two numbers on the |
| 31904 | stack and typing @kbd{z m} or @kbd{x spam}, or by entering the algebraic | 31906 | stack 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 |
| 32695 | A somewhat limited sine function could be defined as follows, using the | 32697 | A somewhat limited sine function could be defined as follows, using the |
| 32696 | well-known Taylor series expansion for | 32698 | well-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 | |||
| 34629 | derivative is left in terms of @var{var}. If the expression contains | 34631 | derivative is left in terms of @var{var}. If the expression contains |
| 34630 | functions for which no derivative formula is known, new derivative | 34632 | functions for which no derivative formula is known, new derivative |
| 34631 | functions are invented by adding primes to the names; @pxref{Calculus}. | 34633 | functions are invented by adding primes to the names; @pxref{Calculus}. |
| 34632 | However, if @var{symb} is non-@code{nil}, the presence of undifferentiable | 34634 | However, if @var{symb} is non-@code{nil}, the presence of nondifferentiable |
| 34633 | functions in @var{expr} instead cancels the whole differentiation, and | 34635 | functions 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 |
| 35242 | in your .emacs file. | 35244 | in your .emacs file. |
| 35243 | (@xref{Key Bindings,,Customizing Key Bindings,emacs, | 35245 | (@xref{Key Bindings,,Customizing Key Bindings,emacs, |
| 35244 | The GNU Emacs Manual}, for more information on binding keys.) | 35246 | The GNU Emacs Manual}, for more information on binding keys.) |
| 35245 | A convenient way to start Calc is with @kbd{C-x * *}; to make it equally | 35247 | A 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 | ||
| 35251 | Calc is controlled by many variables, most of which can be reset | 35253 | Calc is controlled by many variables, most of which can be reset |
| 35252 | from within Calc. Some variables are less involved with actual | 35254 | from within Calc. Some variables are less involved with actual |
| 35253 | calculation and can be set outside of Calc using Emacs's | 35255 | calculation and can be set outside of Calc using Emacs'ss |
| 35254 | customization facilities. These variables are listed below. | 35256 | customization facilities. These variables are listed below. |
| 35255 | Typing @kbd{M-x customize-variable RET @var{variable-name} RET} | 35257 | Typing @kbd{M-x customize-variable RET @var{variable-name} RET} |
| 35256 | will bring up a buffer in which the variable's value can be redefined. | 35258 | will 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 |
| 35268 | The variable @code{calc-settings-file} holds the file name in | 35270 | The variable @code{calc-settings-file} holds the file name in |
| 35269 | which commands like @kbd{m m} and @kbd{Z P} store ``permanent'' | 35271 | which commands like @kbd{m m} and @kbd{Z P} store ``permanent'' |
| 35270 | definitions. | 35272 | definitions. |
| 35271 | If @code{calc-settings-file} is not your user init file (typically | 35273 | If @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 | |||
| 35312 | determine what language should be used. (This can be overridden using | 35314 | determine what language should be used. (This can be overridden using |
| 35313 | Calc's mode changing commands, @xref{Mode Settings in Embedded Mode}.) | 35315 | Calc's mode changing commands, @xref{Mode Settings in Embedded Mode}.) |
| 35314 | The variable @code{calc-language-alist} consists of a list of pairs of | 35316 | The variable @code{calc-language-alist} consists of a list of pairs of |
| 35315 | the form @code{(@var{MAJOR-MODE} . @var{LANGUAGE})}; for example, | 35317 | the 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 |
| 35317 | activated in a buffer whose major mode is @var{MAJOR-MODE}, it will set itself | 35319 | activated in a buffer whose major mode is @var{MAJOR-MODE}, it will set itself |
| 35318 | to use the language @var{LANGUAGE}. | 35320 | to use the language @var{LANGUAGE}. |
| @@ -35340,7 +35342,7 @@ what formulas @kbd{C-x * a} will activate in a buffer. It is a | |||
| 35340 | regular expression, and when activating embedded formulas with | 35342 | regular 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 |
| 35342 | activated. (Calc also uses other patterns to find formulas, such as | 35344 | activated. (Calc also uses other patterns to find formulas, such as |
| 35343 | @samp{=>} and @samp{:=}.) | 35345 | @samp{=>} and @samp{:=}.) |
| 35344 | 35346 | ||
| 35345 | The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, which checks | 35347 | The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, which checks |
| 35346 | for @samp{%Embed} followed by any number of lines beginning with | 35348 | for @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 |
| 35367 | Any major modes added to @code{calc-embedded-announce-formula-alist} | 35369 | Any major modes added to @code{calc-embedded-announce-formula-alist} |
| 35368 | should also be added to @code{calc-embedded-open-close-plain-alist} | 35370 | should also be added to @code{calc-embedded-open-close-plain-alist} |
| 35369 | and @code{calc-embedded-open-close-mode-alist}. | 35371 | and @code{calc-embedded-open-close-mode-alist}. |
| 35370 | @end defvar | 35372 | @end defvar |
| 35371 | 35373 | ||
| @@ -35376,7 +35378,7 @@ See @ref{Customizing Embedded Mode}.@* | |||
| 35376 | The variables @code{calc-embedded-open-formula} and | 35378 | The 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 |
| 35378 | activate as a formula when Embedded mode is entered with @kbd{C-x * e}. | 35380 | activate as a formula when Embedded mode is entered with @kbd{C-x * e}. |
| 35379 | They are regular expressions; | 35381 | They are regular expressions; |
| 35380 | Calc normally scans backward and forward in the buffer for the | 35382 | Calc normally scans backward and forward in the buffer for the |
| 35381 | nearest text matching these regular expressions to be the ``formula | 35383 | nearest text matching these regular expressions to be the ``formula |
| 35382 | delimiters''. | 35384 | delimiters''. |
| @@ -35401,7 +35403,7 @@ The variable @code{calc-embedded-open-close-formula-alist} is used to | |||
| 35401 | set @code{calc-embedded-open-formula} and | 35403 | set @code{calc-embedded-open-formula} and |
| 35402 | @code{calc-embedded-close-formula} to different regular | 35404 | @code{calc-embedded-close-formula} to different regular |
| 35403 | expressions depending on the major mode of the editing buffer. | 35405 | expressions depending on the major mode of the editing buffer. |
| 35404 | It consists of a list of lists of the form | 35406 | It 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 | |||
| 35420 | The variable @code{calc-embedded-word-regexp-alist} is used to | 35422 | The variable @code{calc-embedded-word-regexp-alist} is used to |
| 35421 | set @code{calc-embedded-word-regexp} to a different regular | 35423 | set @code{calc-embedded-word-regexp} to a different regular |
| 35422 | expression depending on the major mode of the editing buffer. | 35424 | expression depending on the major mode of the editing buffer. |
| 35423 | It consists of a list of lists of the form | 35425 | It 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 | |||
| 35435 | expressions, because Calc must be able to write these string into a | 35437 | expressions, because Calc must be able to write these string into a |
| 35436 | buffer as well as to recognize them. | 35438 | buffer as well as to recognize them. |
| 35437 | 35439 | ||
| 35438 | The default string for @code{calc-embedded-open-plain} is | 35440 | The 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 |
| 35441 | the trailing newline here, the first line of a Big mode formula | 35443 | the trailing newline here, the first line of a Big mode formula |
| 35442 | that followed might be shifted over with respect to the other lines. | 35444 | that 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 | |||
| 35445 | set @code{calc-embedded-open-plain} and | 35447 | set @code{calc-embedded-open-plain} and |
| 35446 | @code{calc-embedded-close-plain} to different strings | 35448 | @code{calc-embedded-close-plain} to different strings |
| 35447 | depending on the major mode of the editing buffer. | 35449 | depending on the major mode of the editing buffer. |
| 35448 | It consists of a list of lists of the form | 35450 | It 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 | |||
| 35488 | set @code{calc-embedded-open-new-formula} and | 35490 | set @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 |
| 35490 | depending on the major mode of the editing buffer. | 35492 | depending on the major mode of the editing buffer. |
| 35491 | It consists of a list of lists of the form | 35493 | It 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 | ||
| 35507 | The default value of @code{calc-embedded-open-mode} is @code{"% "} | 35509 | The default value of @code{calc-embedded-open-mode} is @code{"% "} |
| 35508 | and the default value of @code{calc-embedded-close-mode} is | 35510 | and the default value of @code{calc-embedded-close-mode} is |
| 35509 | @code{"\n"}. | 35511 | @code{"\n"}. |
| 35510 | If you change the value of @code{calc-embedded-close-mode}, it is a good | 35512 | If you change the value of @code{calc-embedded-close-mode}, it is a good |
| 35511 | idea still to end with a newline so that mode annotations will appear on | 35513 | idea still to end with a newline so that mode annotations will appear on |
| 35512 | lines by themselves. | 35514 | lines by themselves. |
| @@ -35515,7 +35517,7 @@ The variable @code{calc-embedded-open-close-mode-alist} is used to | |||
| 35515 | set @code{calc-embedded-open-mode} and | 35517 | set @code{calc-embedded-open-mode} and |
| 35516 | @code{calc-embedded-close-mode} to different strings | 35518 | @code{calc-embedded-close-mode} to different strings |
| 35517 | expressions depending on the major mode of the editing buffer. | 35519 | expressions depending on the major mode of the editing buffer. |
| 35518 | It consists of a list of lists of the form | 35520 | It 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 | ||
| 35547 | The default value of @code{calc-lu-power-reference} is @code{"mW"} | 35549 | The default value of @code{calc-lu-power-reference} is @code{"mW"} |
| 35548 | and the default value of @code{calc-lu-field-reference} is | 35550 | and 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 |
| 35564 | See @ref{Displaying Selections}.@* | 35566 | See @ref{Displaying Selections}.@* |
| 35565 | The variable @code{calc-highlight-selections-with-faces} | 35567 | The variable @code{calc-highlight-selections-with-faces} |
| 35566 | determines how selected sub-formulas are distinguished. | 35568 | determines how selected sub-formulas are distinguished. |
| 35567 | If @code{calc-highlight-selections-with-faces} is nil, then | 35569 | If @code{calc-highlight-selections-with-faces} is nil, then |
| 35568 | a selected sub-formula is distinguished either by changing every | 35570 | a selected sub-formula is distinguished either by changing every |
| 35569 | character not part of the sub-formula with a dot or by changing every | 35571 | character not part of the sub-formula with a dot or by changing every |
| 35570 | character in the sub-formula with a @samp{#} sign. | 35572 | character in the sub-formula with a @samp{#} sign. |
| 35571 | If @code{calc-highlight-selections-with-faces} is t, | 35573 | If @code{calc-highlight-selections-with-faces} is t, |
| 35572 | then a selected sub-formula is distinguished either by displaying the | 35574 | then a selected sub-formula is distinguished either by displaying the |
| 35573 | non-selected portion of the formula with @code{calc-nonselected-face} | 35575 | non-selected portion of the formula with @code{calc-nonselected-face} |
| 35574 | or by displaying the selected sub-formula with | 35576 | or 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 |
| 36652 | With a prefix argument of 1, take a single | 36654 | With 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} |
| 36655 | matrix from the stack instead of two separate data vectors. | 36657 | matrix 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 |
| 36755 | Editing occurs in a separate buffer. Press @kbd{C-c C-c} (or | 36757 | Editing 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 |
| 36757 | buffer with @kbd{C-x k} to cancel the edit. The @key{LFD} key prevents evaluation | 36759 | buffer with @kbd{C-x k} to cancel the edit. The @key{LFD} key prevents evaluation |
| 36758 | of the result of the edit. | 36760 | of the result of the edit. |
| @@ -36852,7 +36854,7 @@ to evaluate variables. | |||
| 36852 | @item | 36854 | @item |
| 36853 | The variable is replaced by the formula shown on the right. The | 36855 | The variable is replaced by the formula shown on the right. The |
| 36854 | Inverse flag reverses the order of the operands, e.g., @kbd{I s - x} | 36856 | Inverse flag reverses the order of the operands, e.g., @kbd{I s - x} |
| 36855 | assigns | 36857 | assigns |
| 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 |
| 160 | This manual is for CC Mode in Emacs. | 157 | This manual is for CC Mode in Emacs. |
| 161 | 158 | ||
| 162 | Copyright @copyright{} 1995-2011 Free Software Foundation, Inc. | 159 | Copyright @copyright{} 1995-2012 Free Software Foundation, Inc. |
| 163 | 160 | ||
| 164 | @quotation | 161 | @quotation |
| 165 | Permission is granted to copy, distribute and/or modify this document | 162 | Permission 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 | ||
| 288 | Styles | 285 | Styles |
| 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 | ||
| 296 | Customizing Auto-newlines | 293 | Customizing Auto-newlines |
| 297 | 294 | ||
| @@ -311,19 +308,19 @@ Indentation Engine Basics | |||
| 311 | 308 | ||
| 312 | Syntactic Symbols | 309 | Syntactic 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 | ||
| 328 | Customizing Indentation | 325 | Customizing 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 | ||
| 341 | Customizing 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 | ||
| 374 | This manual describes @ccmode{} | 376 | This 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 |
| 376 | version 5.31. | 378 | version 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 | |||
| 655 | syntactic recognition can be wrong. @ccmode{} manages to figure it | 657 | syntactic recognition can be wrong. @ccmode{} manages to figure it |
| 656 | out correctly most of the time, though. | 658 | out correctly most of the time, though. |
| 657 | 659 | ||
| 660 | Some macros, when invoked, ''have their own semicolon''. To get the | ||
| 661 | next line indented correctly, rather than as a continuation line, | ||
| 662 | @xref{Macros with ;}. | ||
| 663 | |||
| 658 | Reindenting large sections of code can take a long time. When | 664 | Reindenting 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 |
| 660 | hitting @key{TAB} on every line of the region. | 666 | hitting @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 | ||
| 886 | Move to the beginning or end of the current or next function. Other | 894 | Move to the beginning or end of the current or next function. Other |
| 887 | constructs (such as a structs or classes) which have a brace block | 895 | constructs (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 | |||
| 895 | start or end of the function. This occasionally causes point not to | 903 | start or end of the function. This occasionally causes point not to |
| 896 | move at all. | 904 | move at all. |
| 897 | 905 | ||
| 906 | By default, these commands will recognize functions contained within a | ||
| 907 | @dfn{declaration scope} such as a C++ @code{class} or @code{namespace} | ||
| 908 | construct, should the point start inside it. If @ccmode fails to find | ||
| 909 | function beginnings or ends inside the current declaration scope, it | ||
| 910 | will search the enclosing scopes. If you want @ccmode to recognize | ||
| 911 | functions only at the top level@footnote{this was @ccmode{}'s | ||
| 912 | behavior prior to version 5.32.}, set @code{c-defun-tactic} to | ||
| 913 | @code{t}. | ||
| 914 | |||
| 898 | These functions are analogous to the Emacs built-in commands | 915 | These 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 |
| 900 | eliminate the constraint that the top-level opening brace of the defun | 917 | eliminate 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}, | |||
| 1153 | and @ref{Indentation Engine Basics}. | 1170 | and @ref{Indentation Engine Basics}. |
| 1154 | 1171 | ||
| 1155 | You can toggle each of these minor modes on and off, and you can | 1172 | You can toggle each of these minor modes on and off, and you can |
| 1156 | configure @ccmode{} so that it starts up with your favourite | 1173 | configure @ccmode{} so that it starts up with your favorite |
| 1157 | combination of them (@pxref{Sample .emacs File}). By default, when | 1174 | combination of them (@pxref{Sample .emacs File}). By default, when |
| 1158 | you initialize a buffer, electric mode and syntactic-indentation mode | 1175 | you initialize a buffer, electric mode and syntactic-indentation mode |
| 1159 | are enabled but the other two modes are disabled. | 1176 | are enabled but the other two modes are disabled. |
| @@ -2140,7 +2157,7 @@ A space between the function name and opening parenthesis when calling | |||
| 2140 | a user function. The last character of the function name and the | 2157 | a user function. The last character of the function name and the |
| 2141 | opening parenthesis are highlighted. This font-locking rule will | 2158 | opening parenthesis are highlighted. This font-locking rule will |
| 2142 | spuriously highlight a valid concatenation expression where an | 2159 | spuriously highlight a valid concatenation expression where an |
| 2143 | identifier precedes a parenthesised expression. Unfortunately. | 2160 | identifier precedes a parenthesized expression. Unfortunately. |
| 2144 | 2161 | ||
| 2145 | @item | 2162 | @item |
| 2146 | Whitespace following the @samp{\} in what otherwise looks like an | 2163 | Whitespace following the @samp{\} in what otherwise looks like an |
| @@ -2180,7 +2197,7 @@ method, ``Top-level commands or the customization interface''. | |||
| 2180 | 2197 | ||
| 2181 | If you make conflicting settings in several of these ways, the way | 2198 | If you make conflicting settings in several of these ways, the way |
| 2182 | that takes precedence is the one that appears latest in this list: | 2199 | that 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 | |||
| 2517 | already formatted piece of your code, @ref{Guessing the Style}. | 2534 | already 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 | ||
| 6570 | To configure macros which you invoke without a terminating @samp{;}, | ||
| 6571 | see @xref{Macros with ;}. | ||
| 6572 | |||
| 6553 | Here are the remaining odds and ends regarding indentation: | 6573 | Here 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 | ||
| 6624 | Preprocessor macros in C, C++, and Objective C (introduced by | ||
| 6625 | @code{#define}) have a syntax different from the main language---for | ||
| 6626 | example, a macro declaration is not terminated by a semicolon, and if | ||
| 6627 | it is more than a line long, line breaks in it must be escaped with | ||
| 6628 | backslashes. @ccmode{} has some commands to manipulate these, see | ||
| 6629 | @ref{Macro Backslashes}. | ||
| 6630 | |||
| 6604 | Normally, the lines in a multi-line macro are indented relative to | 6631 | Normally, the lines in a multi-line macro are indented relative to |
| 6605 | each other as though they were code. You can suppress this behavior | 6632 | each other as though they were code. You can suppress this behavior |
| 6606 | by setting the following user option: | 6633 | by 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 | ||
| 6642 | Because a macro can expand into anything at all, near where one is | ||
| 6643 | invoked @ccmode{} can only indent and fontify code heuristically. | ||
| 6644 | Sometimes it gets it wrong. Usually you should try to design your | ||
| 6645 | macros so that they ''look like ordinary code'' when you invoke them. | ||
| 6646 | However, one situation is so common that @ccmode{} handles it | ||
| 6647 | specially: that is when certain macros needn't (or mustn't) be | ||
| 6648 | followed by a @samp{;}. You need to configure @ccmode{} to handle | ||
| 6649 | these 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 |
| 6616 | backslashes in macros neat and tidy. Their precise action is | 6665 | backslashes in macros neat and tidy. Their precise action is |
| 6617 | customized with these variables: | 6666 | customized 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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
| 6711 | Macros which needn't (or mustn't) be followed by a semicolon when you | ||
| 6712 | invoke them, @dfn{macros with semicolons}, are very common. These can | ||
| 6713 | cause @ccmode{} to parse the next line wrongly as a | ||
| 6714 | @code{statement-cont} (@pxref{Function Symbols}) and thus mis-indent | ||
| 6715 | it. | ||
| 6716 | |||
| 6717 | You can prevent this by specifying which macros have semicolons. It | ||
| 6718 | doesn'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-) | ||
| 6722 | This buffer-local variable specifies which macros have semicolons. | ||
| 6723 | After setting its value, you need to call | ||
| 6724 | @code{c-make-macro-with-semi-re} for it to take effect. It should be | ||
| 6725 | set to one of these values: | ||
| 6726 | |||
| 6727 | @table @asis | ||
| 6728 | @item nil | ||
| 6729 | There are no macros with semicolons. | ||
| 6730 | @item a list of strings | ||
| 6731 | Each string is the name of a macro with a semicolon. Only valid | ||
| 6732 | @code{#define} names are allowed here. For example, to set the | ||
| 6733 | default 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 | ||
| 6741 | This matches each symbol which is a macro with a semicolon. It must | ||
| 6742 | not match any string which isn't a valid @code{#define} name. For | ||
| 6743 | example: | ||
| 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-) | ||
| 6754 | Call this (non-interactive) function, which sets internal variables, | ||
| 6755 | each time you change the value of | ||
| 6756 | @code{c-macro-names-with-semicolon}. It takes no arguments, and its | ||
| 6757 | return value has no meaning. This function is called by @ccmode{}'s | ||
| 6758 | initialization 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 | |||
| 6837 | styles where these braces are hung (e.g. most JDK-derived Java styles), | 6942 | styles where these braces are hung (e.g. most JDK-derived Java styles), |
| 6838 | this hack can improve performance of the core syntax parsing routines | 6943 | this hack can improve performance of the core syntax parsing routines |
| 6839 | from 3 to 60 times. However, for styles which @emph{do} conform to | 6944 | from 3 to 60 times. However, for styles which @emph{do} conform to |
| 6840 | Emacs' recommended style of putting top-level braces in column zero, | 6945 | Emacs's recommended style of putting top-level braces in column zero, |
| 6841 | this hack can degrade performance by about as much. Thus this variable | 6946 | this hack can degrade performance by about as much. Thus this variable |
| 6842 | is set to @code{nil} by default, since the Emacs-friendly styles should | 6947 | is set to @code{nil} by default, since the Emacs-friendly styles should |
| 6843 | be more common (and encouraged!). Note that this variable has no effect | 6948 | be 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 | ||
| 6951 | Emacs' convention is that @kbd{RET} just adds a newline, and that | 7056 | Emacs'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 |
| 6953 | too by adding this to your @code{c-initialization-hook}: | 7058 | too 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 |
| 6 | This file documents the GNU Emacs Common Lisp emulation package. | 6 | This file documents the GNU Emacs Common Lisp emulation package. |
| 7 | 7 | ||
| 8 | Copyright @copyright{} 1993, 2001-2011 Free Software Foundation, Inc. | 8 | Copyright @copyright{} 1993, 2001-2012 Free Software Foundation, Inc. |
| 9 | 9 | ||
| 10 | @quotation | 10 | @quotation |
| 11 | Permission is granted to copy, distribute and/or modify this document | 11 | Permission 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 |
| 130 | Some features conflict with existing things in Emacs Lisp. For | 130 | Some features conflict with existing things in Emacs Lisp. For |
| 131 | example, Emacs' @code{assoc} function is incompatible with the | 131 | example, Emacs's @code{assoc} function is incompatible with the |
| 132 | Common Lisp @code{assoc}. In such cases, this package usually | 132 | Common Lisp @code{assoc}. In such cases, this package usually |
| 133 | adds the suffix @samp{*} to the function name of the Common | 133 | adds the suffix @samp{*} to the function name of the Common |
| 134 | Lisp version of the function (e.g., @code{assoc*}). | 134 | Lisp version of the function (e.g., @code{assoc*}). |
| @@ -293,8 +293,8 @@ do with programs as a whole: advanced argument lists for functions, | |||
| 293 | and the @code{eval-when} construct. | 293 | and 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 | |||
| 683 | facts are true or false. | 683 | facts 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 | |||
| 858 | constructs. | 858 | constructs. |
| 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 | |||
| 929 | is a set of forms that can be generalized variables in Lisp. | 929 | is 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. | |||
| 1540 | are also related to variable bindings. | 1540 | are 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} | |||
| 2094 | are executed with @var{var} bound to each element of the list in | 2094 | are executed with @var{var} bound to each element of the list in |
| 2095 | turn. Finally, the @var{result} form (or @code{nil}) is evaluated | 2095 | turn. Finally, the @var{result} form (or @code{nil}) is evaluated |
| 2096 | with @var{var} bound to @code{nil} to produce the result returned by | 2096 | with @var{var} bound to @code{nil} to produce the result returned by |
| 2097 | the loop. Unlike with Emacs's built in @code{dolist}, the loop is | 2097 | the loop. Unlike with Emacs'ss built in @code{dolist}, the loop is |
| 2098 | surrounded by an implicit @code{nil} block. | 2098 | surrounded 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 | |||
| 2104 | from zero (inclusive) to @var{count} (exclusive), in turn. Then | 2104 | from zero (inclusive) to @var{count} (exclusive), in turn. Then |
| 2105 | the @code{result} form is evaluated with @var{var} bound to the total | 2105 | the @code{result} form is evaluated with @var{var} bound to the total |
| 2106 | number of iterations that were done (i.e., @code{(max 0 @var{count})}) | 2106 | number of iterations that were done (i.e., @code{(max 0 @var{count})}) |
| 2107 | to get the return value for the loop form. Unlike with Emacs's built in | 2107 | to 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,'' | |||
| 2140 | with an easy-to-use but very powerful and expressive syntax. | 2140 | with 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}, | |||
| 2226 | it calls @code{buffer-file-name} and collects the results into | 2226 | it calls @code{buffer-file-name} and collects the results into |
| 2227 | a list, which is then returned from the @code{loop} construct. | 2227 | a list, which is then returned from the @code{loop} construct. |
| 2228 | The result is a list of the file names of all the buffers in | 2228 | The result is a list of the file names of all the buffers in |
| 2229 | Emacs' memory. The words @code{for}, @code{in}, and @code{collect} | 2229 | Emacs's memory. The words @code{for}, @code{in}, and @code{collect} |
| 2230 | are reserved words in the @code{loop} language. | 2230 | are 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 | |||
| 2586 | than values the trailing variables get the value @code{nil}. | 2586 | than values the trailing variables get the value @code{nil}. |
| 2587 | If @code{nil} is used as a variable name, the corresponding | 2587 | If @code{nil} is used as a variable name, the corresponding |
| 2588 | values are ignored. Destructuring may be nested, and dotted | 2588 | values are ignored. Destructuring may be nested, and dotted |
| 2589 | lists of variables like @code{(x . y)} are allowed. | 2589 | lists of variables like @code{(x . y)} are allowed, so for example |
| 2590 | to 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 | |||
| 3177 | missing from Emacs Lisp. | 3184 | missing 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 | |||
| 3323 | which were left out of Emacs Lisp. | 3330 | which 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}. | |||
| 3863 | As an extension to Common Lisp, @var{start} and/or @var{end} | 3870 | As an extension to Common Lisp, @var{start} and/or @var{end} |
| 3864 | may be negative, in which case they represent a distance back | 3871 | may be negative, in which case they represent a distance back |
| 3865 | from the end of the sequence. This is for compatibility with | 3872 | from the end of the sequence. This is for compatibility with |
| 3866 | Emacs' @code{substring} function. Note that @code{subseq} is | 3873 | Emacs's @code{substring} function. Note that @code{subseq} is |
| 3867 | the @emph{only} sequence function that allows negative | 3874 | the @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, | |||
| 4052 | for sorting numbers and strings, respectively; @code{>} would sort | 4059 | for sorting numbers and strings, respectively; @code{>} would sort |
| 4053 | numbers into decreasing rather than increasing order. | 4060 | numbers into decreasing rather than increasing order. |
| 4054 | 4061 | ||
| 4055 | This function differs from Emacs' built-in @code{sort} in that it | 4062 | This function differs from Emacs's built-in @code{sort} in that it |
| 4056 | can operate on any type of sequence, not just lists. Also, it | 4063 | can operate on any type of sequence, not just lists. Also, it |
| 4057 | accepts a @code{:key} argument which is used to preprocess data | 4064 | accepts a @code{:key} argument which is used to preprocess data |
| 4058 | fed to the @var{predicate} function. For example, | 4065 | fed to the @var{predicate} function. For example, |
| @@ -4106,10 +4113,10 @@ a merged sequence which is (stably) sorted according to | |||
| 4106 | The functions described here operate on lists. | 4113 | The 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} |
| 5181 | form which establishes a Common Lisp-style lexical binding, and some | 5188 | form which establishes a Common Lisp-style lexical binding, and some |
| 5182 | examples of how it differs from Emacs' regular @code{let}. | 5189 | examples of how it differs from Emacs's regular @code{let}. |
| 5183 | 5190 | ||
| 5184 | @item | 5191 | @item |
| 5185 | Reader macros. Common Lisp includes a second type of macro that | 5192 | Reader 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 |
| 12 | Copyright @copyright{} 2007-2011 Free Software Foundation, Inc. | 12 | Copyright @copyright{} 2007-2012 Free Software Foundation, Inc. |
| 13 | 13 | ||
| 14 | @quotation | 14 | @quotation |
| 15 | Permission is granted to copy, distribute and/or modify this document | 15 | Permission 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 |
| 333 | properties, which can change their values during lifetime of a D-Bus | 333 | properties, which can change their values during lifetime of a D-Bus |
| 334 | object, annotations are static. Often they are used for code | 334 | object, annotations are static. Often they are used for code |
| 335 | generators of D-Bus langugae bindings. Example: | 335 | generators 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 | ||
| 556 | Methods and signals are the communicatione means to D-Bus. The | 556 | Methods and signals are the communication means to D-Bus. The |
| 557 | following functions return their specifications. | 557 | following 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 |
| 1608 | object. It can be either a known name or the unique name of the D-Bus | 1608 | object. It can be either a known name or the unique name of the D-Bus |
| 1609 | object sending the signal. In case of a unique name, signals won't be | 1609 | object sending the signal. A known name will be mapped onto the |
| 1610 | received any longer once the object owning this unique name has | 1610 | unique name of the object, owning @var{service} at registration time. |
| 1611 | disappeared, and a new queued object has replaced it. | 1611 | When the corresponding D-Bus object disappears, signals won't be |
| 1612 | received any longer. | ||
| 1612 | 1613 | ||
| 1613 | When @var{service} is @code{nil}, related signals from all D-Bus | 1614 | When @var{service} is @code{nil}, related signals from all D-Bus |
| 1614 | objects shall be accepted. | 1615 | objects 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 |
| 1680 | corresponding bus. For the system and session busses, this function | 1681 | corresponding bus. For the system and session buses, this function |
| 1681 | is called when loading @file{dbus.el}, there is no need to call it | 1682 | is called when loading @file{dbus.el}, there is no need to call it |
| 1682 | again. | 1683 | again. |
| 1683 | 1684 | ||
| @@ -1816,7 +1817,7 @@ handled by a hook function. | |||
| 1816 | @defvar dbus-event-error-hooks | 1817 | @defvar dbus-event-error-hooks |
| 1817 | This hook variable keeps a list of functions, which are called when a | 1818 | This hook variable keeps a list of functions, which are called when a |
| 1818 | D-Bus error happens in the event handler. Every function must accept | 1819 | D-Bus error happens in the event handler. Every function must accept |
| 1819 | two arguments, the event and the error variable catched in | 1820 | two 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 | ||
| 1822 | Such functions can be used the adapt the error signal to be raised. | 1823 | Such 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 |
| 22 | Copyright @copyright{} 1994-1995, 1999, 2001-2011 | 22 | Copyright @copyright{} 1994-1995, 1999, 2001-2012 |
| 23 | Free Software Foundation, Inc. | 23 | Free Software Foundation, Inc. |
| 24 | 24 | ||
| 25 | @quotation | 25 | @quotation |
| @@ -476,7 +476,7 @@ in your @code{dired-mode-hook}. | |||
| 476 | This Dired-X feature is obsolete as of Emacs 24.1. The standard Emacs | 476 | This Dired-X feature is obsolete as of Emacs 24.1. The standard Emacs |
| 477 | directory local variables mechanism (@pxref{Directory | 477 | directory local variables mechanism (@pxref{Directory |
| 478 | Variables,,,emacs,The Gnu Emacs manual}) replaces it. For an example of | 478 | Variables,,,emacs,The Gnu Emacs manual}) replaces it. For an example of |
| 479 | the new mechanims, @pxref{Omitting Variables}. | 479 | the new mechanisms, @pxref{Omitting Variables}. |
| 480 | 480 | ||
| 481 | When Dired visits a directory, it looks for a file whose name is the | 481 | When Dired visits a directory, it looks for a file whose name is the |
| 482 | value of variable @code{dired-local-variables-file} (default: @file{.dired}). | 482 | value 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 |
| 11 | This file documents Ebrowse, a C++ class browser for GNU Emacs. | 11 | This file documents Ebrowse, a C++ class browser for GNU Emacs. |
| 12 | 12 | ||
| 13 | Copyright @copyright{} 2000-2011 Free Software Foundation, Inc. | 13 | Copyright @copyright{} 2000-2012 Free Software Foundation, Inc. |
| 14 | 14 | ||
| 15 | @quotation | 15 | @quotation |
| 16 | Permission is granted to copy, distribute and/or modify this document | 16 | Permission is granted to copy, distribute and/or modify this document |
| @@ -149,7 +149,7 @@ importantly you can find or view member declarations and definitions | |||
| 149 | with a keystroke. @xref{Member Buffers}. | 149 | with a keystroke. @xref{Member Buffers}. |
| 150 | 150 | ||
| 151 | These two buffer types and the commands they provide support the | 151 | These two buffer types and the commands they provide support the |
| 152 | navigational use of the browser. The second form resembles Emacs' Tags | 152 | navigational use of the browser. The second form resembles Emacs's Tags |
| 153 | package for C and other procedural languages. Ebrowse's commands of | 153 | package for C and other procedural languages. Ebrowse's commands of |
| 154 | this type are not confined to special buffers; they are most often used | 154 | this type are not confined to special buffers; they are most often used |
| 155 | while you are editing your source code. | 155 | while you are editing your source code. |
| @@ -482,7 +482,7 @@ name. | |||
| 482 | @table @kbd | 482 | @table @kbd |
| 483 | @item SPC | 483 | @item SPC |
| 484 | This command views the class declaration if the database | 484 | This command views the class declaration if the database |
| 485 | contains informations about it. If you don't parse the entire source | 485 | contains information about it. If you don't parse the entire source |
| 486 | you are working on, some classes will only be known to exist but the | 486 | you are working on, some classes will only be known to exist but the |
| 487 | location of their declarations and definitions will not be known.@refill | 487 | location 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 |
| 6 | This file describes EDE, the Emacs Development Environment. | 6 | This file describes EDE, the Emacs Development Environment. |
| 7 | 7 | ||
| 8 | Copyright @copyright{} 1998-2001, 2004-2005, 2008-2011 Free Software Foundation, Inc. | 8 | Copyright @copyright{} 1998-2001, 2004-2005, 2008-2012 Free Software Foundation, Inc. |
| 9 | 9 | ||
| 10 | @quotation | 10 | @quotation |
| 11 | Permission is granted to copy, distribute and/or modify this document | 11 | Permission is granted to copy, distribute and/or modify this document |
| @@ -268,7 +268,7 @@ projects. | |||
| 268 | 268 | ||
| 269 | Some project modes do not have a project file, but directly read a | 269 | Some project modes do not have a project file, but directly read a |
| 270 | Makefile or other existing file. Instead of directly editing the | 270 | Makefile or other existing file. Instead of directly editing the |
| 271 | object, you can edit the file by typine @kbd{C-c . e} | 271 | object, 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 |
| 273 | afterwards (@pxref{Miscellaneous commands}). | 273 | afterwards (@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. |
| 520 | Return nil if there isn't one." | 520 | Return 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 | |||
| 705 | by the @samp{ede-speedbar} interface. | 705 | by the @samp{ede-speedbar} interface. |
| 706 | @item ede-want-file-p | 706 | @item ede-want-file-p |
| 707 | Return non-nil if a target will accept a given file. | 707 | Return non-nil if a target will accept a given file. |
| 708 | It is generally unecessary to override this. See the section on source | 708 | It is generally unnecessary to override this. See the section on source |
| 709 | code. | 709 | code. |
| 710 | @item ede-buffer-mine | 710 | @item ede-buffer-mine |
| 711 | Return non-nil if a buffer belongs to this target. Used during | 711 | Return non-nil if a buffer belongs to this target. Used during |
| 712 | association when a file is loaded. It is generally unecessary to | 712 | association when a file is loaded. It is generally unnecessary to |
| 713 | override this unless you keep auxiliary files. | 713 | override 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 |
| 1591 | Delete project @var{THIS}es configure script and start over. | 1591 | Delete 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 |
| 2485 | Insert bin_PROGRAMS variables needed by target @var{THIS}. | 2485 | Insert bin_PROGRAMS variables needed by target @var{THIS}. |
| 2486 | We aren't acutally inserting SOURCE details, but this is used by the | 2486 | We aren't actually inserting SOURCE details, but this is used by the |
| 2487 | Makefile.am generator, so use it to add this important bin program. | 2487 | Makefile.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 |
| 2626 | Insert bin_PROGRAMS variables needed by target @var{THIS}. | 2626 | Insert bin_PROGRAMS variables needed by target @var{THIS}. |
| 2627 | We aren't acutally inserting SOURCE details, but this is used by the | 2627 | We aren't actually inserting SOURCE details, but this is used by the |
| 2628 | Makefile.am generator, so use it to add this important bin program. | 2628 | Makefile.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 |
| 3276 | Default target t- use when compling a texinfo file. | 3276 | Default 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)} @* | |||
| 3370 | Default Value: @code{nil} | 3370 | Default Value: @code{nil} |
| 3371 | 3371 | ||
| 3372 | Emacs regex matching auxiliary source code this target accepts. | 3372 | Emacs regex matching auxiliary source code this target accepts. |
| 3373 | Aux source are source code files needed for compilation, which are not comiled | 3373 | Aux source are source code files needed for compilation, which are not compiled |
| 3374 | themselves. | 3374 | themselves. |
| 3375 | @refill | 3375 | @refill |
| 3376 | 3376 | ||
| @@ -3526,7 +3526,7 @@ use the same autoconf form. | |||
| 3526 | @item :objectextention | 3526 | @item :objectextention |
| 3527 | Type: @code{string} | 3527 | Type: @code{string} |
| 3528 | 3528 | ||
| 3529 | A string which is the extention used for object files. | 3529 | A string which is the extension used for object files. |
| 3530 | For example, C code uses .o on unix, and Emacs Lisp uses .elc. | 3530 | For 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 |
| 3635 | Type: @code{string} | 3635 | Type: @code{string} |
| 3636 | 3636 | ||
| 3637 | A string which is the extention used for object files. | 3637 | A string which is the extension used for object files. |
| 3638 | For example, C code uses .o on unix, and Emacs Lisp uses .elc. | 3638 | For 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 |
| 3783 | Type: @code{string} | 3783 | Type: @code{string} |
| 3784 | 3784 | ||
| 3785 | A string which is the extention used for object files. | 3785 | A string which is the extension used for object files. |
| 3786 | For example, C code uses .o on unix, and Emacs Lisp uses .elc. | 3786 | For 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 @@ | |||
| 25 | This file documents Ediff, a comprehensive visual interface to Unix diff | 25 | This file documents Ediff, a comprehensive visual interface to Unix diff |
| 26 | and patch utilities. | 26 | and patch utilities. |
| 27 | 27 | ||
| 28 | Copyright @copyright{} 1995-2011 Free Software Foundation, Inc. | 28 | Copyright @copyright{} 1995-2012 Free Software Foundation, Inc. |
| 29 | 29 | ||
| 30 | @quotation | 30 | @quotation |
| 31 | Permission is granted to copy, distribute and/or modify this document | 31 | Permission 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 |
| 1208 | run right after the default bindings are set but before | 1210 | run 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 |
| 1210 | hook---it is provided for implementors of other Emacs packages built on top | 1212 | hook---it is provided for implementers of other Emacs packages built on top |
| 1211 | of Ediff. | 1213 | of 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} |
| 1734 | or @code{set/make-face-@dots{}} as shown above. Emacs' low-level | 1736 | or @code{set/make-face-@dots{}} as shown above. Emacs's low-level |
| 1735 | face-manipulation functions should be avoided. | 1737 | face-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 |
| 6 | This file documents the EDT emulation package for Emacs. | 6 | This file documents the EDT emulation package for Emacs. |
| 7 | 7 | ||
| 8 | Copyright @copyright{} 1986, 1992, 1994-1995, 1999-2011 | 8 | Copyright @copyright{} 1986, 1992, 1994-1995, 1999-2012 |
| 9 | Free Software Foundation, Inc. | 9 | Free 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 |
| 12 | This manual documents EIEIO, an object framework for Emacs Lisp. | 12 | This manual documents EIEIO, an object framework for Emacs Lisp. |
| 13 | 13 | ||
| 14 | Copyright @copyright{} 2007-2011 Free Software Foundation, Inc. | 14 | Copyright @copyright{} 2007-2012 Free Software Foundation, Inc. |
| 15 | 15 | ||
| 16 | @quotation | 16 | @quotation |
| 17 | Permission is granted to copy, distribute and/or modify this document | 17 | Permission 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. | |||
| 1212 | This would be the best way to make your objects persistent when using | 1212 | This would be the best way to make your objects persistent when using |
| 1213 | in-place editing. | 1213 | in-place editing. |
| 1214 | 1214 | ||
| 1215 | @section Widget extention | 1215 | @section Widget extension |
| 1216 | 1216 | ||
| 1217 | When widgets are being created, one new widget extention has been added, | 1217 | When widgets are being created, one new widget extension has been added, |
| 1218 | called the @code{:slotofchoices}. When this occurs in a widget | 1218 | called the @code{:slotofchoices}. When this occurs in a widget |
| 1219 | definition, all elements after it are removed, and the slot is specifies | 1219 | definition, all elements after it are removed, and the slot is specifies |
| 1220 | is queried and converted into a series of constants. | 1220 | is 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 |
| 1460 | Return a string representing a directory associated with an instance | 1460 | Return a string representing a directory associated with an instance |
| 1461 | of @var{obj}. @var{depth} can be used to indice how many levels of | 1461 | of @var{obj}. @var{depth} can be used to index how many levels of |
| 1462 | indentation have been opened by the user where @var{obj} is shown. | 1462 | indentation 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 |
| 1896 | Allow subclasing of Emacs built-in types, such as faces, markers, and | 1896 | Allow subclassing of Emacs built-in types, such as faces, markers, and |
| 1897 | buffers. | 1897 | buffers. |
| 1898 | @item | 1898 | @item |
| 1899 | Allow method overloading of method-like functions in Emacs. | 1899 | Allow 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 |
| 12 | This file documents the Emacs MIME interface functionality. | 12 | This file documents the Emacs MIME interface functionality. |
| 13 | 13 | ||
| 14 | Copyright @copyright{} 1998-2011 Free Software Foundation, Inc. | 14 | Copyright @copyright{} 1998-2012 Free Software Foundation, Inc. |
| 15 | 15 | ||
| 16 | @quotation | 16 | @quotation |
| 17 | Permission is granted to copy, distribute and/or modify this document | 17 | Permission 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 |
| 418 | Some @acronym{HTML} mails might have the trick of spammers using | 418 | Some @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 |
| 420 | have read the mail. You can prevent your personal informations from | 420 | have read the mail. You can prevent your personal information from |
| 421 | leaking by setting this option to @code{nil} (which is the default). | 421 | leaking by setting this option to @code{nil} (which is the default). |
| 422 | It is currently ignored by Emacs/w3. For emacs-w3m, you may use the | 422 | It is currently ignored by Emacs/w3. For emacs-w3m, you may use the |
| 423 | command @kbd{t} on the image anchor to show an image even if it is | 423 | command @kbd{t} on the image anchor to show an image even if it is |
| @@ -1048,7 +1048,7 @@ occurs. | |||
| 1048 | 1048 | ||
| 1049 | You can customize the value of the @code{mml-enable-flowed} variable | 1049 | You can customize the value of the @code{mml-enable-flowed} variable |
| 1050 | to enable or disable the flowed encoding usage when newline | 1050 | to enable or disable the flowed encoding usage when newline |
| 1051 | characteres are present in the buffer. | 1051 | characters are present in the buffer. |
| 1052 | 1052 | ||
| 1053 | On decoding flowed text, lines with soft newline characters are filled | 1053 | On decoding flowed text, lines with soft newline characters are filled |
| 1054 | together and wrapped after the column decided by | 1054 | together 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 |
| 10 | This file describes EasyPG Assistant @value{VERSION}. | 10 | This file describes EasyPG Assistant @value{VERSION}. |
| 11 | 11 | ||
| 12 | Copyright @copyright{} 2007-2011 Free Software Foundation, Inc. | 12 | Copyright @copyright{} 2007-2012 Free Software Foundation, Inc. |
| 13 | 13 | ||
| 14 | @quotation | 14 | @quotation |
| 15 | Permission is granted to copy, distribute and/or modify this document | 15 | Permission 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 |
| 9 | This manual is for ERC version 5.3. | 9 | This manual is for ERC version 5.3. |
| 10 | 10 | ||
| 11 | Copyright @copyright{} 2005-2011 | 11 | Copyright @copyright{} 2005-2012 |
| 12 | Free Software Foundation, Inc. | 12 | Free 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 |
| 13 | Copyright @copyright{} 2008, 2010-2011 Free Software Foundation, Inc. | 13 | Copyright @copyright{} 2008, 2010-2012 Free Software Foundation, Inc. |
| 14 | 14 | ||
| 15 | @quotation | 15 | @quotation |
| 16 | Permission is granted to copy, distribute and/or modify this document | 16 | Permission 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 | ||
| 66 | How to Write Tests | 66 | How 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 | ||
| 73 | How to Debug Tests | 73 | How to Debug Tests |
| @@ -82,8 +82,8 @@ Extending ERT | |||
| 82 | 82 | ||
| 83 | Other Testing Concepts | 83 | Other 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 |
| 134 | better error reporting. @xref{The @code{should} Macro}. | 134 | better error reporting. @xref{The @code{should} Macro}. |
| 135 | 135 | ||
| 136 | Each test should have a name that describes what functionality the | 136 | Each test should have a name that describes what functionality it tests. |
| 137 | test tests. Test names can be chosen arbitrarily --- they are in a | 137 | Test names can be chosen arbitrarily --- they are in a |
| 138 | namespace separate from functions and variables --- but should follow | 138 | namespace separate from functions and variables --- but should follow |
| 139 | the usual Emacs Lisp convention of having a prefix that indicates | 139 | the usual Emacs Lisp convention of having a prefix that indicates |
| 140 | which package they belong to. Test names are displayed by ERT when | 140 | which 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 | ||
| 143 | The empty parentheses @code{()} in the first line don't currently have | 143 | The empty parentheses @code{()} in the first line don't currently have |
| 144 | any meaning and are reserved for future extension. They also make | 144 | any meaning and are reserved for future extension. They also make |
| 145 | @code{ert-deftest}'s syntax more similar to @code{defun}. | 145 | the syntax of @code{ert-deftest} more similar to that of @code{defun}. |
| 146 | 146 | ||
| 147 | The docstring describes what feature this test tests. When running | 147 | The docstring describes what feature this test tests. When running |
| 148 | tests interactively, the first line of the docstring is displayed for | 148 | tests 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 | |||
| 163 | command line in a separate Emacs process in batch mode (i.e., with no | 163 | command line in a separate Emacs process in batch mode (i.e., with no |
| 164 | user interface). The former mode is convenient during interactive | 164 | user interface). The former mode is convenient during interactive |
| 165 | development, the latter is useful to make sure that tests pass | 165 | development, the latter is useful to make sure that tests pass |
| 166 | independently of your customizations, allows tests to be invoked from | 166 | independently of your customizations; and it allows you to invoke |
| 167 | makefiles and scripts to be written that run tests in several | 167 | tests from makefiles, and to write scripts that run tests in several |
| 168 | different Emacs versions. | 168 | different 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 | ||
| 180 | You can run the tests that are currently defined in your Emacs with | 180 | You can run the tests that are currently defined in your Emacs with |
| 181 | the command @kbd{@kbd{M-x} ert @kbd{RET} t @kbd{RET}}. ERT will pop | 181 | the command @kbd{@kbd{M-x} ert @kbd{RET} t @kbd{RET}}. (For an |
| 182 | explanation of the @code{t} argument, @pxref{Test Selectors}.) ERT will pop | ||
| 182 | up a new buffer, the ERT results buffer, showing the results of the | 183 | up a new buffer, the ERT results buffer, showing the results of the |
| 183 | tests run. It looks like this: | 184 | tests 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 | ||
| 222 | At the top, there is a summary of the results: We ran all tests in the | 223 | At the top, there is a summary of the results: we ran all tests defined |
| 223 | current Emacs (@code{Selector: t}), 31 of them passed, and 2 failed | 224 | in the current Emacs (@code{Selector: t}), 31 of them passed, and 2 |
| 224 | unexpectedly. @xref{Expected Failures}, for an explanation of the | 225 | failed unexpectedly. @xref{Expected Failures}, for an explanation of |
| 225 | term @emph{unexpected} in this context. | 226 | the term @emph{unexpected} in this context. |
| 226 | 227 | ||
| 227 | The line of dots and @code{F}s is a progress bar where each character | 228 | The line of dots and @code{F}s is a progress bar where each character |
| 228 | represents one test; it fills while the tests are running. A dot | 229 | represents 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, | |||
| 261 | They can be used like this: | 262 | They can be used like this: |
| 262 | 263 | ||
| 263 | @example | 264 | @example |
| 264 | emacs -batch -L /path/to/ert -l ert.el -l my-tests.el -f ert-run-tests-batch-and-exit | 265 | emacs -batch -l ert -l my-tests.el -f ert-run-tests-batch-and-exit |
| 265 | @end example | 266 | @end example |
| 266 | 267 | ||
| 267 | This command will start up Emacs in batch mode, load ERT, load | 268 | This 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 | |||
| 270 | failed or if anything else went wrong. It will also print progress | 271 | failed or if anything else went wrong. It will also print progress |
| 271 | messages and error diagnostics to standard output. | 272 | messages and error diagnostics to standard output. |
| 272 | 273 | ||
| 273 | You may need additional @code{-L} flags to ensure that | 274 | If 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}. | 276 | additional @code{-L} flags to ensure that @code{my-tests.el} and all the |
| 277 | files 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 |
| 297 | tests 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, | ||
| 305 | a function that takes a test as argument and returns non-nil if it is selected. | ||
| 301 | @end itemize | 306 | @end itemize |
| 302 | 307 | ||
| 303 | Selectors that are frequently useful when selecting tests to run | 308 | Selectors that are frequently useful when selecting tests to run |
| 304 | include @code{t} to run all tests that are currently defined in Emacs, | 309 | include @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 |
| 306 | that package @code{foo} uses the prefix @code{foo-} for its test names | 311 | that package @code{foo} uses the prefix @code{foo-} for its test names), |
| 307 | ---, result-based selectors such as @code{(or :new :unexpected)} to | 312 | result-based selectors such as @code{(or :new :unexpected)} to |
| 308 | run all tests that have either not run yet or that had an unexpected | 313 | run all tests that have either not run yet or that had an unexpected |
| 309 | result in the last run, and tag-based selectors such as @code{(not | 314 | result 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 | ||
| 337 | Test bodies can include arbitrary code; but to be useful, they need to | 342 | Test bodies can include arbitrary code; but to be useful, they need to |
| 338 | have checks whether the code being tested (or @emph{code under test}) | 343 | check whether the code being tested (or @emph{code under test}) |
| 339 | does what it is supposed to do. The macro @code{should} is similar to | 344 | does 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 |
| 341 | records information that ERT can display to help debugging. | 346 | (@pxref{Assertions,,, cl, Common Lisp Extensions}), |
| 347 | but analyzes its argument form and records information that ERT can | ||
| 348 | display to help debugging. | ||
| 342 | 349 | ||
| 343 | This test definition | 350 | This 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} |
| 383 | is optional; if absent, any type of error is accepted. | 390 | is 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 |
| 385 | signalled, to allow additional checks to be made. The error | 392 | signaled, to allow additional checks to be made. The error |
| 386 | description has the format @code{(ERROR-SYMBOL . DATA)}. | 393 | description has the format @code{(ERROR-SYMBOL . DATA)}. |
| 387 | 394 | ||
| 388 | There is no @code{should-not-error} macro since tests that signal an | 395 | There 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 | ||
| 399 | Some bugs are complicated to fix or not very important and are left as | 406 | Some 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 |
| 401 | fails, ERT will alert you of this failure every time you run all | 408 | fails, ERT will alert you of this failure every time you run all |
| 402 | tests. For known bugs, this alert is a distraction. The way to | 409 | tests. 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. |
| 409 | Since this functionality isn't implemented yet, the test is known to fail." | 416 | Since 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 | |||
| 427 | prevent future regressions. | 434 | prevent future regressions. |
| 428 | 435 | ||
| 429 | ERT displays the same kind of alerts for tests that pass unexpectedly | 436 | ERT displays the same kind of alerts for tests that pass unexpectedly |
| 430 | that it displays for unexpected failures. This way, if you make code | 437 | as it displays for unexpected failures. This way, if you make code |
| 431 | changes that happen to fix a bug that you weren't aware of, you will | 438 | changes that happen to fix a bug that you weren't aware of, you will |
| 432 | know to remove the @code{:expected-result} clause of that test and | 439 | know to remove the @code{:expected-result} clause of that test and |
| 433 | close the corresponding bug report, if any. | 440 | close the corresponding bug report, if any. |
| @@ -453,8 +460,8 @@ The outcome of running a test should not depend on the current state | |||
| 453 | of the environment, and each test should leave its environment in the | 460 | of the environment, and each test should leave its environment in the |
| 454 | same state it found it in. In particular, a test should not depend on | 461 | same state it found it in. In particular, a test should not depend on |
| 455 | any Emacs customization variables or hooks, and if it has to make any | 462 | any Emacs customization variables or hooks, and if it has to make any |
| 456 | changes to Emacs' state or state external to Emacs such as the file | 463 | changes to Emacs's state or state external to Emacs (such as the file |
| 457 | system, it should undo these changes before it returns, regardless of | 464 | system), it should undo these changes before it returns, regardless of |
| 458 | whether it passed or failed. | 465 | whether it passed or failed. |
| 459 | 466 | ||
| 460 | Tests should not depend on the environment because any such | 467 | Tests 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 | |||
| 462 | only under certain circumstances and are hard to reproduce. Of | 469 | only under certain circumstances and are hard to reproduce. Of |
| 463 | course, the code under test may have settings that affect its | 470 | course, the code under test may have settings that affect its |
| 464 | behavior. In that case, it is best to make the test @code{let}-bind | 471 | behavior. In that case, it is best to make the test @code{let}-bind |
| 465 | all such settings variables to set up a specific configuration for the | 472 | all such setting variables to set up a specific configuration for the |
| 466 | duration of the test. The test can also set up a number of different | 473 | duration of the test. The test can also set up a number of different |
| 467 | configurations and run the code under test with each. | 474 | configurations and run the code under test with each. |
| 468 | 475 | ||
| 469 | Tests that have side effects on their environment should restore it to | 476 | Tests that have side effects on their environment should restore it to |
| 470 | its original state because any side effects that persist after the | 477 | its original state because any side effects that persist after the |
| 471 | test can disrupt the workflow of the programmer running the tests. If | 478 | test can disrupt the workflow of the programmer running the tests. If |
| 472 | the code under test has side effects on Emacs' current state, such as | 479 | the code under test has side effects on Emacs's current state, such as |
| 473 | on the current buffer or window configuration, the test should create | 480 | on the current buffer or window configuration, the test should create |
| 474 | a temporary buffer for the code to manipulate (using | 481 | a 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 |
| 491 | its behavior can be affected by so many external factors. Also, | 498 | its 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 |
| 493 | hard to undo: It may create a new buffer or may reuse an existing | 500 | hard to undo: It may create a new buffer or reuse an existing |
| 494 | buffer if one is already visiting the requested file; and it runs | 501 | buffer 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 | ||
| 497 | Instead, it is better to use lower-level mechanisms with simple and | 504 | Instead, it is better to use lower-level mechanisms with simple and |
| 498 | predictable semantics like @code{with-temp-buffer}, @code{insert} or | 505 | predictable 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 |
| 500 | by calling the corresponding function directly --- after binding the | 507 | by calling the corresponding function directly --- after binding the |
| 501 | hook variables to nil. This avoids the above problems. | 508 | hook 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 | ||
| 541 | This test creates a test object using @code{make-ert-test} whose body | 550 | This test creates a test object using @code{make-ert-test} whose body |
| @@ -562,7 +571,7 @@ under test was structured with testing in mind. | |||
| 562 | For example, if @code{ert-run-test} accepted only symbols that name | 571 | For example, if @code{ert-run-test} accepted only symbols that name |
| 563 | tests rather than test objects, the test would need a name for the | 572 | tests rather than test objects, the test would need a name for the |
| 564 | failing test, which would have to be a temporary symbol generated with | 573 | failing 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 |
| 566 | the right interface for @code{ert-run-tests} allows the test to be | 575 | the right interface for @code{ert-run-tests} allows the test to be |
| 567 | simpler. | 576 | simpler. |
| 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 | ||
| 666 | Debugging failed tests works essentially the same way as debugging any | 675 | Debugging failed tests essentially works the same way as debugging any |
| 667 | other problems with Lisp code. Here are a few tricks specific to | 676 | other problems with Lisp code. Here are a few tricks specific to |
| 668 | tests: | 677 | tests: |
| 669 | 678 | ||
| @@ -673,8 +682,8 @@ each time. It's good to find out whether the behavior is | |||
| 673 | deterministic before spending any time looking for a cause. In the | 682 | deterministic before spending any time looking for a cause. In the |
| 674 | ERT results buffer, @kbd{r} re-runs the selected test. | 683 | ERT 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 |
| 677 | exactly it does. Perhaps the test is broken rather than the code | 686 | what it does. Perhaps the test is broken rather than the code |
| 678 | under test. | 687 | under 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 |
| 700 | ERT remembers an old test that you have since renamed or removed --- | 709 | ERT remembers an old test that you have since renamed or removed --- |
| 701 | renamings or removals of definitions in the source code leave around a | 710 | renamings or removals of definitions in the source code leave around a |
| 702 | stray definition under the old name in the running process, this is a | 711 | stray definition under the old name in the running process (this is a |
| 703 | common problem in Lisp. In such a situation, hit @kbd{D} to let ERT | 712 | common problem in Lisp). In such a situation, hit @kbd{D} to let ERT |
| 704 | forget about the obsolete test. | 713 | forget about the obsolete test. |
| 705 | @end itemize | 714 | @end itemize |
| 706 | 715 | ||
| @@ -739,14 +748,13 @@ explanation function. | |||
| 739 | 748 | ||
| 740 | Both @code{ert-run-tests-interactively} and @code{ert-run-tests-batch} | 749 | Both @code{ert-run-tests-interactively} and @code{ert-run-tests-batch} |
| 741 | are implemented on top of the lower-level test handling code in the | 750 | are implemented on top of the lower-level test handling code in the |
| 742 | sections named ``Facilities for running a single test'', ``Test | 751 | sections of @file{ert.el} labeled ``Facilities for running a single test'', |
| 743 | selectors'', and ``Facilities for running a whole set of tests''. | 752 | ``Test selectors'', and ``Facilities for running a whole set of tests''. |
| 744 | 753 | ||
| 745 | If you want to write code that works with ERT tests, you should take a | 754 | If you want to write code that works with ERT tests, you should take a |
| 746 | look at this lower-level code. Symbols that start with @code{ert--} | 755 | look at this lower-level code. Symbols that start with @code{ert--} |
| 747 | are internal to ERT, those that start with @code{ert-} but not | 756 | are 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 | 757 | meant to be usable by other code. But there is no mature API yet. |
| 749 | mature API yet. | ||
| 750 | 758 | ||
| 751 | Contributions to ERT are welcome. | 759 | Contributions 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 | |||
| 782 | SUnit or JUnit. However, two features commonly found in such | 790 | SUnit or JUnit. However, two features commonly found in such |
| 783 | frameworks are notably absent from ERT: fixtures and test suites. | 791 | frameworks are notably absent from ERT: fixtures and test suites. |
| 784 | 792 | ||
| 785 | Fixtures, as used e.g. in SUnit or JUnit, are mainly used to provide | 793 | Fixtures are mainly used (e.g., in SUnit or JUnit) to provide an |
| 786 | an environment for a set of tests, and consist of set-up and tear-down | 794 | environment for a set of tests, and consist of set-up and tear-down |
| 787 | functions. | 795 | functions. |
| 788 | 796 | ||
| 789 | While fixtures are a useful syntactic simplification in other | 797 | While fixtures are a useful syntactic simplification in other |
| @@ -829,13 +837,13 @@ separating module namespaces in Emacs Lisp, test selectors already | |||
| 829 | solve this by allowing regexp matching on test names; e.g., the | 837 | solve this by allowing regexp matching on test names; e.g., the |
| 830 | selector "^ert-" selects ERT's self-tests. | 838 | selector "^ert-" selects ERT's self-tests. |
| 831 | 839 | ||
| 832 | Other uses include grouping tests by their expected execution time to | 840 | Other uses include grouping tests by their expected execution time, |
| 833 | run quick tests during interactive development and slow tests less | 841 | e.g. to run quick tests during interactive development and slow tests less |
| 834 | frequently. This can be achieved with the @code{:tag} argument to | 842 | often. 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 |
| 9 | This manual is for Eshell, the Emacs shell. | 9 | This manual is for Eshell, the Emacs shell. |
| 10 | 10 | ||
| 11 | Copyright @copyright{} 1999-2011 Free Software Foundation, Inc. | 11 | Copyright @copyright{} 1999-2012 Free Software Foundation, Inc. |
| 12 | 12 | ||
| 13 | @quotation | 13 | @quotation |
| 14 | Permission is granted to copy, distribute and/or modify this document | 14 | Permission 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 | ||
| 64 | Eshell is a shell-like command interpretor | 64 | Eshell is a shell-like command interpreter |
| 65 | implemented in Emacs Lisp. It invokes no external processes except for | 65 | implemented in Emacs Lisp. It invokes no external processes except for |
| 66 | those requested by the user. It is intended to be a functional | 66 | those requested by the user. It is intended to be a functional |
| 67 | replacement for command shells such as @command{bash}, @command{zsh}, | 67 | replacement 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 | ||
| 96 | Eshell is a @dfn{command shell} written in Emacs Lisp. Everything it | 96 | Eshell is a @dfn{command shell} written in Emacs Lisp. Everything it |
| 97 | does, it uses Emacs' facilities to do. This means that Eshell is as | 97 | does, it uses Emacs's facilities to do. This means that Eshell is as |
| 98 | portable as Emacs itself. It also means that cooperation with Lisp code | 98 | portable as Emacs itself. It also means that cooperation with Lisp code |
| 99 | is natural and seamless. | 99 | is natural and seamless. |
| 100 | 100 | ||
| @@ -379,7 +379,7 @@ eshell/sudo is a compiled Lisp function in `em-unix.el' | |||
| 379 | sudo is an alias, defined as "*sudo $*" | 379 | sudo is an alias, defined as "*sudo $*" |
| 380 | @end example | 380 | @end example |
| 381 | 381 | ||
| 382 | Some of the built-in commands have a special behaviour in Eshell: | 382 | Some 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 | ||
| 611 | This happened a few times in Emacs 21, but has been unreproducible | 611 | This happened a few times in Emacs 21, but has been irreproducible |
| 612 | since. | 612 | since. |
| 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 | |||
| 12 | directory servers using various protocols such as LDAP or the CCSO white | 12 | directory servers using various protocols such as LDAP or the CCSO white |
| 13 | pages directory system (PH/QI) | 13 | pages directory system (PH/QI) |
| 14 | 14 | ||
| 15 | Copyright @copyright{} 1998, 2000-2011 Free Software Foundation, Inc. | 15 | Copyright @copyright{} 1998, 2000-2012 Free Software Foundation, Inc. |
| 16 | 16 | ||
| 17 | @quotation | 17 | @quotation |
| 18 | Permission is granted to copy, distribute and/or modify this document | 18 | Permission 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 |
| 14 | Copyright @copyright{} 2001-2011 Free Software Foundation, Inc.@* | 14 | Copyright @copyright{} 2001-2012 Free Software Foundation, Inc.@* |
| 15 | Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000 | 15 | Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000 |
| 16 | Reuven M. Lerner@* | 16 | Reuven M. Lerner@* |
| 17 | Copyright @copyright{} 1992, 1993 Steven Byrnes@* | 17 | Copyright @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. | |||
| 368 | There has never been a copyright infringement case involving the GPL to | 368 | There has never been a copyright infringement case involving the GPL to |
| 369 | set any precedents. Although legal actions have been brought against | 369 | set any precedents. Although legal actions have been brought against |
| 370 | companies for violating the terms of the GPL, so far all have been | 370 | companies for violating the terms of the GPL, so far all have been |
| 371 | settled out of court (in favour of the plaintiffs). Please take any | 371 | settled out of court (in favor of the plaintiffs). Please take any |
| 372 | discussion regarding this issue to the newsgroup | 372 | discussion 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 |
| 374 | flame wars on the subject. | 374 | flame wars on the subject. |
| @@ -627,7 +627,7 @@ translations of the reference card into several languages; look for | |||
| 627 | files named @file{etc/refcards/@var{lang}-refcard.*}, where @var{lang} | 627 | files named @file{etc/refcards/@var{lang}-refcard.*}, where @var{lang} |
| 628 | is a two-letter code of the language. For example, the German version | 628 | is a two-letter code of the language. For example, the German version |
| 629 | of the reference card is in the files @file{etc/refcards/de-refcard.tex} | 629 | of the reference card is in the files @file{etc/refcards/de-refcard.tex} |
| 630 | and @file{etc/recards/de-refcard.pdf}. | 630 | and @file{etc/refcards/de-refcard.pdf}. |
| 631 | 631 | ||
| 632 | @item | 632 | @item |
| 633 | There are many other commands in Emacs for getting help and | 633 | There 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 @@ | |||
| 11 | This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}), | 11 | This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}), |
| 12 | which is a universal on-the-fly syntax checker for GNU Emacs. | 12 | which is a universal on-the-fly syntax checker for GNU Emacs. |
| 13 | 13 | ||
| 14 | Copyright @copyright{} 2004-2011 | 14 | Copyright @copyright{} 2004-2012 |
| 15 | Free Software Foundation, Inc. | 15 | Free 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 | ||
| 451 | In this example we will add support for C files syntax checked by | 451 | In 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 | ||
| 454 | We're not required to write any new functions, as Flymake already has | 454 | We're not required to write any new functions, as Flymake already has |
| 455 | functions for @code{make}. We just add a new entry to the | 455 | functions 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} |
| 468 | command line: | 468 | command 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 |
| 485 | check-syntax: | 485 | check-syntax: |
| 486 | gcc -o nul -S ${CHK_SOURCES} | 486 | gcc -o /dev/null -S ${CHK_SOURCES} |
| 487 | @end verbatim | 487 | @end verbatim |
| 488 | 488 | ||
| 489 | The format of error messages reported by @code{gcc} is already | 489 | @noindent |
| 490 | The format of error messages reported by @command{gcc} is already | ||
| 490 | supported by Flymake, so we don't have to add a new entry to | 491 | supported 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 |
| 493 | Automake, you may want to replace @code{gcc} with the standard | ||
| 494 | Automake variable @code{COMPILE}: | ||
| 495 | |||
| 496 | @verbatim | ||
| 497 | check-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 | ||
| 550 | Flymake contains implementations of all functionality required to | 558 | Flymake contains implementations of all functionality required to |
| 551 | support different syntax check modes described above (making | 559 | support different syntax check modes described above (making temporary |
| 552 | temporary copies, finding master files, etc.), as well as some | 560 | copies, finding master files, etc.), as well as some tool-specific |
| 553 | tool-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 | |||
| 626 | way to implement the desired behavior. | 634 | way to implement the desired behavior. |
| 627 | 635 | ||
| 628 | The default implementation, @code{flymake-get-project-include-dirs-imp}, | 636 | The default implementation, @code{flymake-get-project-include-dirs-imp}, |
| 629 | uses a @code{make} call. This requires a correct base directory, that is, a | 637 | uses a @command{make} call. This requires a correct base directory, that is, a |
| 630 | directory containing a correct @code{Makefile}, to be determined. | 638 | directory containing a correct @file{Makefile}, to be determined. |
| 631 | 639 | ||
| 632 | As obtaining the project include directories might be a costly operation, its | 640 | As obtaining the project include directories might be a costly operation, its |
| 633 | return value is cached in the hash table. The cache is cleared in the beginning | 641 | return 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 | ||
| 642 | Flymake can be configured to use different tools for performing syntax | 650 | Flymake can be configured to use different tools for performing syntax |
| 643 | checks. For example, it can use direct compiler call to syntax check a perl | 651 | checks. For example, it can use direct compiler call to syntax check a perl |
| 644 | script or a call to @code{make} for a more complicated case of a | 652 | script 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 |
| 646 | scripts and html pages, can be checked by directly invoking a | 654 | scripts and html pages, can be checked by directly invoking a |
| 647 | corresponding tool. Files that are usually more complex and generally | 655 | corresponding tool. Files that are usually more complex and generally |
| 648 | used as part of larger projects, might require non-trivial options to | 656 | used as part of larger projects, might require non-trivial options to |
| 649 | be passed to the syntax check tool, like include directories for | 657 | be passed to the syntax check tool, like include directories for |
| 650 | C++. The latter files are syntax checked using some build tool, like | 658 | C++. The latter files are syntax checked using some build tool, like |
| 651 | @code{make} or @code{Ant}. | 659 | Make or Ant. |
| 652 | 660 | ||
| 653 | All @code{make} configuration data is usually stored in a file called | 661 | All 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 |
| 655 | buildfile to reference the 'project configuration' file. | 663 | buildfile 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 |
| 19 | This file documents Forms mode, a form-editing major mode for GNU Emacs. | 19 | This file documents Forms mode, a form-editing major mode for GNU Emacs. |
| 20 | 20 | ||
| 21 | Copyright @copyright{} 1989, 1997, 2001-2011 Free Software Foundation, Inc. | 21 | Copyright @copyright{} 1989, 1997, 2001-2012 Free Software Foundation, Inc. |
| 22 | 22 | ||
| 23 | @quotation | 23 | @quotation |
| 24 | Permission is granted to copy, distribute and/or modify this document | 24 | Permission 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 |
| 10 | Copyright @copyright{} 2004-2005, 2007-2011 Free Software | 10 | Copyright @copyright{} 2004-2005, 2007-2012 Free Software |
| 11 | Foundation, Inc. | 11 | Foundation, 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 |
| 49 | This manual describes @dots{} | 49 | This 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. | |||
| 250 | XEmacs 21.1 and up. | 250 | XEmacs 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 | ||
| 38 | This is the new Gnus Frequently Asked Questions list. | 38 | This is the new Gnus Frequently Asked Questions list. |
| 39 | 39 | ||
| 40 | Please submit features and suggestions to the | 40 | Please 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 | ||
| 163 | Gnus is released independent from releases of Emacs and XEmacs. | 163 | Gnus is released independent from releases of Emacs and XEmacs. |
| 164 | Therefore, the version bundled with Emacs or the version in XEmacs' | 164 | Therefore, the version bundled with Emacs or the version in XEmacs's |
| 165 | package system might not be up to date (e.g. Gnus 5.9 bundled with Emacs | 165 | package system might not be up to date (e.g. Gnus 5.9 bundled with Emacs |
| 166 | 21 is outdated). | 166 | 21 is outdated). |
| 167 | You can get the latest released version of Gnus from | 167 | You 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} |
| 169 | or via anonymous FTP from | 169 | or 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 | ||
| 179 | Untar it via @samp{tar xvzf gnus.tar.gz} and do the common | 179 | Untar 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 | ||
| 268 | This message means that the last time you used Gnus, it | 268 | This message means that the last time you used Gnus, it |
| 269 | wasn't properly exited and therefor couldn't write its | 269 | wasn't properly exited and therefore couldn't write its |
| 270 | informations to disk (e.g. which messages you read), you | 270 | information to disk (e.g. which messages you read), you |
| 271 | are now asked if you want to restore those informations | 271 | are now asked if you want to restore that information |
| 272 | from the auto-save file. | 272 | from the auto-save file. |
| 273 | 273 | ||
| 274 | To prevent this message make sure you exit Gnus | 274 | To 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 | ||
| 372 | I just installed Gnus, started it via | 372 | I just installed Gnus, started it via |
| 373 | @samp{M-x gnus} | 373 | @samp{M-x gnus} |
| 374 | but it only says "nntp (news) open error", what to do? | 374 | but 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. | |||
| 396 | The ~/ means the home directory where Gnus and Emacs look | 396 | The ~/ means the home directory where Gnus and Emacs look |
| 397 | for the configuration files. However, you don't really | 397 | for the configuration files. However, you don't really |
| 398 | need to know what this means, it suffices that Emacs knows | 398 | need to know what this means, it suffices that Emacs knows |
| 399 | what it means :-) You can type | 399 | what 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 |
| 402 | Emacs will open the right file for you. (It will most | 402 | Emacs will open the right file for you. (It will most |
| 403 | likely be new, and thus empty.) | 403 | likely be new, and thus empty.) |
| 404 | However, I'd discourage you from doing so, since the | 404 | However, I'd discourage you from doing so, since the |
| 405 | directory Emacs chooses will most certainly not be what | 405 | directory Emacs chooses will most certainly not be what |
| 406 | you want, so let's do it the correct way. | 406 | you want, so let's do it the correct way. |
| 407 | The first thing you've got to do is to | 407 | The first thing you've got to do is to |
| 408 | create a suitable directory (no blanks in directory name | 408 | create a suitable directory (no blanks in directory name |
| 409 | please) e.g. c:\myhome. Then you must set the environment | 409 | please) e.g. c:\myhome. Then you must set the environment |
| @@ -442,7 +442,7 @@ machine news.yourprovider.net login YourUserName password YourPassword | |||
| 442 | . | 442 | . |
| 443 | Make sure that the file isn't readable to others if you | 443 | Make sure that the file isn't readable to others if you |
| 444 | work on a OS which is capable of doing so. (Under Unix | 444 | work on a OS which is capable of doing so. (Under Unix |
| 445 | say | 445 | say |
| 446 | @example | 446 | @example |
| 447 | chmod 600 ~/.authinfo | 447 | chmod 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 | ||
| 478 | Some providers allow restricted anonymous access and full | 478 | Some providers allow restricted anonymous access and full |
| 479 | access only after authorization. To make Gnus send authinfo | 479 | access only after authorization. To make Gnus send authinfo |
| 480 | to those servers append | 480 | to those servers append |
| 481 | 481 | ||
| 482 | @example | 482 | @example |
| 483 | force yes | 483 | force yes |
| 484 | @end example | 484 | @end example |
| 485 | @noindent | 485 | @noindent |
| 486 | 486 | ||
| 487 | to the line for those servers in ~/.authinfo. | 487 | to 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 | |||
| 563 | it should store the mail, in Gnus terminology which back end | 563 | it should store the mail, in Gnus terminology which back end |
| 564 | to use. Gnus supports many different back ends, the most | 564 | to use. Gnus supports many different back ends, the most |
| 565 | commonly used one is nnml. It stores every mail in one file | 565 | commonly used one is nnml. It stores every mail in one file |
| 566 | and is therefor quite fast. However you might prefer a one | 566 | and is therefore quite fast. However you might prefer a one |
| 567 | file per group approach if your file system has problems with | 567 | file per group approach if your file system has problems with |
| 568 | many small files, the nnfolder back end is then probably the | 568 | many small files, the nnfolder back end is then probably the |
| 569 | choice for you. To use nnml add the following to ~/.gnus.el: | 569 | choice 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 | ||
| 583 | Now we need to tell Gnus, where to get it's mail from. If | 583 | Now we need to tell Gnus, where to get its mail from. If |
| 584 | it's a POP3 server, then you need something like this: | 584 | it'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 | ||
| 777 | If you enter the group by saying | 777 | If you enter the group by saying |
| 778 | @samp{RET} | 778 | @samp{RET} |
| 779 | in group buffer with point over the group, only unread and ticked messages are loaded. Say | 779 | in 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 | ||
| 791 | in ~/.gnus.el to load enough old articles to prevent teared threads, replace 'some with t to load | 791 | in ~/.gnus.el to load enough old articles to prevent teared threads, replace 'some with t to load |
| 792 | all articles (Warning: Both settings enlarge the amount of data which is | 792 | all articles (Warning: Both settings enlarge the amount of data which is |
| 793 | fetched when you enter a group and slow down the process of entering a group). | 793 | fetched when you enter a group and slow down the process of entering a group). |
| 794 | 794 | ||
| 795 | If you already use Gnus 5.10, you can say | 795 | If you already use Gnus 5.10, you can say |
| 796 | @samp{/o N} | 796 | @samp{/o N} |
| 797 | In summary buffer to load the last N messages, this feature is not available in 5.8.8 | 797 | In summary buffer to load the last N messages, this feature is not available in 5.8.8 |
| 798 | 798 | ||
| 799 | If you don't want all old messages, but the parent of the message you're just reading, | 799 | If 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 | ||
| 825 | Say @samp{t} | 825 | Say @samp{t} |
| 826 | to show all headers, one more | 826 | to show all headers, one more |
| 827 | @samp{t} | 827 | @samp{t} |
| 828 | hides them again. | 828 | hides 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 | ||
| 837 | Say | 837 | Say |
| 838 | @samp{C-u g} | 838 | @samp{C-u g} |
| 839 | to show the raw message | 839 | to show the raw message |
| 840 | @samp{g} | 840 | @samp{g} |
| 841 | returns to normal view. | 841 | returns 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 - | |||
| 1042 | lowest-article-number = total-number-of-articles". This | 1042 | lowest-article-number = total-number-of-articles". This |
| 1043 | works OK for Usenet groups, but if you delete and move | 1043 | works OK for Usenet groups, but if you delete and move |
| 1044 | many messages in mail groups, this fails. To cure the | 1044 | many messages in mail groups, this fails. To cure the |
| 1045 | symptom, enter the group via @samp{C-u RET} | 1045 | symptom, enter the group via @samp{C-u RET} |
| 1046 | (this makes Gnus get all messages), then | 1046 | (this makes Gnus get all messages), then |
| 1047 | hit @samp{M P b} to mark all messages and | 1047 | hit @samp{M P b} to mark all messages and |
| 1048 | then say @samp{B m name.of.group} to move | 1048 | then 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 | ||
| 1106 | You've got to play around with the variable | 1106 | You've got to play around with the variable |
| 1107 | gnus-summary-line-format. It's value is a string of | 1107 | gnus-summary-line-format. Its value is a string of |
| 1108 | symbols which stand for things like author, date, subject | 1108 | symbols which stand for things like author, date, subject |
| 1109 | etc. A list of the available specifiers can be found in the | 1109 | etc. A list of the available specifiers can be found in the |
| 1110 | manual node "Summary Buffer Lines" and the often forgotten | 1110 | manual node "Summary Buffer Lines" and the often forgotten |
| 1111 | node "Formatting Variables" and it's sub-nodes. There | 1111 | node "Formatting Variables" and its sub-nodes. There |
| 1112 | you'll find useful things like positioning the cursor and | 1112 | you'll find useful things like positioning the cursor and |
| 1113 | tabulators which allow you a summary in table form, but | 1113 | tabulators which allow you a summary in table form, but |
| 1114 | sadly hard tabulators are broken in 5.8.8. | 1114 | sadly hard tabulators are broken in 5.8.8. |
| @@ -1162,7 +1162,7 @@ general rule (regular expression .*) which denotes where | |||
| 1162 | articles should go which don't match any other rule. If | 1162 | articles should go which don't match any other rule. If |
| 1163 | the folder doesn't exist yet, it will be created as soon | 1163 | the folder doesn't exist yet, it will be created as soon |
| 1164 | as an article lands there. By default the mail will be | 1164 | as an article lands there. By default the mail will be |
| 1165 | send to all groups whose rules match. If you | 1165 | send to all groups whose rules match. If you |
| 1166 | don't want that (you probably don't want), say | 1166 | don'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 | |||
| 1393 | first thing to do is to make sure that you've got either | 1393 | first 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} |
| 1395 | or @uref{http://aspell.sourceforge.net/, aspell} | 1395 | or @uref{http://aspell.sourceforge.net/, aspell} |
| 1396 | installed and in your Path. Then you need | 1396 | installed 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} |
| 1398 | and for on-the-fly spell-checking | 1398 | and 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}. |
| 1400 | Ispell.el is shipped with Emacs and available through the XEmacs package system, | 1400 | Ispell.el is shipped with Emacs and available through the XEmacs package system, |
| 1401 | flyspell.el is shipped with Emacs and part of XEmacs text-modes package which is | 1401 | flyspell.el is shipped with Emacs and part of XEmacs text-modes package which is |
| 1402 | available through the package system, so there should be no need to install them | 1402 | available through the package system, so there should be no need to install them |
| 1403 | manually. | 1403 | manually. |
| 1404 | 1404 | ||
| 1405 | Ispell.el assumes you use ispell, if you choose aspell say | 1405 | Ispell.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 | ||
| 1412 | in your Emacs configuration file. | 1412 | in your Emacs configuration file. |
| 1413 | 1413 | ||
| 1414 | If you want your outgoing messages to be spell-checked, say | 1414 | If 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 | ||
| 1449 | in ~/.gnus.el. Change "^de\\." and "deutsch8" to something | 1449 | in ~/.gnus.el. Change "^de\\." and "deutsch8" to something |
| 1450 | that suits your needs. | 1450 | that suits your needs. |
| 1451 | 1451 | ||
| @@ -1472,7 +1472,7 @@ cause Gnus to insert the full address for you. See the | |||
| 1472 | node "Mail Aliases" in Message (not Gnus) manual for | 1472 | node "Mail Aliases" in Message (not Gnus) manual for |
| 1473 | details. | 1473 | details. |
| 1474 | 1474 | ||
| 1475 | However, what you really want is the Insidious Big Brother | 1475 | However, what you really want is the Insidious Big Brother |
| 1476 | Database bbdb. Get it through the XEmacs package system or from | 1476 | Database 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}. |
| 1478 | Now place the following in ~/.gnus.el, to activate bbdb for Gnus: | 1478 | Now 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 | |||
| 1529 | Gimp), open the image you want to include, cut out the | 1529 | Gimp), open the image you want to include, cut out the |
| 1530 | relevant part, reduce color depth to 1 bit, resize to | 1530 | relevant part, reduce color depth to 1 bit, resize to |
| 1531 | 48*48 and save as bitmap. Now you should get the compface | 1531 | 48*48 and save as bitmap. Now you should get the compface |
| 1532 | package from | 1532 | package from |
| 1533 | @uref{ftp://ftp.cs.indiana.edu:/pub/faces/, this site}. | 1533 | @uref{ftp://ftp.cs.indiana.edu:/pub/faces/, this site}. |
| 1534 | and create the actual X-face by saying | 1534 | and 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 | ||
| 1542 | If you can't use compface, there's an online X-face converter at | 1542 | If 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/}. |
| 1544 | If you use MS Windows, you could also use the WinFace program from | 1544 | If 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 | ||
| 1670 | in ~/.gnus.el. If you use Gnus 5.9 or earlier, you can use this | 1670 | in ~/.gnus.el. If you use Gnus 5.9 or earlier, you can use this |
| 1671 | instead (works for newer versions as well): | 1671 | instead (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 | |||
| 1838 | in Gnus. Here comes nnir into action. Nnir is a front end | 1838 | in Gnus. Here comes nnir into action. Nnir is a front end |
| 1839 | to search engines like swish-e or swish++ and | 1839 | to search engines like swish-e or swish++ and |
| 1840 | others. You index your mail with one of those search | 1840 | others. You index your mail with one of those search |
| 1841 | engines and with the help of nnir you can search trough | 1841 | engines and with the help of nnir you can search through |
| 1842 | the indexed mail and generate a temporary group with all | 1842 | the indexed mail and generate a temporary group with all |
| 1843 | messages which met your search criteria. If this sound | 1843 | messages which met your search criteria. If this sound |
| 1844 | cool to you get nnir.el from | 1844 | cool to you get nnir.el from |
| @@ -1961,12 +1961,12 @@ receives the mail you write from Gnus and sends them | |||
| 1961 | when you're online. | 1961 | when you're online. |
| 1962 | 1962 | ||
| 1963 | Let's talk about Unix systems first: For the news part, | 1963 | Let's talk about Unix systems first: For the news part, |
| 1964 | the easiest solution is a small nntp server like | 1964 | the 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}, |
| 1967 | of course you can also install a full featured news | 1967 | of course you can also install a full featured news |
| 1968 | server like | 1968 | server like |
| 1969 | @uref{http://www.isc.org/products/INN/, inn}. | 1969 | @uref{http://www.isc.org/products/INN/, inn}. |
| 1970 | Then you want to fetch your Mail, popular choices | 1970 | Then you want to fetch your Mail, popular choices |
| 1971 | are @uref{http://www.catb.org/~esr/fetchmail/, fetchmail} | 1971 | are @uref{http://www.catb.org/~esr/fetchmail/, fetchmail} |
| 1972 | and @uref{http://pyropus.ca/software/getmail/, getmail}. | 1972 | and @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 | ||
| 1981 | On windows boxes I'd vote for | 1981 | On windows boxes I'd vote for |
| 1982 | @uref{http://www.tglsoft.de/, Hamster}, | 1982 | @uref{http://www.tglsoft.de/, Hamster}, |
| 1983 | it's a small freeware, open-source program which fetches | 1983 | it's a small freeware, open-source program which fetches |
| 1984 | your mail and news from remote servers and offers them | 1984 | your mail and news from remote servers and offers them |
| 1985 | to Gnus (or any other mail and/or news reader) via nntp | 1985 | to 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 | ||
| 2138 | There's the newsgroup gnu.emacs.gnus (also available as | 2138 | There'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, |
| 2140 | gmane.emacs.gnus.user}) which deals with general Gnus | 2140 | gmane.emacs.gnus.user}) which deals with general Gnus |
| 2141 | questions. If you have questions about development versions of | 2141 | questions. If you have questions about development versions of |
| 2142 | Gnus, you should better ask on the ding mailing list, see below. | 2142 | Gnus, you should better ask on the ding mailing list, see below. |
| @@ -2149,7 +2149,7 @@ de.comm.software.gnus. | |||
| 2149 | 2149 | ||
| 2150 | The ding mailing list (ding@@gnus.org) deals with development of | 2150 | The ding mailing list (ding@@gnus.org) deals with development of |
| 2151 | Gnus. You can read the ding list via NNTP, too under the name | 2151 | Gnus. 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, |
| 2153 | gmane.emacs.gnus.general} from news.gmane.org. | 2153 | gmane.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 | ||
| 2162 | Say @samp{M-x gnus-bug}, this will start | 2162 | Say @samp{M-x gnus-bug}, this will start |
| 2163 | a message to the | 2163 | a message to the |
| 2164 | @email{bugs@@gnus.org, gnus bug mailing list} | 2164 | @email{bugs@@gnus.org, gnus bug mailing list} |
| 2165 | including information about your environment which make | 2165 | including information about your environment which make |
| 2166 | it easier to help you. | 2166 | it 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 | ||
| 2193 | The reason for this could be the way Gnus reads it's | 2193 | The reason for this could be the way Gnus reads its |
| 2194 | active file, see the node "The Active File" in the Gnus | 2194 | active file, see the node "The Active File" in the Gnus |
| 2195 | manual for things you might try to speed the process up. | 2195 | manual for things you might try to speed the process up. |
| 2196 | An other idea would be to byte compile your ~/.gnus.el (say | 2196 | An other idea would be to byte compile your ~/.gnus.el (say |
| @@ -2237,7 +2237,7 @@ building of summary say | |||
| 2237 | 2237 | ||
| 2238 | at the bottom of your ~/.gnus.el, this will make gnus | 2238 | at the bottom of your ~/.gnus.el, this will make gnus |
| 2239 | byte-compile things like | 2239 | byte-compile things like |
| 2240 | gnus-summary-line-format. | 2240 | gnus-summary-line-format. |
| 2241 | then you could increase the value of gc-cons-threshold | 2241 | then you could increase the value of gc-cons-threshold |
| 2242 | by saying something like | 2242 | by 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 | ||
| 2258 | in ~/.gnus.el (thanks to Jesper harder for the last | 2258 | in ~/.gnus.el (thanks to Jesper harder for the last |
| 2259 | two suggestions). Finally if you are still using 5.8.8 | 2259 | two suggestions). Finally if you are still using 5.8.8 |
| 2260 | or 5.9 and experience speed problems with summary | 2260 | or 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 | ||
| 29 | Copyright (C) 1999-2011 Free Software Foundation, Inc. | 29 | Copyright (C) 1999-2012 Free Software Foundation, Inc. |
| 30 | See the end of the file for license conditions. | 30 | See the end of the file for license conditions. |
| 31 | 31 | ||
| 32 | Please send Gnus bug reports to bugs@gnus.org. | 32 | Please 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 | |||
| 44 | safe in general. | 44 | safe 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 |
| 47 | In Emacs 23, Gnus uses Emacs' new internal coding system @code{utf-8-emacs} | 47 | In Emacs 23, Gnus uses Emacs's new internal coding system @code{utf-8-emacs} |
| 48 | for saving articles drafts and @file{~/.newsrc.eld}. These files may not | 48 | for saving articles drafts and @file{~/.newsrc.eld}. These files may not |
| 49 | be read correctly in Emacs 22 and below. If you want to use Gnus across | 49 | be read correctly in Emacs 22 and below. If you want to use Gnus across |
| 50 | different Emacs versions, you may set @code{mm-auto-save-coding-system} | 50 | different 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 |
| 110 | Symbols like @code{gcc-self} now has the same presedence rules in | 110 | Symbols 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 |
| 112 | wins instead of the first match. | 112 | wins instead of the first match. |
| 113 | 113 | ||
| @@ -333,7 +333,7 @@ in the group buffer, see the variable @code{gnus-group-update-tool-bar}. | |||
| 333 | Its default value depends on your Emacs version. | 333 | Its 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. |
| 337 | See @code{gnus-use-toolbar} and @code{message-use-toolbar}. | 337 | See @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 |
| 14 | Copyright @copyright{} 1995-2011 Free Software Foundation, Inc. | 14 | Copyright @copyright{} 1995-2012 Free Software Foundation, Inc. |
| 15 | 15 | ||
| 16 | @quotation | 16 | @quotation |
| 17 | Permission is granted to copy, distribute and/or modify this document | 17 | Permission is granted to copy, distribute and/or modify this document |
| @@ -891,7 +891,6 @@ Appendices | |||
| 891 | History | 891 | History |
| 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, | |||
| 1002 | you can press @kbd{RET} on a defined server to see all the groups it | 1001 | you can press @kbd{RET} on a defined server to see all the groups it |
| 1003 | serves (subscribed or not!). You can also add or delete servers, edit | 1002 | serves (subscribed or not!). You can also add or delete servers, edit |
| 1004 | a foreign server's definition, agentize or de-agentize a server, and | 1003 | a foreign server's definition, agentize or de-agentize a server, and |
| 1005 | do many other neat things. @xref{Server Buffer}. | 1004 | do 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 | |||
| 1011 | news. This variable should be a list where the first element says | 1010 | news. 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 |
| 1013 | native method. All groups not fetched with this method are | 1012 | native method. All groups not fetched with this method are |
| 1014 | foreign groups. | 1013 | secondary or foreign groups. |
| 1015 | 1014 | ||
| 1016 | For instance, if the @samp{news.somewhere.edu} @acronym{NNTP} server is where | 1015 | For instance, if the @samp{news.somewhere.edu} @acronym{NNTP} server is where |
| 1017 | you want to get your daily dosage of news from, you'd say: | 1016 | you 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 |
| 1331 | As if that wasn't enough, @code{gnus-auto-subscribed-categories} also | 1330 | As if that wasn't enough, @code{gnus-auto-subscribed-categories} also |
| 1332 | allows you to specify that new groups should be subcribed based on the | 1331 | allows you to specify that new groups should be subscribed based on the |
| 1333 | category their select methods belong to. The default is @samp{(mail | 1332 | category their select methods belong to. The default is @samp{(mail |
| 1334 | post-mail)}, meaning that all new groups from mail-like backends | 1333 | post-mail)}, meaning that all new groups from mail-like backends |
| 1335 | should be subscribed automatically. | 1334 | should be subscribed automatically. |
| @@ -2983,7 +2982,7 @@ The available operators are @code{not}, @code{and} and @code{or}. | |||
| 2983 | Predicates include @code{tick}, @code{unsend}, @code{undownload}, | 2982 | Predicates 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 | ||
| 3191 | String value of parameters will be subjected to regexp substitution, as | 3190 | All clauses that matches the group name will be used, but the last |
| 3192 | the @code{to-group} example shows. | 3191 | setting ``wins''. So if you have two clauses that both match the |
| 3192 | group name, and both set, say @code{display}, the last setting will | ||
| 3193 | override the first. | ||
| 3194 | |||
| 3195 | Parameters that are strings will be subjected to regexp substitution, | ||
| 3196 | as the @code{to-group} example shows. | ||
| 3193 | 3197 | ||
| 3194 | @vindex gnus-parameters-case-fold-search | 3198 | @vindex gnus-parameters-case-fold-search |
| 3195 | By default, whether comparing the group name and one of those regexps | 3199 | By 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 |
| 3338 | List groups limited within the current selection | 3342 | Further 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 |
| 3344 | with dormant articles with @kbd{A ?}, you can then further limit with | ||
| 3345 | @kbd{A / c}, which will then limit to groups with cached articles, | ||
| 3346 | giving you the groups that have both dormant articles and cached | ||
| 3347 | articles. | ||
| 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 | ||
| 4497 | Try to fetch the @acronym{FAQ} for the current group | ||
| 4498 | (@code{gnus-group-fetch-faq}). Gnus will try to get the @acronym{FAQ} | ||
| 4499 | from @code{gnus-group-faq-directory}, which is usually a directory on | ||
| 4500 | a remote machine. This variable can also be a list of directories. | ||
| 4501 | In that case, giving a prefix to this command will allow you to choose | ||
| 4502 | between the various sites. @code{ange-ftp} (or @code{efs}) will be | ||
| 4503 | used for fetching the file. | ||
| 4504 | |||
| 4505 | If fetching from the first site is unsuccessful, Gnus will attempt to go | ||
| 4506 | through @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 | |||
| 4636 | the @code{sieve} group parameter (@pxref{Group Parameters}) to specify | 4627 | the @code{sieve} group parameter (@pxref{Group Parameters}) to specify |
| 4637 | sieve rules that should apply to each group. Gnus provides two | 4628 | sieve rules that should apply to each group. Gnus provides two |
| 4638 | commands to translate all these group parameters into a proper Sieve | 4629 | commands to translate all these group parameters into a proper Sieve |
| 4639 | script that can be transfered to the server somehow. | 4630 | script 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 | ||
| 6169 | Articles that according to the server haven't been shown to the user | ||
| 6170 | before are marked with a @samp{N} in the second column | ||
| 6171 | (@code{gnus-recent-mark}). Note that not all servers support this | ||
| 6172 | mark, 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 |
| 6177 | Articles that haven't been seen before in Gnus by the user are marked | 6160 | Articles that haven't been seen before in Gnus by the user are marked |
| 6178 | with a @samp{.} in the second column (@code{gnus-unseen-mark}). | 6161 | with a @samp{.} in the second column (@code{gnus-unseen-mark}). |
| 6179 | Compare 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. | |||
| 7671 | This implies that it's not possible to have more than one article buffer | 7653 | This implies that it's not possible to have more than one article buffer |
| 7672 | in a group at a time. But sometimes you might want to display all the | 7654 | in a group at a time. But sometimes you might want to display all the |
| 7673 | latest emails from your mother, your father, your aunt, your uncle and | 7655 | latest emails from your mother, your father, your aunt, your uncle and |
| 7674 | your 17 cousins to coordinate the next christmas party. | 7656 | your 17 cousins to coordinate the next Christmas party. |
| 7675 | 7657 | ||
| 7676 | That's where sticky articles come in handy. A sticky article buffer | 7658 | That's where sticky articles come in handy. A sticky article buffer |
| 7677 | basically is a normal article buffer, but it won't be reused when you | 7659 | basically 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. | |||
| 8355 | Files with a @acronym{MIME} type matching this variable won't be viewed. | 8337 | Files with a @acronym{MIME} type matching this variable won't be viewed. |
| 8356 | Note that Gnus tries to guess what type the file is based on the name. | 8338 | Note 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 |
| 8358 | kludgey. | 8340 | kludgy. |
| 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. | |||
| 8998 | Translate many non-@acronym{ASCII} characters into their | 8980 | Translate 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}). |
| 9000 | This is mostly useful if you're on a terminal that has a limited font | 8982 | This is mostly useful if you're on a terminal that has a limited font |
| 9001 | and does't show accented characters, ``advanced'' punctuation, and the | 8983 | and doesn't show accented characters, ``advanced'' punctuation, and the |
| 9002 | like. For instance, @samp{»} is tranlated into @samp{>>}, and so on. | 8984 | like. 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) |
| 11659 | Prompt for a file name, replace the @acronym{MIME} object with an | 11641 | Prompt for a file name, replace the @acronym{MIME} object with an |
| 11660 | external body refering to the file via the message/external-body | 11642 | external 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 | ||
| 11812 | To use this, make sure that you have @code{w3m} and @code{curl} | 11794 | To use this, make sure that you have @code{w3m} and @code{curl} |
| 11813 | installed. If you have, then Gnus should display @acronym{HTML} | 11795 | installed. If you have, then Gnus should display @acronym{HTML} |
| 11814 | automatically. | 11796 | automatically. |
| 11815 | 11797 | ||
| 11816 | 11798 | ||
| 11817 | 11799 | ||
| @@ -12544,8 +12526,8 @@ mode buffers. | |||
| 12544 | Gnus provides a few different methods for storing the mail and news you | 12526 | Gnus provides a few different methods for storing the mail and news you |
| 12545 | send. The default method is to use the @dfn{archive virtual server} to | 12527 | send. The default method is to use the @dfn{archive virtual server} to |
| 12546 | store the messages. If you want to disable this completely, the | 12528 | store 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 |
| 12548 | is the default. | 12530 | default is "sent.%Y-%m", which gives you one archive group per month. |
| 12549 | 12531 | ||
| 12550 | For archiving interesting messages in a group you read, see the | 12532 | For 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. | |||
| 12622 | When a key ``matches'', the result is used. | 12604 | When a key ``matches'', the result is used. |
| 12623 | 12605 | ||
| 12624 | @item @code{nil} | 12606 | @item @code{nil} |
| 12625 | No message archiving will take place. This is the default. | 12607 | No message archiving will take place. |
| 12626 | @end table | 12608 | @end table |
| 12627 | 12609 | ||
| 12628 | Let's illustrate: | 12610 | Let's illustrate: |
| @@ -12781,8 +12763,8 @@ from date id references chars lines xref extra. | |||
| 12781 | In the case of a string value, if the @code{match} is a regular | 12763 | In the case of a string value, if the @code{match} is a regular |
| 12782 | expression, a @samp{gnus-match-substitute-replacement} is proceed on | 12764 | expression, a @samp{gnus-match-substitute-replacement} is proceed on |
| 12783 | the value to replace the positional parameters @samp{\@var{n}} by the | 12765 | the value to replace the positional parameters @samp{\@var{n}} by the |
| 12784 | corresponding parenthetical matches (see @xref{Replacing the Text that | 12766 | corresponding parenthetical matches (see @xref{Replacing Match,, |
| 12785 | Matched, , Text Replacement, elisp, The Emacs Lisp Reference Manual}.) | 12767 | Replacing 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 |
| 13786 | Opens a connection to a server over a @dfn{secure} channel. To use | 13768 | Opens a connection to a server over a @dfn{secure} channel. To use |
| 13787 | this you must have @uref{http://www.gnu.org/software/gnutls/, GNUTLS} | 13769 | this you must have @uref{http://www.gnu.org/software/gnutls/, GnuTLS} |
| 13788 | installed. You then define a server as follows: | 13770 | installed. 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 | |||
| 14245 | servers that doesn't support that command. | 14227 | servers that doesn't support that command. |
| 14246 | 14228 | ||
| 14247 | @item nnimap-streaming | 14229 | @item nnimap-streaming |
| 14248 | Virtually all @code{IMAP} server support fast streaming of data. If | 14230 | Virtually all @acronym{IMAP} server support fast streaming of data. |
| 14249 | you have problems connecting to the server, try setting this to @code{nil}. | 14231 | If 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 |
| 14252 | If non-@code{nil}, fetch partial articles from the server. If set to | 14235 | If 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 | |||
| 14254 | matching types will be fetched. For instance, @samp{"text/"} will | 14237 | matching types will be fetched. For instance, @samp{"text/"} will |
| 14255 | fetch all textual parts, while leaving the rest on the server. | 14238 | fetch all textual parts, while leaving the rest on the server. |
| 14256 | 14239 | ||
| 14240 | @item nnimap-record-commands | ||
| 14241 | If 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. | |||
| 14769 | A script to be run before fetching the mail. The syntax is the same as | 14756 | A script to be run before fetching the mail. The syntax is the same as |
| 14770 | the @code{:program} keyword. This can also be a function to be run. | 14757 | the @code{:program} keyword. This can also be a function to be run. |
| 14771 | 14758 | ||
| 14759 | One 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 |
| 14773 | A script to be run after fetching the mail. The syntax is the same as | 14772 | A script to be run after fetching the mail. The syntax is the same as |
| 14774 | the @code{:program} keyword. This can also be a function to be run. | 14773 | the @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 |
| 15059 | All new mail files will get this file mode. The default is 384. | 15058 | All 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 | |||
| 16697 | format to which mail was converted, primarily involving creating a | 16696 | format to which mail was converted, primarily involving creating a |
| 16698 | spool-file-like entity with a scheme for inserting Babyl-specific | 16697 | spool-file-like entity with a scheme for inserting Babyl-specific |
| 16699 | headers and status bits above the top of each message in the file. | 16698 | headers and status bits above the top of each message in the file. |
| 16700 | Rmail was Emacs' first mail reader, it was written by Richard Stallman, | 16699 | Rmail was Emacs's first mail reader, it was written by Richard Stallman, |
| 16701 | and Stallman came out of that TOPS/Babyl environment, so he wrote Rmail | 16700 | and Stallman came out of that TOPS/Babyl environment, so he wrote Rmail |
| 16702 | to understand the mail files folks already had in existence. Gnus (and | 16701 | to understand the mail files folks already had in existence. Gnus (and |
| 16703 | VM, for that matter) continue to support this format because it's | 16702 | VM, 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 |
| 18008 | summary line formats. @code{D} corresponds to a formatted time string | 18007 | summary line formats. @code{D} corresponds to a formatted time string |
| 18009 | for the next occurrence of the event (e.g. ``Sat, Sep 22 01, 12:00''), | 18008 | for the next occurrence of the event (e.g. ``Sat, Sep 22 01, 12:00''), |
| 18010 | while @code{d} corresponds to an approximative remaining time until the | 18009 | while @code{d} corresponds to an approximate remaining time until the |
| 18011 | next occurrence of the event (e.g. ``in 6 months, 1 week''). | 18010 | next 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 |
| 18114 | messsages for real. This means for instance that you can give | 18113 | messages for real. This means for instance that you can give |
| 18115 | appointments to anybody (provided they use Gnus and @code{nndiary}) by | 18114 | appointments to anybody (provided they use Gnus and @code{nndiary}) by |
| 18116 | sending the diary message to them as well. | 18115 | sending 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 |
| 18255 | Agent (@pxref{Server Agent Commands}), or @kbd{J r} on automatically | 18254 | Agent (@pxref{Server Agent Commands}), or @kbd{J r} on automatically |
| 18256 | added servers you do not wish to have covered by the Agent. By default, | 18255 | added servers you do not wish to have covered by the Agent. By default, |
| 18257 | all @code{nntp} and @code{nnimap} servers in @code{gnus-select-method} and | 18256 | no servers are agentized. |
| 18258 | @code{gnus-secondary-select-methods} are agentized. | ||
| 18259 | 18257 | ||
| 18260 | @item | 18258 | @item |
| 18261 | Decide on download policy. It's fairly simple once you decide whether | 18259 | Decide 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 | |||
| 19281 | as running @kbd{J a} on the servers (@pxref{Server Agent Commands}). | 19279 | as running @kbd{J a} on the servers (@pxref{Server Agent Commands}). |
| 19282 | If the file exist, you must manage the servers manually by adding or | 19280 | If the file exist, you must manage the servers manually by adding or |
| 19283 | removing them, this variable is only applicable the first time you | 19281 | removing them, this variable is only applicable the first time you |
| 19284 | start Gnus. The default is @samp{(nntp nnimap)}. | 19282 | start 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.) | |||
| 20066 | This will ensure that you can raise/lower the score of an entire thread, | 20064 | This will ensure that you can raise/lower the score of an entire thread, |
| 20067 | even though some articles in the thread may not have complete | 20065 | even 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 |
| 20069 | undeterministic scores of the articles in the thread. (Using this match | 20067 | nondeterministic scores of the articles in the thread. (Using this match |
| 20070 | key will lead to creation of @file{ADAPT} files.) | 20068 | key 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 | ||
| 21085 | This chapter describes tools for searching groups and servers for | 21083 | This chapter describes tools for searching groups and servers for |
| 21086 | articles matching a query and then retrieving those articles. Gnus | 21084 | articles matching a query and then retrieving those articles. Gnus |
| 21087 | provides a simpler mechanism for searching through articles in a summary buffer | 21085 | provides a simpler mechanism for searching through articles in a summary buffer |
| 21088 | to find those matching a pattern. @xref{Searching for Articles}. | 21086 | to 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 | ||
| 21117 | The @code{nnimap} and @code{gmane} search engines should work with no | 21115 | The @code{nnimap} and @code{gmane} search engines should work with no |
| 21118 | configuration. Other engines require a local index that needs to be | 21116 | configuration. Other engines require a local index that needs to be |
| 21119 | created and maintained outside of Gnus. | 21117 | created 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 | |||
| 21156 | features. You can access these special features by giving a prefix-arg | 21154 | features. You can access these special features by giving a prefix-arg |
| 21157 | to @code{gnus-group-make-nnir-group}. If you are searching multiple | 21155 | to @code{gnus-group-make-nnir-group}. If you are searching multiple |
| 21158 | groups with different search engines you will be prompted for the | 21156 | groups with different search engines you will be prompted for the |
| 21159 | special search features for each engine separately. | 21157 | special 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 | ||
| 21225 | The @code{imap} engine requires no configuration. | 21223 | The @code{imap} engine requires no configuration. |
| 21226 | 21224 | ||
| 21227 | Queries using the @code{imap} engine follow a simple query language. | 21225 | Queries using the @code{imap} engine follow a simple query language. |
| 21228 | The search is always case-insensitive and supports the following | 21226 | The search is always case-insensitive and supports the following |
| 21229 | features (inspired by the Google search input language): | 21227 | features (inspired by the Google search input language): |
| 21230 | 21228 | ||
| @@ -21234,10 +21232,10 @@ features (inspired by the Google search input language): | |||
| 21234 | AND, OR, and NOT are supported, and parentheses can be used to control | 21232 | AND, OR, and NOT are supported, and parentheses can be used to control |
| 21235 | operator precedence, e.g. (emacs OR xemacs) AND linux. Note that | 21233 | operator precedence, e.g. (emacs OR xemacs) AND linux. Note that |
| 21236 | operators must be written with all capital letters to be | 21234 | operators must be written with all capital letters to be |
| 21237 | recognised. Also preceding a term with a - sign is equivalent to NOT | 21235 | recognized. Also preceding a term with a - sign is equivalent to NOT |
| 21238 | term. | 21236 | term. |
| 21239 | 21237 | ||
| 21240 | @item Automatic AND queries | 21238 | @item Automatic AND queries |
| 21241 | If you specify multiple words then they will be treated as an AND | 21239 | If you specify multiple words then they will be treated as an AND |
| 21242 | expression intended to match all components. | 21240 | expression 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 | ||
| 21273 | The @code{gmane} engine requires no configuration. | 21271 | The @code{gmane} engine requires no configuration. |
| 21274 | 21272 | ||
| 21275 | Gmane queries follow a simple query language: | 21273 | Gmane queries follow a simple query language: |
| 21276 | 21274 | ||
| @@ -21279,16 +21277,16 @@ Gmane queries follow a simple query language: | |||
| 21279 | AND, OR, NOT (or AND NOT), and XOR are supported, and brackets can be | 21277 | AND, OR, NOT (or AND NOT), and XOR are supported, and brackets can be |
| 21280 | used to control operator precedence, e.g. (emacs OR xemacs) AND linux. | 21278 | used to control operator precedence, e.g. (emacs OR xemacs) AND linux. |
| 21281 | Note that operators must be written with all capital letters to be | 21279 | Note that operators must be written with all capital letters to be |
| 21282 | recognised. | 21280 | recognized. |
| 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 |
| 21288 | The search engine converts all text to utf-8, so searching should work | 21286 | The search engine converts all text to utf-8, so searching should work |
| 21289 | in any language. | 21287 | in any language. |
| 21290 | 21288 | ||
| 21291 | @item Stopwords | 21289 | @item Stopwords |
| 21292 | Common English words (like 'the' and 'a') are ignored by default. You | 21290 | Common English words (like 'the' and 'a') are ignored by default. You |
| 21293 | can override this by prefixing such words with a + (e.g. +the) or | 21291 | can override this by prefixing such words with a + (e.g. +the) or |
| 21294 | enclosing the word in quotes (e.g. "the"). | 21292 | enclosing 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 | ||
| 21305 | FIXEM: Say something more here. | 21303 | FIXME: Say something more here. |
| 21306 | 21304 | ||
| 21307 | Documentation for swish++ may be found at the swish++ sourceforge page: | 21305 | Documentation 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 | ||
| 21328 | FIXEM: Say something more here. | 21326 | FIXME: Say something more here. |
| 21329 | 21327 | ||
| 21330 | Documentation for swish-e may be found at the swish-e homepage | 21328 | Documentation 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}. | |||
| 21351 | Using the namazu engine requires creating and maintaining index files. | 21349 | Using the namazu engine requires creating and maintaining index files. |
| 21352 | One directory should contain all the index files, and nnir must be told | 21350 | One directory should contain all the index files, and nnir must be told |
| 21353 | where to find them by setting the @code{nnir-namazu-index-directory} | 21351 | where to find them by setting the @code{nnir-namazu-index-directory} |
| 21354 | variable. | 21352 | variable. |
| 21355 | 21353 | ||
| 21356 | To work correctly the @code{nnir-namazu-remove-prefix} variable must | 21354 | To work correctly the @code{nnir-namazu-remove-prefix} variable must |
| 21357 | also be correct. This is the prefix to remove from each file name | 21355 | also be correct. This is the prefix to remove from each file name |
| @@ -21414,7 +21412,7 @@ this command periodically, say every four hours. | |||
| 21414 | This engine is obsolete. | 21412 | This 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 | |||
| 21918 | automatically set for the original article. This is exactly what | 21916 | automatically set for the original article. This is exactly what |
| 21919 | @emph{marks propagation} is about. | 21917 | @emph{marks propagation} is about. |
| 21920 | 21918 | ||
| 21921 | Marks propagation is deactivated by default. You can activate it for a | 21919 | Marks propagation is inactive by default. You can activate it for a |
| 21922 | certain @code{nnmairix} group with | 21920 | certain @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 |
| 21924 | p}). This function will warn you if you try to use it with your default | 21922 | p}). 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 |
| 22075 | have to explicitly set it if you use a @code{nnmaildir} server just for | 22073 | have to explicitly set it if you use a @code{nnmaildir} server just for |
| 22076 | mairix.) | 22074 | mairix.) |
| @@ -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 |
| 22268 | Require confirmation before exiting Gnus. This variable is @code{t} by | 22266 | If non-@code{nil}, require a confirmation when exiting Gnus. If |
| 22269 | default. | 22267 | @code{quiet}, update any active summary buffers automatically without |
| 22268 | querying. 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 | ||
| 25477 | Write @code{spam-blackbox-register-routine} and | 25476 | Write @code{spam-blackbox-register-routine} and |
| 25478 | @code{spam-blackbox-unregister-routine} using the bogofilter | 25477 | @code{spam-blackbox-unregister-routine} using the bogofilter |
| 25479 | register/unregister routines as a start, or other restister/unregister | 25478 | register/unregister routines as a start, or other register/unregister |
| 25480 | routines more appropriate to Blackbox, if Blackbox can | 25479 | routines more appropriate to Blackbox, if Blackbox can |
| 25481 | register/unregister spam and ham. | 25480 | register/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. | |||
| 26442 | Find a proper released version of Gnus and snuggle up to that instead. | 26440 | Find 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 | |||
| 26449 | In addition to the versions of Gnus which have had their releases | ||
| 26450 | coordinated by Lars, one major development has been Semi-gnus from | ||
| 26451 | Japan. It's based on a library called @acronym{SEMI}, which provides | ||
| 26452 | @acronym{MIME} capabilities. | ||
| 26453 | |||
| 26454 | These Gnusae are based mainly on Gnus 5.6 and Pterodactyl Gnus. | ||
| 26455 | Collectively, they are called ``Semi-gnus'', and different strains are | ||
| 26456 | called T-gnus, ET-gnus, Nana-gnus and Chaos. These provide powerful | ||
| 26457 | @acronym{MIME} and multilingualization things, especially important for | ||
| 26458 | Japanese 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. | |||
| 26778 | Ilja Weis---@file{gnus-topic.el}. | 26760 | Ilja Weis---@file{gnus-topic.el}. |
| 26779 | 26761 | ||
| 26780 | @item | 26762 | @item |
| 26781 | Steven L. Baur---lots and lots and lots of bugs detections and fixes. | 26763 | Steven L. Baur---lots and lots and lots of bug detection and fixes. |
| 26782 | 26764 | ||
| 26783 | @item | 26765 | @item |
| 26784 | Vladimir Alexiev---the refcard and reference booklets. | 26766 | Vladimir Alexiev---the refcard and reference booklets. |
| @@ -27447,7 +27429,7 @@ considered home score and adapt files (@pxref{Home Score File}) have | |||
| 27447 | been added. | 27429 | been 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 |
| 27451 | Server Internals}). | 27433 | Server 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 |
| 27846 | Improved anti-spam features. | 27828 | Improved anti-spam features. |
| @@ -27993,10 +27975,6 @@ non-@code{nil}, the summary buffer is shown and updated as it's being | |||
| 27993 | built. | 27975 | built. |
| 27994 | 27976 | ||
| 27995 | @item | 27977 | @item |
| 27996 | The new @code{recent} mark @samp{.} indicates newly arrived messages (as | ||
| 27997 | opposed to old but unread messages). | ||
| 27998 | |||
| 27999 | @item | ||
| 28000 | Gnus supports RFC 2369 mailing list headers, and adds a number of | 27978 | Gnus supports RFC 2369 mailing list headers, and adds a number of |
| 28001 | related commands in mailing list groups. @xref{Mailing List}. | 27979 | related 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 |
| 28586 | Gnus will always use one method (and back end) as the @dfn{native}, or | 28564 | Gnus will always use one method (and back end) as the @dfn{native}, or |
| 28587 | default, way of getting news. | 28565 | default, way of getting news. Groups from the native select method |
| 28566 | have names like @samp{gnu.emacs.gnus}. | ||
| 28588 | 28567 | ||
| 28589 | @item foreign | 28568 | @item foreign |
| 28590 | @cindex foreign | 28569 | @cindex foreign |
| 28591 | You can also have any number of foreign groups active at the same time. | 28570 | You can also have any number of foreign groups active at the same |
| 28592 | These are groups that use non-native non-secondary back ends for getting | 28571 | time. These are groups that use non-native non-secondary back ends |
| 28593 | news. | 28572 | for 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 |
| 28597 | Secondary back ends are somewhere half-way between being native and being | 28577 | Secondary back ends are somewhere half-way between being native and |
| 28598 | foreign, but they mostly act like they are native. | 28578 | being foreign, but they mostly act like they are native, but they, too |
| 28579 | have 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 |
| 29101 | Returns the group info list for @var{group}. | 29082 | Returns 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 |
| 29110 | The active entry for @var{group}. | 29091 | The active entry (i.e., a cons cell containing the lowest and highest |
| 29092 | article 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 |
| 29145 | Says whether two virtual servers are equal. | 29127 | Says whether two virtual servers are essentially equal. For instance, |
| 29128 | two virtual servers may have server parameters in different order, but | ||
| 29129 | this 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 |
| 29161 | Returns the parameter list of @var{group}. If given a second parameter, | 29145 | Returns the parameter list of @var{group} (@pxref{Group Parameters}). |
| 29162 | returns the value of that parameter for @var{group}. | 29146 | If 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. | |||
| 29572 | marks (preserving all marks not mentioned). @var{mark} is a list of | 29557 | marks (preserving all marks not mentioned). @var{mark} is a list of |
| 29573 | marks; where each mark is a symbol. Currently used marks are | 29558 | marks; 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 |
| 29577 | possible, not limit itself to these. | 29562 | itself to these. |
| 29578 | 29563 | ||
| 29579 | Given contradictory actions, the last action in the list should be the | 29564 | Given contradictory actions, the last action in the list should be the |
| 29580 | effective one. That is, if your action contains a request to add the | 29565 | effective 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 | ||
| 30051 | Score files are meant to be easily parseable, but yet extremely | 30036 | Score files are meant to be easily parsable, but yet extremely |
| 30052 | mallable. It was decided that something that had the same read syntax | 30037 | malleable. It was decided that something that had the same read syntax |
| 30053 | as an Emacs Lisp list would fit that spec. | 30038 | as an Emacs Lisp list would fit that spec. |
| 30054 | 30039 | ||
| 30055 | Here's a typical score file: | 30040 | Here'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. | |||
| 22 | This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE | 22 | This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE |
| 23 | @value{VERSION}. | 23 | @value{VERSION}. |
| 24 | 24 | ||
| 25 | Copyright @copyright{} 1999-2011 Free Software Foundation, Inc. | 25 | Copyright @copyright{} 1999-2012 Free Software Foundation, Inc. |
| 26 | 26 | ||
| 27 | @quotation | 27 | @quotation |
| 28 | Permission is granted to copy, distribute and/or modify this document | 28 | Permission is granted to copy, distribute and/or modify this document |
| @@ -62,7 +62,7 @@ developing GNU and promoting software freedom.'' | |||
| 62 | IDLWAVE is a package which supports editing source code written in the | 62 | IDLWAVE is a package which supports editing source code written in the |
| 63 | Interactive Data Language (IDL), and running IDL as an inferior shell. | 63 | Interactive 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 | ||
| 86 | Getting Started (Tutorial) | 86 | Getting 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 | ||
| 92 | The IDLWAVE Major Mode | 92 | The IDLWAVE Major Mode |
| 93 | 93 | ||
| @@ -107,7 +107,7 @@ The IDLWAVE Major Mode | |||
| 107 | Code Formatting | 107 | Code 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 | ||
| 116 | Online Help | 116 | Online Help |
| 117 | 117 | ||
| 118 | * Help with HTML Documentation:: | 118 | * Help with HTML Documentation:: |
| 119 | * Help with Source:: | 119 | * Help with Source:: |
| 120 | 120 | ||
| 121 | Completion | 121 | Completion |
| 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 | ||
| 144 | Debugging IDL Programs | 144 | Debugging 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 | ||
| 153 | Sources of Routine Info | 153 | Sources 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 | ||
| 161 | Catalogs | 161 | Catalogs |
| 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 | |||
| 193 | what IDLWAVE does: | 193 | what IDLWAVE does: |
| 194 | 194 | ||
| 195 | @itemize @bullet | 195 | @itemize @bullet |
| 196 | @item | 196 | @item |
| 197 | Smart code indentation and automatic-formatting. | 197 | Smart code indentation and automatic-formatting. |
| 198 | @item | 198 | @item |
| 199 | Three level syntax highlighting support. | 199 | Three level syntax highlighting support. |
| 200 | @item | 200 | @item |
| 201 | Context-sensitive display of calling sequences and keywords for more | 201 | Context-sensitive display of calling sequences and keywords for more |
| 202 | than 1000 native IDL routines, extendible to any additional number of | 202 | than 1000 native IDL routines, extensible to any additional number of |
| 203 | local routines, and already available with many pre-scanned libraries. | 203 | local routines, and already available with many pre-scanned libraries. |
| 204 | @item | 204 | @item |
| 205 | Fast, context-sensitive online HTML help, or source-header help for | 205 | Fast, 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 |
| 420 | end | 420 | end |
| 421 | 421 | ||
| 422 | function weekday,day,month,year | 422 | function 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 |
| 426 | end | 426 | end |
| 427 | 427 | ||
| 428 | pro plot_wday,day,month | 428 | pro 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 | |||
| 669 | tutorial. This was the invoked using @kbd{C-c ?}, and displays | 669 | tutorial. This was the invoked using @kbd{C-c ?}, and displays |
| 670 | information about the IDL routine near the cursor position. Wouldn't it | 670 | information about the IDL routine near the cursor position. Wouldn't it |
| 671 | be nice to have the same kind of information available for your own | 671 | be nice to have the same kind of information available for your own |
| 672 | routines and for the huge amount of code in major libraries like JHUPL | 672 | routines and for the huge amount of code in major libraries like JHUAPL |
| 673 | or the IDL-Astro library? In many cases, you may already have this | 673 | or the IDL-Astro library? In many cases, you may already have this |
| 674 | information. Files named @file{.idlwave_catalog} in library directories | 674 | information. Files named @file{.idlwave_catalog} in library directories |
| 675 | contain scanned information on the routines in that directory; many | 675 | contain 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 | |||
| 797 | routine. @xref{Actions}, for information how to impose additional | 797 | routine. @xref{Actions}, for information how to impose additional |
| 798 | formatting conventions on foreign code. | 798 | formatting conventions on foreign code. |
| 799 | 799 | ||
| 800 | @defopt idlwave-main-block-indent (@code{2}) | 800 | @defopt idlwave-main-block-indent (@code{2}) |
| 801 | Extra indentation for the main block of code. That is the block between | 801 | Extra indentation for the main block of code. That is the block between |
| 802 | the FUNCTION/PRO statement and the END statement for that program | 802 | the FUNCTION/PRO statement and the END statement for that program |
| 803 | unit. | 803 | unit. |
| @@ -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}) |
| 1000 | Non-@code{nil} means use last match on line for | 1000 | Non-@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 |
| 1028 | Items which should be fontified on the default fontification level | 1028 | Items which should be fontified on the default fontification level |
| 1029 | 2. | 1029 | 2. |
| 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), | |||
| 1104 | On positions 1,2 and 8, information about the @samp{plot} procedure will | 1104 | On positions 1,2 and 8, information about the @samp{plot} procedure will |
| 1105 | be shown. On positions 3,4, and 7, the @samp{alog} function will be | 1105 | be shown. On positions 3,4, and 7, the @samp{alog} function will be |
| 1106 | described, while positions 5 and 6 will investigate the @samp{sin} | 1106 | described, while positions 5 and 6 will investigate the @samp{sin} |
| 1107 | function. | 1107 | function. |
| 1108 | 1108 | ||
| 1109 | When you ask for routine information about an object method, and the | 1109 | When you ask for routine information about an object method, and the |
| 1110 | method exists in several classes, IDLWAVE queries for the class of the | 1110 | method 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 |
| 1200 | button on the @i{Usage:} line will access the help for the | 1200 | button on the @i{Usage:} line will access the help for the |
| 1201 | routine (@pxref{Online Help}). | 1201 | routine (@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. | |||
| 1393 | Relative directory of the system-supplied HTML help directory, | 1393 | Relative directory of the system-supplied HTML help directory, |
| 1394 | considered with respect to @code{idlwave-system-directory}. Relevant | 1394 | considered with respect to @code{idlwave-system-directory}. Relevant |
| 1395 | for IDL 6.2 and greater. Should not change. | 1395 | for 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/} |
| 1399 | The directory where the @file{idl_html_help} HTML directory live. | 1399 | The 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 | |||
| 1580 | corresponding source code or DocLib header will be used as the help | 1580 | corresponding source code or DocLib header will be used as the help |
| 1581 | text. | 1581 | text. |
| 1582 | 1582 | ||
| 1583 | @cindex Completion, cancelling | 1583 | @cindex Completion, canceling |
| 1584 | @cindex Cancelling completion | 1584 | @cindex Canceling completion |
| 1585 | Completion is not a blocking operation --- you are free to continue | 1585 | Completion is not a blocking operation --- you are free to continue |
| 1586 | editing, enter commands, or simply ignore the @file{*Completions*} | 1586 | editing, enter commands, or simply ignore the @file{*Completions*} |
| 1587 | buffer during a completion operation. If, however, the most recent | 1587 | buffer 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 |
| 1682 | default for all methods (not recommended), or selectively for very | 1682 | default for all methods (not recommended), or selectively for very |
| 1683 | common methods for which the number of completing keywords would be too | 1683 | common methods for which the number of completing keywords would be too |
| 1684 | large (e.g. @code{Init,SetProperty,GetProperty}). | 1684 | large (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 | |||
| 1729 | determine the class of the object. If this query is successful, the | 1729 | determine the class of the object. If this query is successful, the |
| 1730 | class found will be used to select appropriate completions, routine | 1730 | class found will be used to select appropriate completions, routine |
| 1731 | info, or help. If unsuccessful, information from all known classes will | 1731 | info, or help. If unsuccessful, information from all known classes will |
| 1732 | be used (as in the buffer). | 1732 | be 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. | |||
| 1772 | Non-@code{nil} means consider inheritance during completion, online help etc. | 1772 | Non-@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 |
| 1776 | A list of regular expressions to match methods for which simple | 1776 | A list of regular expressions to match methods for which simple |
| 1777 | class-driven keyword inheritance will be used for Completion. | 1777 | class-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, | |||
| 1802 | simply add the following to your @file{.emacs}: | 1802 | simply 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 |
| 2416 | window, configure the variable | 2416 | window, configure the variable |
| 2417 | @code{idlwave-shell-use-dedicated-frame}. | 2417 | @code{idlwave-shell-use-dedicated-frame}. |
| 2418 | 2418 | ||
| 2419 | To launch a quick IDLWAVE shell directly from a shell prompt without | 2419 | To launch a quick IDLWAVE shell directly from a shell prompt without |
| 2420 | an IDLWAVE buffer (e.g., as a replacement for running inside an | 2420 | an 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. | |||
| 2471 | Unless it's an absolute path, it goes in | 2471 | Unless 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}) |
| 2476 | Non-@code{nil} means IDLWAVE should use a special frame to display the | 2476 | Non-@code{nil} means IDLWAVE should use a special frame to display the |
| 2477 | shell buffer. | 2477 | shell 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 | |||
| 2795 | stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d | 2795 | stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d |
| 2796 | C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled | 2796 | C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled |
| 2797 | and re-enabled: @kbd{C-c C-d C-\} | 2797 | and 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 | ||
| 2800 | Breakpoint lines are highlighted or indicated with an icon in the source | 2800 | Breakpoint lines are highlighted or indicated with an icon in the source |
| 2801 | code (different icons for conditional, after, and other break types). | 2801 | code (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 | |||
| 2804 | specify. IDLWAVE queries the shell for the actual breakpoint location | 2804 | specify. IDLWAVE queries the shell for the actual breakpoint location |
| 2805 | which was set, so the exact line you specify may not be marked. You can | 2805 | which was set, so the exact line you specify may not be marked. You can |
| 2806 | re-sync the breakpoint list and update the display at any time (e.g., if | 2806 | re-sync the breakpoint list and update the display at any time (e.g., if |
| 2807 | you add or remove some on the command line) using @kbd{C-c C-d C-l}. | 2807 | you add or remove some on the command line) using @kbd{C-c C-d C-l}. |
| 2808 | 2808 | ||
| 2809 | In recent IDLWAVE versions, the breakpoint line is highlighted when the | 2809 | In recent IDLWAVE versions, the breakpoint line is highlighted when the |
| 2810 | mouse is moved over it, and a tooltip pops up describing the break | 2810 | mouse 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 |
| 2915 | In order to compile the current buffer under the IDLWAVE shell, press | 2915 | In 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 |
| 2917 | current buffer and then sends the command @samp{.run path/to/file} to the | 2917 | current buffer and then sends the command @samp{.run path/to/file} to the |
| 2918 | shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in | 2918 | shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in |
| 2919 | which case the most recently compiled buffer will be saved and | 2919 | which case the most recently compiled buffer will be saved and |
| 2920 | re-compiled. | 2920 | re-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) |
| 3082 | Default color of the stopped line overlay when in electric debug mode. | 3082 | Default 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 |
| 3086 | The face to use for the stopped line. Defaults to a face similar to the | 3086 | The face to use for the stopped line. Defaults to a face similar to the |
| 3087 | modeline, with color @code{idlwave-shell-electric-stop-color}. | 3087 | modeline, 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 |
| 3191 | The face for @code{idlwave-shell-output-overlay}. | 3191 | The face for @code{idlwave-shell-output-overlay}. |
| 3192 | Allows to choose the font, color and other properties for the most | 3192 | Allows to choose the font, color and other properties for the most |
| 3193 | recent output of IDL when examining an expression." | 3193 | recent 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}) |
| 3197 | If non-@code{nil}, re-direct the output of examine commands to a special | 3197 | If 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 |
| 3265 | highlighted expression. Pressing @key{f10} will give the type string, | 3265 | highlighted 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 | |||
| 3297 | everything, modernized IDLWAVE with many new features, and developed the | 3297 | everything, modernized IDLWAVE with many new features, and developed the |
| 3298 | manual. | 3298 | manual. |
| 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 |
| 3302 | maintainer, as of version 4.10, helped shape object method completion | 3302 | maintainer, as of version 4.10, helped shape object method completion |
| 3303 | and most new features introduced in versions 4.x, and introduced many | 3303 | and 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. | |||
| 3382 | several places: | 3382 | several 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 |
| 3387 | of such routines is not available, but instead are learned about through | 3387 | of such routines is not available, but instead are learned about through |
| 3388 | the IDL documentation. | 3388 | the IDL documentation. |
| @@ -3390,7 +3390,7 @@ the IDL documentation. | |||
| 3390 | Routines which are @emph{part of the current program}, are defined in a | 3390 | Routines which are @emph{part of the current program}, are defined in a |
| 3391 | file explicitly compiled by the user. This file may or may not be | 3391 | file explicitly compiled by the user. This file may or may not be |
| 3392 | located on the IDL search path. | 3392 | located 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 |
| 3395 | path. When a library routine is called for the first time, IDL will | 3395 | path. When a library routine is called for the first time, IDL will |
| 3396 | find the source file and compile it dynamically. A special sub-category | 3396 | find 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. | |||
| 3428 | Formerly, this list was created by scanning the IDL manuals to produce | 3428 | Formerly, this list was created by scanning the IDL manuals to produce |
| 3429 | the file @file{idlw-rinfo.el}. | 3429 | the file @file{idlw-rinfo.el}. |
| 3430 | 3430 | ||
| 3431 | @item | 3431 | @item |
| 3432 | IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session | 3432 | IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session |
| 3433 | for routine definitions. This is done automatically when routine | 3433 | for routine definitions. This is done automatically when routine |
| 3434 | information or completion is first requested by the user. Each new | 3434 | information 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 |
| 3638 | installation, as you do for library catalogs. | 3638 | installation, 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 |
| 3640 | privileges. | 3640 | privileges. |
| 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 | |||
| 3752 | on the load path is routine info display (@pxref{Routine Info}). | 3752 | on 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 | |||
| 4066 | sure you check the following things: | 4066 | sure 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 |
| 4070 | file under the names @file{idlwave.tar.gz}. | 4070 | file 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 |
| 4072 | instead. | 4072 | instead. |
| @@ -4102,7 +4102,7 @@ customize the variable @code{idlwave-shell-automatic-electric-debug} | |||
| 4102 | if you prefer not to enter electric debug on breakpoints@dots{} but | 4102 | if you prefer not to enter electric debug on breakpoints@dots{} but |
| 4103 | you really should try it before you disable it! You can also | 4103 | you really should try it before you disable it! You can also |
| 4104 | customize this variable to enter debug mode when errors are | 4104 | customize this variable to enter debug mode when errors are |
| 4105 | encountered. | 4105 | encountered. |
| 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 |
| 4108 | file or directory, idl} when attempting to start the IDL shell.} | 4108 | file 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 | |||
| 4141 | place, and this is the source of the error. If you recompile (or just | 4141 | place, 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. |
| 4143 | Another option is to recompile the @file{idlw*.el} files by hand using | 4143 | Another 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 |
| 4147 | windows on my desktop.} | 4147 | windows 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. |
| 4194 | You need to make sure your Emacs @emph{load-path} contains the directory | 4194 | You need to make sure your Emacs @emph{load-path} contains the directory |
| 4195 | where IDLWAVE is installed (@file{/usr/local/share/emacs/site-lisp}, by | 4195 | where IDLWAVE is installed (@file{/usr/local/share/emacs/site-lisp}, by |
| 4196 | default), @emph{before} Emacs' default search directories. You can | 4196 | default), @emph{before} Emacs's default search directories. You can |
| 4197 | accomplish this by putting the following in your @file{.emacs}: | 4197 | accomplish 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 | |||
| 4266 | you downloaded. You need to ensure you download a ``downgrade kit'' if | 4266 | you downloaded. You need to ensure you download a ``downgrade kit'' if |
| 4267 | you are using anything older than the latest HTML help package. A new | 4267 | you are using anything older than the latest HTML help package. A new |
| 4268 | help package appears with each IDL release (assuming the documentation | 4268 | help package appears with each IDL release (assuming the documentation |
| 4269 | is updated). | 4269 | is updated). |
| 4270 | Starting with IDL 6.2, the HTML help and its catalog are | 4270 | Starting with IDL 6.2, the HTML help and its catalog are |
| 4271 | distributed with IDL, and so should never be inconsistent. | 4271 | distributed 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 @@ | |||
| 14 | This file describes how to use Info, the on-line, menu-driven GNU | 14 | This file describes how to use Info, the on-line, menu-driven GNU |
| 15 | documentation system. | 15 | documentation system. |
| 16 | 16 | ||
| 17 | Copyright @copyright{} 1989, 1992, 1996-2011 | 17 | Copyright @copyright{} 1989, 1992, 1996-2012 Free Software Foundation, Inc. |
| 18 | Free Software Foundation, Inc. | ||
| 19 | 18 | ||
| 20 | @quotation | 19 | @quotation |
| 21 | Permission is granted to copy, distribute and/or modify this document | 20 | Permission 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; | |||
| 1108 | this is so you need not count how many entries are there. | 1107 | this 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 |
| 1111 | you are using Emacs' Info mode to read Info files, the third, sixth | 1110 | you are using Emacs's Info mode to read Info files, the third, sixth |
| 1112 | and ninth menu items have a @samp{*} that stands out, either in color | 1111 | and ninth menu items have a @samp{*} that stands out, either in color |
| 1113 | or in some other attribute, such as underline; this makes it easy to | 1112 | or in some other attribute, such as underline; this makes it easy to |
| 1114 | see at a glance which number to use for an item. | 1113 | see 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 | |||
| 1142 | switches to the Info buffer with that number. Thus, @kbd{C-u 2 C-h i} | 1141 | switches to the Info buffer with that number. Thus, @kbd{C-u 2 C-h i} |
| 1143 | switches to the buffer @samp{*info*<2>}, creating it if necessary. | 1142 | switches 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 | ||
| 1146 | difficult to remember which buffer is showing which manual. You can | ||
| 1147 | use the command @kbd{M-x info-display-manual} to show an Info manual | ||
| 1148 | by 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, |
| 1235 | in most cases, writing a Texinfo file is better, since you can use it | 1241 | in 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 |
| 9 | Copyright @copyright{} 2008-2011 Free Software Foundation, Inc. | 9 | Copyright @copyright{} 2008-2012 Free Software Foundation, Inc. |
| 10 | 10 | ||
| 11 | @quotation | 11 | @quotation |
| 12 | Permission is granted to copy, distribute and/or modify this document | 12 | Permission 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 |
| 105 | cc-mode.dvi: cc-mode.texi | 105 | cc-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 |
| 110 | ada-mode.dvi: ada-mode.texi | 110 | ada-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 |
| 115 | pcl-cvs.dvi: pcl-cvs.texi | 115 | pcl-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 |
| 120 | eshell.dvi: eshell.texi | 120 | eshell.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 |
| 125 | cl.dvi: cl.texi | 125 | cl.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 |
| 130 | dbus.dvi: dbus.texi | 130 | dbus.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 |
| 135 | dired-x.dvi: dired-x.texi | 135 | dired-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 |
| 140 | ediff.dvi: ediff.texi | 140 | ediff.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 |
| 145 | flymake.dvi: flymake.texi | 145 | flymake.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 |
| 150 | forms.dvi: forms.texi | 150 | forms.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 |
| 156 | gnus.dvi: gnus.texi | 158 | gnus.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 |
| 164 | message.dvi: message.texi | 168 | message.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 |
| 169 | emacs-mime.dvi: emacs-mime.texi | 173 | emacs-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 |
| 174 | sieve.dvi: sieve.texi | 178 | sieve.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 |
| 179 | pgg.dvi: pgg.texi | 183 | pgg.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 |
| 184 | mh-e.dvi: mh-e.texi | 188 | mh-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 |
| 189 | reftex.dvi: reftex.texi | 193 | reftex.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 |
| 194 | remember.dvi: remember.texi | 198 | remember.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 |
| 199 | sasl.dvi: sasl.texi | 203 | sasl.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 |
| 204 | sc.dvi: sc.texi | 208 | sc.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 |
| 209 | vip.dvi: vip.texi | 213 | vip.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 |
| 214 | viper.dvi: viper.texi | 218 | viper.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 |
| 219 | widget.dvi: widget.texi | 223 | widget.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 | |||
| 224 | faq.dvi: faq.texi $(emacsdir)/emacsver.texi | 228 | faq.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 |
| 229 | autotype.dvi: autotype.texi | 233 | autotype.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 | 238 | calc.dvi: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi | |
| 235 | calc.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 |
| 242 | idlwave.dvi: idlwave.texi | 245 | idlwave.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 |
| 247 | eudc.dvi: eudc.texi | 250 | eudc.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 |
| 252 | ebrowse.dvi: ebrowse.texi | 255 | ebrowse.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 |
| 257 | woman.dvi: woman.texi | 260 | woman.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 |
| 262 | speedbar.dvi: speedbar.texi | 265 | speedbar.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 |
| 267 | tramp.dvi: tramp.texi | 270 | tramp.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 |
| 272 | ses.dvi: ses.texi | 275 | ses.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 |
| 277 | smtpmail.dvi: smtpmail.texi | 280 | smtpmail.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 | |||
| 282 | org.dvi: org.texi | 285 | org.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 |
| 287 | url.dvi: url.texi | 290 | url.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 |
| 292 | newsticker.dvi: newsticker.texi | 295 | newsticker.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 | |||
| 297 | nxml-mod.dvi: nxml-mode.texi | 300 | nxml-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 |
| 302 | rcirc.dvi: rcirc.texi | 305 | rcirc.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 |
| 307 | erc.dvi: erc.texi | 310 | erc.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 | |||
| 322 | mairix-el.dvi: mairix-el.texi | 325 | mairix-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 |
| 327 | auth.dvi: auth.texi | 330 | auth.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 | |||
| 337 | ede.dvi: ede.texi | 340 | ede.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 |
| 342 | semantic.dvi: semantic.texi | 345 | semantic.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 |
| 347 | edt.dvi: edt.texi | 350 | edt.dvi: edt.texi doclicense.texi |
| 348 | $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi | 351 | $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi |
| 349 | 352 | ||
| 350 | mostlyclean: | 353 | mostlyclean: |
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 |
| 11 | This file documents Message, the Emacs message composition mode. | 11 | This file documents Message, the Emacs message composition mode. |
| 12 | 12 | ||
| 13 | Copyright @copyright{} 1996-2011 Free Software Foundation, Inc. | 13 | Copyright @copyright{} 1996-2012 Free Software Foundation, Inc. |
| 14 | 14 | ||
| 15 | @quotation | 15 | @quotation |
| 16 | Permission is granted to copy, distribute and/or modify this document | 16 | Permission 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}, | |||
| 904 | Until @acronym{IDNA} becomes more well known, Message queries you | 904 | Until @acronym{IDNA} becomes more well known, Message queries you |
| 905 | whether @acronym{IDNA} encoding of the domain name really should | 905 | whether @acronym{IDNA} encoding of the domain name really should |
| 906 | occur. Some users might not be aware that domain names can contain | 906 | occur. Some users might not be aware that domain names can contain |
| 907 | non-@acronym{ASCII} now, so this gives them a safety net if they accidently | 907 | non-@acronym{ASCII} now, so this gives them a safety net if they accidentally |
| 908 | typed a non-@acronym{ASCII} domain name. | 908 | typed 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: | |||
| 1974 | Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes: | 1974 | Hallvard 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 | ||
| 1980 | Point will be at the beginning of the body of the message when this | 1980 | Point 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 |
| 2123 | Directory used by many mailey things. The default is @file{~/Mail/}. | 2123 | Directory used by many mailish things. The default is @file{~/Mail/}. |
| 2124 | All other mail file variables are derived from @code{message-directory}. | 2124 | All 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 @@ | |||
| 24 | This is version @value{VERSION}@value{EDITION} of @cite{The MH-E | 24 | This is version @value{VERSION}@value{EDITION} of @cite{The MH-E |
| 25 | Manual}, last updated @value{UPDATED}. | 25 | Manual}, last updated @value{UPDATED}. |
| 26 | 26 | ||
| 27 | Copyright @copyright{} 1995, 2001-2003, 2005-2011 Free Software Foundation, Inc. | 27 | Copyright @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 | |||
| 212 | them. | 212 | them. |
| 213 | 213 | ||
| 214 | The MH-E package is distributed with Emacs@footnote{Version | 214 | The 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 |
| 216 | in Emacs 21 and 22, as well as XEmacs 21 (except for versions | 216 | Emacs 23 and higher, as well as XEmacs 21.4.22 and 21.5.31. MH-E is |
| 217 | 21.5.9-21.5.16). It is compatible with MH versions 6.8.4 and higher, | 217 | known not to work with GNU Emacs versions 20 and below, and XEmacs |
| 218 | all versions of nmh, and GNU mailutils 1.0 and higher.}, so you | 218 | version 21.5.9 - 21.5.16. It is compatible with MH versions 6.8.4 and |
| 219 | higher, all versions of nmh, and GNU mailutils 1.0 and higher}, so you | ||
| 219 | shouldn't have to do anything special to use it. Gnus is also | 220 | shouldn't have to do anything special to use it. Gnus is also |
| 220 | required; version 5.10 or higher is recommended. This manual covers | 221 | required; version 5.10 or higher is recommended. This manual covers |
| 221 | MH-E version @value{VERSION}. To help you decide which version you | 222 | MH-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 | |||
| 8950 | reorganized to push back two decades of entropy. Version 8 appeared in | 8951 | reorganized to push back two decades of entropy. Version 8 appeared in |
| 8951 | Emacs 22.1 in 2006. | 8952 | Emacs 22.1 in 2006. |
| 8952 | 8953 | ||
| 8953 | Development was then quiet for a couple of years. Emacs 23.1, released | 8954 | Development was then quiet for a couple of years. Emacs 23.1, which is |
| 8954 | in June 2009, contains version 8.2. This version includes a few | 8955 | due out in 2009, will contain version 8.1. This version includes a few |
| 8955 | new features and several bug fixes. | 8956 | new features and several bug fixes. |
| 8956 | 8957 | ||
| 8957 | Bill Wohler, August 2008 | 8958 | Bill 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 @@ | |||
| 13 | This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}). | 13 | This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}). |
| 14 | 14 | ||
| 15 | @noindent | 15 | @noindent |
| 16 | Copyright @copyright{} 2004-2011 | 16 | Copyright @copyright{} 2004-2012 Free Software Foundation, Inc. |
| 17 | Free Software Foundation, Inc. | ||
| 18 | 17 | ||
| 19 | @quotation | 18 | @quotation |
| 20 | Permission is granted to copy, distribute and/or modify this document | 19 | Permission 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.). | |||
| 112 | Here are screen shots of the @uref{newsticker-1.7.png, version 1.7 | 111 | Here 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 | |||
| 128 | you are using XEmacs you want to get the @file{net-utils} package | 127 | you are using XEmacs you want to get the @file{net-utils} package |
| 129 | which contains @file{xml.el} for XEmacs. | 128 | which contains @file{xml.el} for XEmacs. |
| 130 | 129 | ||
| 131 | Newsticker retrieves headlines either via Emacs' built-in retrieval | 130 | Newsticker retrieves headlines either via Emacs's built-in retrieval |
| 132 | functions, by an arbitrary external program that retrieves files via | 131 | functions, by an arbitrary external program that retrieves files via |
| 133 | http and prints them to stdout (like | 132 | http 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 |
| 164 | feeds (in tree form), a list of headlines for the current feed, and | 163 | feeds (in tree form), a list of headlines for the current feed, and |
| 165 | the content of the current headline. Feeds can be placed into groups | 164 | the content of the current headline. Feeds can be placed into groups |
| 166 | which itself can be placed in groups and so on. | 165 | which 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 |
| 168 | single buffer, called @samp{*newsticker*}. The modeline in the | 167 | single 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 |
| 172 | In both views clicking mouse-button 2 or pressing RET on a headline | 171 | In both views clicking mouse-button 2 or pressing RET on a headline |
| 173 | will call @code{browse-url} to load the corresponding news story in | 172 | will call @code{browse-url} to load the corresponding news story in |
| 174 | your favourite web browser. | 173 | your 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 |
| 208 | feeds are retrieved and how this is done. | 207 | feeds 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 |
| 218 | retrieved. This is either done using Emacs' built-in download | 217 | retrieved. This is either done using Emacs's built-in download |
| 219 | capabilities or using an external tool. | 218 | capabilities 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 |
| 244 | commands to newsticker functions. | 243 | commands 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 @@ | |||
| 8 | This manual documents nxml-mode, an Emacs major mode for editing | 8 | This manual documents nxml-mode, an Emacs major mode for editing |
| 9 | XML with RELAX NG support. | 9 | XML with RELAX NG support. |
| 10 | 10 | ||
| 11 | Copyright @copyright{} 2007-2011 | 11 | Copyright @copyright{} 2007-2012 Free Software Foundation, Inc. |
| 12 | Free Software Foundation, Inc. | ||
| 13 | 12 | ||
| 14 | @quotation | 13 | @quotation |
| 15 | Permission is granted to copy, distribute and/or modify this document | 14 | Permission 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 | ||
| 357 | nXML mode allows you to display all or part of a buffer as an | 356 | nXML mode allows you to display all or part of a buffer as an |
| 358 | outline, in a similar way to Emacs' outline mode. An outline in nXML | 357 | outline, in a similar way to Emacs's outline mode. An outline in nXML |
| 359 | mode is based on recognizing two kinds of element: sections and | 358 | mode is based on recognizing two kinds of element: sections and |
| 360 | headings. There is one heading for every section and one section for | 359 | headings. There is one heading for every section and one section for |
| 361 | every heading. A section contains its heading as or within its first | 360 | every 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 | |||
| 878 | require XML parsers to read the DTD. With DTDs, it was impractical to | 877 | require XML parsers to read the DTD. With DTDs, it was impractical to |
| 879 | get validation without using an external DTD or reference to an | 878 | get validation without using an external DTD or reference to an |
| 880 | parameter entity. With RELAX NG and other schema languages, you can | 879 | parameter entity. With RELAX NG and other schema languages, you can |
| 881 | simulataneously get the benefits of validation and standalone XML | 880 | simultaneously get the benefits of validation and standalone XML |
| 882 | documents. Therefore, I recommend that you do not reference an | 881 | documents. Therefore, I recommend that you do not reference an |
| 883 | external DOCTYPE in your XML documents. | 882 | external 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 |
| 266 | This manual is for Org version @value{VERSION}. | 266 | This manual is for Org version @value{VERSION}. |
| 267 | 267 | ||
| 268 | Copyright @copyright{} 2004-2011 Free Software Foundation, Inc. | 268 | Copyright @copyright{} 2004-2012 Free Software Foundation, Inc. |
| 269 | 269 | ||
| 270 | @quotation | 270 | @quotation |
| 271 | Permission is granted to copy, distribute and/or modify this document | 271 | Permission 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 |
| 299 | with contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison, Eric Schulte, and Thomas Dye | 299 | with 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 | ||
| 386 | Hyperlinks | 387 | Hyperlinks |
| 387 | 388 | ||
| @@ -432,7 +433,7 @@ Tags | |||
| 432 | Properties and columns | 433 | Properties 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 | ||
| 462 | Creating timestamps | 463 | Creating 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 | ||
| 467 | Deadlines and scheduling | 468 | Deadlines 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 | ||
| 545 | Structural markup elements | 546 | Structural 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 | ||
| 566 | Exporting | 567 | Exporting |
| @@ -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 | |||
| 580 | HTML export | 582 | HTML 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 | ||
| 601 | DocBook export | 604 | DocBook 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 | ||
| 613 | OpenDocument 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 | |||
| 625 | Math 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 | |||
| 630 | Advanced 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 | |||
| 610 | Publishing | 638 | Publishing |
| 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 | ||
| 698 | Interaction with other packages | 733 | Interaction with other packages |
| 699 | 734 | ||
| @@ -716,7 +751,7 @@ Hacking | |||
| 716 | Tables and lists in arbitrary syntax | 751 | Tables 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 | ||
| 770 | Org mode contains the Org Babel environment which allows you to work with | 805 | Org mode contains the Org Babel environment which allows you to work with |
| 771 | embedded source code blocks in a file, to facilitate code evaluation, | 806 | embedded source code blocks in a file, to facilitate code evaluation, |
| 772 | documentation, and tangling. | 807 | documentation, and literate programming techniques. |
| 773 | 808 | ||
| 774 | Org's automatic, context-sensitive table editor with spreadsheet | 809 | Org's automatic, context-sensitive table editor with spreadsheet |
| 775 | capabilities can be integrated into any major mode by activating the | 810 | capabilities can be integrated into any major mode by activating the |
| @@ -803,6 +838,11 @@ version of Org, as well as additional information, frequently asked | |||
| 803 | questions (FAQ), links to tutorials, etc@. This page is located at | 838 | questions (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 | ||
| 842 | The version 7.3 of this manual is available as a | ||
| 843 | @uref{http://www.network-theory.co.uk/org/manual/, paperback book from Network | ||
| 844 | Theory 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 |
| 815 | distribution or an XEmacs package, please skip this section and go directly | 855 | distribution or an XEmacs package, please skip this section and go directly |
| 816 | to @ref{Activation}.} | 856 | to @ref{Activation}. To see what version of Org (if any) is part of your |
| 857 | Emacs distribution, type @kbd{M-x load-library RET org} and then @kbd{M-x | ||
| 858 | org-version}.} | ||
| 817 | 859 | ||
| 818 | If you have downloaded Org from the Web, either as a distribution @file{.zip} | 860 | If you have downloaded Org from the Web, either as a distribution @file{.zip} |
| 819 | or @file{.tar} file, or as a Git archive, you must take the following steps | 861 | or @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 | ||
| 854 | Installing Info files is system dependent, because of differences in the | 896 | Installing 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 |
| 856 | correct directory and modifies the info directory file. In many other | 898 | files on most systems, please send a bug report if not@footnote{The output |
| 857 | systems, the files need to be copied to the correct directory separately, and | 899 | from install-info (if any) is also system dependent. In particular Debian |
| 858 | @file{install-info} then only modifies the directory file. Check your system | 900 | and its derivatives use two different versions of install-info and you may |
| 859 | documentation to find out which of the following commands you need: | 901 | see the message: |
| 902 | |||
| 903 | @example | ||
| 904 | This is not dpkg install-info anymore, but GNU install-info | ||
| 905 | See 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 |
| 862 | make install-info | 911 | make install-info |
| 863 | make install-info-debian | ||
| 864 | @end example | 912 | @end example |
| 865 | 913 | ||
| 866 | Then add the following line to @file{.emacs}. It is needed so that | 914 | Then add the following line to @file{.emacs}. It is needed so that |
| 867 | Emacs can autoload functions that are located in files not immediately loaded | 915 | Emacs can autoload functions that are located in files not immediately loaded |
| 868 | when Org-mode starts. | 916 | when 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 | ||
| 883 | Add the following lines to your @file{.emacs} file. The last three lines | 931 | To make sure files with extension @file{.org} use Org mode, add the following |
| 884 | define @emph{global} keys for the commands @command{org-store-link}, | 932 | line to your @file{.emacs} file. |
| 885 | @command{org-agenda}, and @command{org-iswitchb}---please choose suitable | ||
| 886 | keys 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 | ||
| 937 | default in Emacs@footnote{If you don't use font-lock globally, turn it on in | ||
| 938 | Org buffer with @code{(add-hook 'org-mode-hook 'turn-on-font-lock)}}. | ||
| 939 | |||
| 940 | The four Org commands @command{org-store-link}, @command{org-capture}, | ||
| 941 | @command{org-agenda}, and @command{org-iswitchb} should be accessible through | ||
| 942 | global keys (i.e.@: anywhere in Emacs, not just in Org buffers). Here are | ||
| 943 | suggested bindings for these keys, please modify the keys to your own | ||
| 944 | liking. | ||
| 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 | ||
| 896 | Furthermore, you must activate @code{font-lock-mode} in Org | 952 | @cindex Org mode, turning on |
| 897 | buffers, because significant functionality depends on font-locking being | ||
| 898 | active. 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 | ||
| 906 | With this setup, all files with extension @samp{.org} will be put | 953 | With this setup, all files with extension @samp{.org} will be put |
| 907 | into Org-mode. As an alternative, make the first line of a file look | 954 | into Org mode. As an alternative, make the first line of a file look |
| 908 | like this: | 955 | like 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 |
| 916 | the file's name is. See also the variable | 963 | the 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 | |||
| 955 | that you only need to add your description. If you re not sending the Email | 1002 | that you only need to add your description. If you re not sending the Email |
| 956 | from within Emacs, please copy and paste the content into your Email program. | 1003 | from within Emacs, please copy and paste the content into your Email program. |
| 957 | 1004 | ||
| 1005 | Sometimes you might face a problem due to an error in your Emacs or Org mode | ||
| 1006 | setup. Before reporting a bug, it is very helpful to start Emacs with minimal | ||
| 1007 | customizations and reproduce the problem. Doing so often helps you determine | ||
| 1008 | if the problem is with your customization or with Org mode itself. You can | ||
| 1009 | start 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 | |||
| 1015 | However if you are using Org mode as distributed with Emacs, a minimal setup | ||
| 1016 | is 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 | |||
| 958 | If an error occurs, a backtrace can be very useful (see below on how to | 1035 | If an error occurs, a backtrace can be very useful (see below on how to |
| 959 | create one). Often a small example file helps, along with clear information | 1036 | create one). Often a small example file helps, along with clear information |
| 960 | about: | 1037 | about: |
| @@ -977,7 +1054,7 @@ error occurred. Here is how to produce a useful backtrace: | |||
| 977 | 1054 | ||
| 978 | @enumerate | 1055 | @enumerate |
| 979 | @item | 1056 | @item |
| 980 | Reload uncompiled versions of all Org-mode Lisp files. The backtrace | 1057 | Reload uncompiled versions of all Org mode Lisp files. The backtrace |
| 981 | contains much more information if it is produced with uncompiled code. | 1058 | contains much more information if it is produced with uncompiled code. |
| 982 | To do this, use | 1059 | To do this, use |
| 983 | @example | 1060 | @example |
| @@ -1164,8 +1241,8 @@ Reveal context around point, showing the current entry, the following heading | |||
| 1164 | and the hierarchy above. Useful for working near a location that has been | 1241 | and the hierarchy above. Useful for working near a location that has been |
| 1165 | exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda command | 1242 | exposed 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 |
| 1167 | level, all sibling headings. With double prefix arg, also show the entire | 1244 | level, all sibling headings. With a double prefix argument, also show the |
| 1168 | subtree of the parent. | 1245 | entire subtree of the parent. |
| 1169 | @orgcmd{C-c C-k,show-branches} | 1246 | @orgcmd{C-c C-k,show-branches} |
| 1170 | Expose all the headings of the subtree, CONTENT view for just one subtree. | 1247 | Expose 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 | |||
| 1183 | prefix argument N, go up to level N and then take that tree. If N is | 1260 | prefix argument N, go up to level N and then take that tree. If N is |
| 1184 | negative then go up that many levels. With a @kbd{C-u} prefix, do not remove | 1261 | negative then go up that many levels. With a @kbd{C-u} prefix, do not remove |
| 1185 | the previously used indirect buffer. | 1262 | the previously used indirect buffer. |
| 1263 | @orgcmd{C-c C-x v,org-copy-visible} | ||
| 1264 | Copy 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 | ||
| 1194 | When Emacs first visits an Org file, the global state is set to | 1273 | When Emacs first visits an Org file, the global state is set to |
| 1195 | OVERVIEW, i.e. only the top level headlines are visible. This can be | 1274 | OVERVIEW, i.e.@: only the top level headlines are visible. This can be |
| 1196 | configured through the variable @code{org-startup-folded}, or on a | 1275 | configured through the variable @code{org-startup-folded}, or on a |
| 1197 | per-file basis by adding one of the following lines anywhere in the | 1276 | per-file basis by adding one of the following lines anywhere in the |
| 1198 | buffer: | 1277 | buffer: |
| @@ -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} |
| 1215 | Switch back to the startup visibility of the buffer, i.e. whatever is | 1294 | Switch back to the startup visibility of the buffer, i.e.@: whatever is |
| 1216 | requested by startup options and @samp{VISIBILITY} properties in individual | 1295 | requested by startup options and @samp{VISIBILITY} properties in individual |
| 1217 | entries. | 1296 | entries. |
| 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 |
| 1276 | Insert new heading with same level as current. If the cursor is in a | 1355 | Insert new heading with same level as current. If the cursor is in a plain |
| 1277 | plain list item, a new item is created (@pxref{Plain lists}). To force | 1356 | list item, a new item is created (@pxref{Plain lists}). To force creation of |
| 1278 | creation of a new headline, use a prefix argument, or first press @key{RET} | 1357 | a new headline, use a prefix argument. When this command is used in the |
| 1279 | to get to the beginning of the next line. When this command is used in | 1358 | middle of a line, the line is split and the rest of the line becomes the new |
| 1280 | the middle of a line, the line is split and the rest of the line becomes | 1359 | headline@footnote{If you do not want the line to be split, customize the |
| 1281 | the new headline@footnote{If you do not want the line to be split, | 1360 | variable @code{org-M-RET-may-split-line}.}. If the command is used at the |
| 1282 | customize the variable @code{org-M-RET-may-split-line}.}. If the | 1361 | beginning of a headline, the new headline is created before the current line. |
| 1283 | command is used at the beginning of a headline, the new headline is | 1362 | If at the beginning of any other line, the content of that line is made the |
| 1284 | created before the current line. If at the beginning of any other line, | 1363 | new heading. If the command is used at the end of a folded subtree (i.e.@: |
| 1285 | the content of that line is made the new heading. If the command is | 1364 | behind the ellipses at the end of a headline), then a headline like the |
| 1286 | used at the end of a folded subtree (i.e. behind the ellipses at the end | 1365 | current one will be inserted after the end of the subtree. |
| 1287 | of a headline), then a headline like the current one will be inserted | ||
| 1288 | after 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} |
| 1290 | Just like @kbd{M-@key{RET}}, except when adding a new heading below the | 1367 | Just like @kbd{M-@key{RET}}, except when adding a new heading below the |
| 1291 | current heading, the new heading is placed after the body instead of before | 1368 | current 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} |
| 1318 | Move subtree down (swap with next subtree of same level). | 1395 | Move 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} |
| 1320 | Kill subtree, i.e. remove it from buffer but save in kill ring. | 1397 | Kill subtree, i.e.@: remove it from buffer but save in kill ring. |
| 1321 | With a numeric prefix argument N, kill N sequential subtrees. | 1398 | With 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} |
| 1323 | Copy subtree to kill ring. With a numeric prefix argument N, copy the N | 1400 | Copy 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 | |||
| 1362 | entries will also be removed. | 1439 | entries will also be removed. |
| 1363 | @orgcmd{C-x n s,org-narrow-to-subtree} | 1440 | @orgcmd{C-x n s,org-narrow-to-subtree} |
| 1364 | Narrow buffer to current subtree. | 1441 | Narrow buffer to current subtree. |
| 1442 | @orgcmd{C-x n b,org-narrow-to-block} | ||
| 1443 | Narrow buffer to current block. | ||
| 1365 | @orgcmd{C-x n w,widen} | 1444 | @orgcmd{C-x n w,widen} |
| 1366 | Widen buffer to remove narrowing. | 1445 | Widen 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 |
| 1399 | An important feature of Org-mode is the ability to construct @emph{sparse | 1478 | An important feature of Org mode is the ability to construct @emph{sparse |
| 1400 | trees} for selected information in an outline tree, so that the entire | 1479 | trees} for selected information in an outline tree, so that the entire |
| 1401 | document is folded as much as possible, but the selected information is made | 1480 | document is folded as much as possible, but the selected information is made |
| 1402 | visible along with the headline structure above it@footnote{See also the | 1481 | visible 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}, | |||
| 1405 | control on how much context is shown around each match.}. Just try it out | 1484 | control on how much context is shown around each match.}. Just try it out |
| 1406 | and you will see immediately how it works. | 1485 | and you will see immediately how it works. |
| 1407 | 1486 | ||
| 1408 | Org-mode contains several commands creating such trees, all these | 1487 | Org mode contains several commands creating such trees, all these |
| 1409 | commands can be accessed through a dispatcher: | 1488 | commands 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: | |||
| 1413 | This prompts for an extra key to select a sparse-tree creating command. | 1492 | This 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 |
| 1416 | Occur. Prompts for a regexp and shows a sparse tree with all matches. If | 1495 | Prompts for a regexp and shows a sparse tree with all matches. If |
| 1417 | the match is in a headline, the headline is made visible. If the match is in | 1496 | the match is in a headline, the headline is made visible. If the match is in |
| 1418 | the body of an entry, headline and body are made visible. In order to | 1497 | the body of an entry, headline and body are made visible. In order to |
| 1419 | provide minimal context, also the full hierarchy of headlines above the match | 1498 | provide 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}. |
| 1424 | When called with a @kbd{C-u} prefix argument, previous highlights are kept, | 1503 | When called with a @kbd{C-u} prefix argument, previous highlights are kept, |
| 1425 | so several calls to this command can be stacked. | 1504 | so several calls to this command can be stacked. |
| 1505 | @orgcmdkkc{M-g n,M-g M-n,next-error} | ||
| 1506 | Jump to the next sparse tree match in this buffer. | ||
| 1507 | @orgcmdkkc{M-g p,M-g M-p,previous-error} | ||
| 1508 | Jump 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 |
| 1430 | For frequently used sparse trees of specific search strings, you can | 1514 | For 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 |
| 1474 | they will be seen as top-level headlines. Also, when you are hiding leading | 1558 | they will be seen as top-level headlines. Also, when you are hiding leading |
| 1475 | stars to get a clean outline view, plain list items starting with a star are | 1559 | stars to get a clean outline view, plain list items starting with a star may |
| 1476 | visually indistinguishable from true headlines. In short: even though | 1560 | be 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.} | 1561 | is supported, it may be better to not use it for plain list items.} as |
| 1478 | as bullets. | 1562 | bullets. |
| 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 |
| 1482 | a right parenthesis@footnote{You can filter out any of them by configuring | 1567 | a 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 |
| 1485 | the 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 |
| 1486 | item, the cookie must be put @emph{before} the checkbox.}. Those constructs | 1571 | confusion with normal text, those are limited to one character only. Beyond |
| 1487 | can be used in any item of the list in order to enforce a particular | 1572 | that limit, bullets will automatically fallback to numbers.}. If you want a |
| 1488 | numbering. | 1573 | list to start with a different value (e.g.@: 20), start the text of the item |
| 1574 | with @code{[@@20]}@footnote{If there's a checkbox in the item, the cookie | ||
| 1575 | must be put @emph{before} the checkbox. If you have activated alphabetical | ||
| 1576 | lists, you can also use counters like @code{[@@b]}.}. Those constructs can | ||
| 1577 | be 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 |
| 1491 | separator @samp{ :: } to separate the description @emph{term} from the | 1580 | separator @samp{ :: } to distinguish the description @emph{term} from the |
| 1492 | description. | 1581 | description. |
| 1493 | @end itemize | 1582 | @end itemize |
| 1494 | 1583 | ||
| 1495 | Items belonging to the same list must have the same indentation on the first | 1584 | Items belonging to the same list must have the same indentation on the first |
| 1496 | line. In particular, if an ordered list reaches number @samp{10.}, then the | 1585 | line. In particular, if an ordered list reaches number @samp{10.}, then the |
| 1497 | 2--digit numbers must be written left-aligned with the other numbers in the | 1586 | 2--digit numbers must be written left-aligned with the other numbers in the |
| 1498 | list. | 1587 | list. An item ends before the next line that is less or equally indented |
| 1588 | than 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 |
| 1503 | Two methods@footnote{To disable either of them, configure | 1593 | Two 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 |
| 1505 | before the next line that is indented like the bullet/number or less, or it | 1595 | whenever every item has ended, which means before any line less or equally |
| 1506 | ends before two blank lines@footnote{See also | 1596 | indented 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 | 1597 | lines@footnote{See also @code{org-empty-line-terminates-plain-lists}.}. In |
| 1508 | the list are closed@footnote{So you cannot have a sublist, some text and then | 1598 | that case, all items are closed. For finer control, you can end lists with |
| 1509 | another sublist while still in the same top-level list item. This used to be | 1599 | any pattern set in @code{org-list-end-regexp}. Here is an example: |
| 1510 | possible, but it was only supported in the HTML exporter and difficult to | ||
| 1511 | manage with automatic indentation.}. For finer control, you can end lists | ||
| 1512 | with 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, | |||
| 1536 | put into @file{.emacs}: @code{(require 'filladapt)}}, and by exporting them | 1623 | put into @file{.emacs}: @code{(require 'filladapt)}}, and by exporting them |
| 1537 | properly (@pxref{Exporting}). Since indentation is what governs the | 1624 | properly (@pxref{Exporting}). Since indentation is what governs the |
| 1538 | structure of these lists, many structural constructs like @code{#+BEGIN_...} | 1625 | structure of these lists, many structural constructs like @code{#+BEGIN_...} |
| 1539 | blocks can be indented to signal that they should be considered as a list | 1626 | blocks can be indented to signal that they belong to a particular item. |
| 1540 | item. | ||
| 1541 | 1627 | ||
| 1542 | @vindex org-list-demote-modify-bullet | 1628 | @vindex org-list-demote-modify-bullet |
| 1629 | @vindex org-list-indent-offset | ||
| 1543 | If you find that using a different bullet for a sub-list (than that used for | 1630 | If you find that using a different bullet for a sub-list (than that used for |
| 1544 | the current list-level) improves readability, customize the variable | 1631 | the 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 |
| 1633 | indentation 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 |
| 1548 | The following commands act on items when the cursor is in the first line of | 1637 | The 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 |
| 1557 | Items can be folded just like headline levels. Normally this works only if | 1647 | Items can be folded just like headline levels. Normally this works only if |
| 1558 | the cursor is on a plain list item. For more details, see the variable | 1648 | the 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 |
| 1561 | headlines. The level of an item is then given by the | 1651 | headlines. The level of an item is then given by the indentation of the |
| 1562 | indentation of the bullet/number. Items are always subordinate to real | 1652 | bullet/number. Items are always subordinate to real headlines, however; the |
| 1563 | headlines, however; the hierarchies remain completely separated. | 1653 | hierarchies remain completely separated. In a new item with no text yet, the |
| 1654 | first @key{TAB} demotes the item to become a child of the previous | ||
| 1655 | one. Subsequent @key{TAB}s move the item to meaningful levels in the list | ||
| 1656 | and 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 |
| 1567 | Insert new item at current level. With a prefix argument, force a new | 1660 | Insert new item at current level. With a prefix argument, force a new |
| 1568 | heading (@pxref{Structure editing}). If this command is used in the middle | 1661 | heading (@pxref{Structure editing}). If this command is used in the middle |
| 1569 | of a line, the line is @emph{split} and the rest of the line becomes the new | 1662 | of an item, that item is @emph{split} in two, and the second part becomes the |
| 1570 | item@footnote{If you do not want the line to be split, customize the variable | 1663 | new 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 | 1664 | variable @code{org-M-RET-may-split-line}.}. If this command is executed |
| 1572 | an 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 |
| 1573 | command is executed in the white space before the text that is part of an | 1666 | one. |
| 1574 | item but does not contain the bullet, a bullet is added to the current line. | 1667 | @end table |
| 1575 | 1668 | ||
| 1576 | As a new item cannot be inserted in a structural construct (like an example | 1669 | @table @kbd |
| 1577 | or source code block) within a list, Org will instead insert it right before | ||
| 1578 | the 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 |
| 1581 | Insert a new item with a checkbox (@pxref{Checkboxes}). | 1672 | Insert a new item with a checkbox (@pxref{Checkboxes}). |
| 1582 | @orgcmd{@key{TAB},org-cycle} | ||
| 1583 | In a new item with no text yet, the first @key{TAB} demotes the item to | ||
| 1584 | become a child of the previous one. Subsequent @key{TAB}s move the item to | ||
| 1585 | meaningful levels in the list and eventually get it back to its initial | ||
| 1586 | position. | ||
| 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 |
| 1592 | Jump to the previous/next item in the current list, but only if | 1678 | @vindex org-list-use-circular-motion |
| 1679 | Jump to the previous/next item in the current list@footnote{If you want to | ||
| 1680 | cycle 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 |
| 1594 | jumping commands like @kbd{C-@key{up}} and @kbd{C-@key{down}} to quite | 1683 | jumping commands like @kbd{C-@key{up}} and @kbd{C-@key{down}} to quite |
| 1595 | similar effect. | 1684 | similar 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 |
| 1600 | Move the item including subitems up/down (swap with previous/next item | 1689 | Move the item including subitems up/down@footnote{See |
| 1601 | of same indentation). If the list is ordered, renumbering is | 1690 | @code{org-liste-use-circular-motion} for a cyclic behavior.} (swap with |
| 1602 | automatic. | 1691 | previous/next item of same indentation). If the list is ordered, renumbering |
| 1692 | is 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 |
| 1607 | Decrease/increase the indentation of an item, leaving children alone. | 1697 | Decrease/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 |
| 1612 | Decrease/increase the indentation of the item, including subitems. | 1702 | Decrease/increase the indentation of the item, including subitems. |
| 1613 | Initially, the item tree is selected based on current indentation. When | 1703 | Initially, the item tree is selected based on current indentation. When |
| 1614 | these commands are executed several times in direct succession, the initially | 1704 | these 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 |
| 1625 | If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the | 1715 | If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the |
| 1626 | state of the checkbox. Also, makes sure that all the | 1716 | state of the checkbox. In any case, verify bullets and indentation |
| 1627 | items on this list level use the same bullet and that the numbering of list | 1717 | consistency in the whole list. |
| 1628 | items (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, | |||
| 1636 | and its position@footnote{See @code{bullet} rule in | 1725 | and 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 |
| 1638 | prefix argument N, select the Nth bullet from this list. If there is an | 1727 | prefix argument N, select the Nth bullet from this list. If there is an |
| 1639 | active region when calling this, all lines will be converted to list items. | 1728 | active region when calling this, selected text will be changed into an item. |
| 1640 | If the first line already was a list item, any item markers will be removed | 1729 | With a prefix argument, all lines will be converted to list items. If the |
| 1641 | from the list. Finally, even without an active region, a normal line will be | 1730 | first line already was a list item, any item marker will be removed from the |
| 1731 | list. Finally, even without an active region, a normal line will be | ||
| 1642 | converted into a list item. | 1732 | converted into a list item. |
| 1643 | @kindex C-c * | 1733 | @kindex C-c * |
| 1644 | @item C-c * | 1734 | @item C-c * |
| 1645 | Turn a plain list item into a headline (so that it becomes a subheading at | 1735 | Turn a plain list item into a headline (so that it becomes a subheading at |
| 1646 | its location). @xref{Structure editing}, for a detailed explanation. | 1736 | its location). @xref{Structure editing}, for a detailed explanation. |
| 1737 | @kindex C-c C-* | ||
| 1738 | @item C-c C-* | ||
| 1739 | Turn 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 |
| 1651 | This command also cycles bullet styles when the cursor in on the bullet or | 1746 | This command also cycles bullet styles when the cursor in on the bullet or |
| 1652 | anywhere in an item line, details depending on | 1747 | anywhere 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 |
| 1667 | Sometimes you want to keep information associated with an entry, but you | 1762 | Sometimes you want to keep information associated with an entry, but you |
| 1668 | normally don't want to see it. For this, Org-mode has @emph{drawers}. | 1763 | normally don't want to see it. For this, Org mode has @emph{drawers}. |
| 1669 | Drawers need to be configured with the variable | 1764 | Drawers 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 |
| 1671 | with a line like @code{#+DRAWERS: HIDDEN PROPERTIES STATE}}. Drawers | 1766 | with 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: | |||
| 1683 | Visibility cycling (@pxref{Visibility cycling}) on the headline will hide and | 1778 | Visibility cycling (@pxref{Visibility cycling}) on the headline will hide and |
| 1684 | show the entry, but keep the drawer collapsed to a single line. In order to | 1779 | show the entry, but keep the drawer collapsed to a single line. In order to |
| 1685 | look inside the drawer, you need to move the cursor to the drawer line and | 1780 | look inside the drawer, you need to move the cursor to the drawer line and |
| 1686 | press @key{TAB} there. Org-mode uses the @code{PROPERTIES} drawer for | 1781 | press @key{TAB} there. Org mode uses the @code{PROPERTIES} drawer for |
| 1687 | storing properties (@pxref{Properties and Columns}), and you can also arrange | 1782 | storing properties (@pxref{Properties and Columns}), and you can also arrange |
| 1688 | for state change notes (@pxref{Tracking TODO state changes}) and clock times | 1783 | for 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 |
| 1703 | Org-mode uses begin...end blocks for various purposes from including source | 1798 | Org mode uses begin...end blocks for various purposes from including source |
| 1704 | code examples (@pxref{Literal examples}) to capturing time logging | 1799 | code examples (@pxref{Literal examples}) to capturing time logging |
| 1705 | information (@pxref{Clocking work time}). These blocks can be folded and | 1800 | information (@pxref{Clocking work time}). These blocks can be folded and |
| 1706 | unfolded by pressing TAB in the begin line. You can also get all blocks | 1801 | unfolded 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 | ||
| 1721 | Org-mode supports the creation of footnotes. In contrast to the | 1816 | Org 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 |
| 1723 | larger document, not only for one-off documents like emails. The basic | 1818 | larger document, not only for one-off documents like emails. The basic |
| 1724 | syntax is similar to the one used by @file{footnote.el}, i.e. a footnote is | 1819 | syntax is similar to the one used by @file{footnote.el}, i.e.@: a footnote is |
| 1725 | defined in a paragraph that is started by a footnote marker in square | 1820 | defined in a paragraph that is started by a footnote marker in square |
| 1726 | brackets in column 0, no indentation allowed. If you need a paragraph break | 1821 | brackets in column 0, no indentation allowed. If you need a paragraph break |
| 1727 | inside a footnote, use the @LaTeX{} idiom @samp{\par}. The footnote reference | 1822 | inside 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 | ||
| 1736 | Org-mode extends the number-based syntax to @emph{named} footnotes and | 1831 | Org mode extends the number-based syntax to @emph{named} footnotes and |
| 1737 | optional inline definition. Using plain numbers as markers (as | 1832 | optional 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 |
| 1739 | encouraged because of possible conflicts with @LaTeX{} snippets (@pxref{Embedded | 1834 | encouraged because of possible conflicts with @LaTeX{} snippets (@pxref{Embedded |
| 1740 | LaTeX}). 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.} | |||
| 1798 | n @r{Normalize the footnotes by collecting all definitions (including} | 1893 | n @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}.} |
| 1804 | d @r{Delete the footnote at point, and all definitions of and references} | 1899 | d @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 | ||
| 1830 | If you like the intuitive way the Org-mode structure editing and list | 1925 | If you like the intuitive way the Org mode structure editing and list |
| 1831 | formatting works, you might want to use these commands in other modes like | 1926 | formatting works, you might want to use these commands in other modes like |
| 1832 | Text mode or Mail mode as well. The minor mode @code{orgstruct-mode} makes | 1927 | Text mode or Mail mode as well. The minor mode @code{orgstruct-mode} makes |
| 1833 | this possible. Toggle the mode with @kbd{M-x orgstruct-mode}, or | 1928 | this possible. Toggle the mode with @kbd{M-x orgstruct-mode}, or |
| 1834 | turn it on by default, for example in Mail mode, with one of: | 1929 | turn 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 | ||
| 1841 | When this mode is active and the cursor is on a line that looks to Org like a | 1936 | When 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 | ||
| 1878 | Org makes it easy to format tables in plain ASCII. Any line with | 1973 | Org 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 | 1974 | the first non-whitespace character is considered part of a table. @samp{|} |
| 1880 | table. @samp{|} is also the column separator. A table might look like | 1975 | is also the column separator@footnote{To insert a vertical bar into a table |
| 1881 | this: | 1976 | field, use @code{\vert} or, inside a word @code{abc\vert@{@}def}.}. A table |
| 1977 | might 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} |
| 1922 | Convert the active region to table. If every line contains at least one | 2018 | Convert the active region to table. If every line contains at least one |
| 1923 | TAB character, the function assumes that the material is tab separated. | 2019 | TAB character, the function assumes that the material is tab separated. |
| 1924 | If every line contains a comma, comma-separated values (CSV) are assumed. | 2020 | If every line contains a comma, comma-separated values (CSV) are assumed. |
| 1925 | If not, lines are split at whitespace into fields. You can use a prefix | 2021 | If 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 | |||
| 1928 | consecutive spaces, or alternatively a TAB will be the separator. | 2024 | consecutive spaces, or alternatively a TAB will be the separator. |
| 1929 | @* | 2025 | @* |
| 1930 | If there is no active region, this command creates an empty Org | 2026 | If there is no active region, this command creates an empty Org |
| 1931 | table. But it's easier just to start typing, like | 2027 | table. 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 | |||
| 2043 | Edit the current field in a separate window. This is useful for fields that | 2139 | Edit the current field in a separate window. This is useful for fields that |
| 2044 | are not fully visible (@pxref{Column width and alignment}). When called with | 2140 | are not fully visible (@pxref{Column width and alignment}). When called with |
| 2045 | a @kbd{C-u} prefix, just make the full field visible, so that it can be | 2141 | a @kbd{C-u} prefix, just make the full field visible, so that it can be |
| 2046 | edited in place. | 2142 | edited in place. When called with two @kbd{C-u} prefixes, make the editor |
| 2143 | window follow the cursor through the table and always show the current | ||
| 2144 | field. The follow mode exits automatically when the cursor leaves the table, | ||
| 2145 | or 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 |
| 2049 | Import a file as a table. The table should be TAB or whitespace | 2148 | Import 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 | |||
| 2187 | might also want to use it in other modes like Text mode or Mail mode. | 2286 | might also want to use it in other modes like Text mode or Mail mode. |
| 2188 | The minor mode Orgtbl mode makes this possible. You can always toggle | 2287 | The minor mode Orgtbl mode makes this possible. You can always toggle |
| 2189 | the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for | 2288 | the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for |
| 2190 | example in mail mode, use | 2289 | example 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 | ||
| 2196 | Furthermore, with some special setup, it is possible to maintain tables | 2295 | Furthermore, 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. | |||
| 2243 | Formulas can reference the value of another field in two ways. Like in | 2343 | Formulas can reference the value of another field in two ways. Like in |
| 2244 | any other spreadsheet, you may reference fields with a letter/number | 2344 | any other spreadsheet, you may reference fields with a letter/number |
| 2245 | combination like @code{B3}, meaning the 2nd field in the 3rd row. | 2345 | combination 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 | 2347 | However, Org prefers@footnote{Org will understand references typed by the |
| 2248 | @c Org's @code{B3} behaves like @code{$B$3} in other spreadsheets. | 2348 | user as @samp{B4}, but it will not use this syntax when offering a formula |
| 2249 | 2349 | for editing. You can customize this behavior using the variable | |
| 2250 | @noindent | 2350 | @code{org-table-use-standard-references}.} to use another, more general |
| 2251 | Org also uses another, more general operator that looks like this: | 2351 | representation 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 | 2356 | Column specifications can be absolute like @code{$1}, |
| 2257 | Column 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 |
| 2258 | or relative to the current column like @samp{+1} or @samp{-2}. | 2358 | column 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 | |
| 2260 | The row specification only counts data lines and ignores horizontal | 2360 | column, respectively, and you can use @code{$>>>} to indicate the third |
| 2261 | separator lines (hlines). You can use absolute row numbers | 2361 | column 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 | 2363 | The row specification only counts data lines and ignores horizontal separator |
| 2264 | hlines: @samp{I} refers to the first hline@footnote{Note that only | 2364 | lines (hlines). Like with columns, you can use absolute row numbers |
| 2265 | hlines are counted that @emph{separate} table lines. If the table | 2365 | @code{@@1}, @code{@@2},...@code{@@@var{N}}, and row numbers relative to the |
| 2266 | starts with a hline above the header, it does not count.}, @samp{II} to | 2366 | current row like @code{@@+3} or @code{@@-1}. @code{@@<} and @code{@@>} are |
| 2267 | the second, etc@. @samp{-I} refers to the first such line above the | 2367 | immutable references the first and last@footnote{For backward compatibility |
| 2268 | current line, @samp{+I} to the first such line below the current line. | 2368 | you can also use special names like @code{$LR5} and @code{$LR12} to refer in |
| 2269 | You can also write @samp{III+2} which is the second data line after the | 2369 | a stable way to the 5th and 12th field in the last row of the table. |
| 2270 | third hline in the table. | 2370 | However, this syntax is deprecated, it should not be used for new documents. |
| 2271 | 2371 | Use @code{@@>$} instead.} row in the table, respectively. You may also | |
| 2272 | @samp{0} refers to the current row and column. Also, if you omit | 2372 | specify the row relative to one of the hlines: @code{@@I} refers to the first |
| 2273 | either the column or the row part of the reference, the current | 2373 | hline, @code{@@II} to the second, etc@. @code{@@-I} refers to the first such |
| 2274 | row/column is implied. | 2374 | line above the current line, @code{@@+I} to the first such line below the |
| 2375 | current line. You can also write @code{@@III+2} which is the second data line | ||
| 2376 | after the third hline in the table. | ||
| 2377 | |||
| 2378 | @code{@@0} and @code{$0} refer to the current row and column, respectively, | ||
| 2379 | i.e. to the row/column for the field being computed. Also, if you omit | ||
| 2380 | either the column or the row part of the reference, the current row/column is | ||
| 2381 | implied. | ||
| 2275 | 2382 | ||
| 2276 | Org's references with @emph{unsigned} numbers are fixed references | 2383 | Org's references with @emph{unsigned} numbers are fixed references |
| 2277 | in the sense that if you use the same reference in the formula for two | 2384 | in 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 | |||
| 2280 | references because the same reference operator can reference different | 2387 | references because the same reference operator can reference different |
| 2281 | fields depending on the field being calculated by the formula. | 2388 | fields depending on the field being calculated by the formula. |
| 2282 | 2389 | ||
| 2283 | As a special case, references like @samp{$LR5} and @samp{$LR12} can be used | ||
| 2284 | to refer in a stable way to the 5th and 12th field in the last row of the | ||
| 2285 | table. | ||
| 2286 | |||
| 2287 | Here are a few examples: | 2390 | Here 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})} |
| 2291 | C2 @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} | ||
| 2293 | E& @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} |
| 2314 | A2..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 |
| 2342 | as the current table. Inefficient@footnote{The computation time scales as | 2445 | as the current table. Note that this is inefficient@footnote{The computation time scales as |
| 2343 | O(N^2) because table FOO is parsed for each field to be copied.} for large | 2446 | O(N^2) because table FOO is parsed for each field to be copied.} for large |
| 2344 | number of rows. | 2447 | number of rows. |
| 2345 | 2448 | ||
| @@ -2440,7 +2543,6 @@ n3 s3 e2 f4 @r{Normal, scientific, engineering, or fixed} | |||
| 2440 | D R @r{angle modes: degrees, radians} | 2543 | D R @r{angle modes: degrees, radians} |
| 2441 | F S @r{fraction and symbolic modes} | 2544 | F S @r{fraction and symbolic modes} |
| 2442 | N @r{interpret all fields as numbers, use 0 for non-numbers} | 2545 | N @r{interpret all fields as numbers, use 0 for non-numbers} |
| 2443 | T @r{force text interpretation} | ||
| 2444 | E @r{keep empty fields in ranges} | 2546 | E @r{keep empty fields in ranges} |
| 2445 | L @r{literal} | 2547 | L @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} | |||
| 2474 | Calc also contains a complete set of logical operations. For example | 2576 | Calc also contains a complete set of logical operations. For example |
| 2475 | 2577 | ||
| 2476 | @example | 2578 | @example |
| 2477 | if($1<20,teen,string("")) @r{``teen'' if age $1 less than 20, else empty} | 2579 | if($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 | 2582 | Note that you can also use two org-specific flags @code{T} and @code{t} for |
| 2583 | durations 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, | |||
| 2496 | without quotes. I.e., if you want a reference to be interpreted as a string | 2601 | without quotes. I.e., if you want a reference to be interpreted as a string |
| 2497 | by the Lisp form, enclose the reference operator itself in double-quotes, | 2602 | by the Lisp form, enclose the reference operator itself in double-quotes, |
| 2498 | like @code{"$3"}. Ranges are inserted as space-separated fields, so you can | 2603 | like @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 | 2604 | embed 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 | |||
| 2622 | If you want to compute time values use the @code{T} flag, either in Calc | ||
| 2623 | formulas 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 | |||
| 2635 | Input duration values must be of the form @code{[HH:MM[:SS]}, where seconds | ||
| 2636 | are optional. With the @code{T} flag, computed durations will be displayed | ||
| 2637 | as @code{[HH:MM:SS} (see the first formula above). With the @code{t} flag, | ||
| 2638 | computed durations will be displayed according to the value of the variable | ||
| 2639 | @code{org-table-duration-custom-format}, which defaults to @code{'hours} and | ||
| 2640 | will display the result as a fraction of hours (see the second formula in the | ||
| 2641 | example above). | ||
| 2642 | |||
| 2643 | Negative duration values can be manipulated as well, and integers will be | ||
| 2644 | considered 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 | ||
| 2516 | To assign a formula to a particular field, type it directly into the | 2653 | To assign a formula to a particular field, type it directly into the field, |
| 2517 | field, preceded by @samp{:=}, for example @samp{:=$1+$2}. When you | 2654 | preceded by @samp{:=}, for example @samp{:=vsum(@@II..III)}. When you press |
| 2518 | press @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, |
| 2519 | the field, the formula will be stored as the formula for this field, | 2656 | the formula will be stored as the formula for this field, evaluated, and the |
| 2520 | evaluated, and the current field replaced with the result. | 2657 | current field will be replaced with the result. |
| 2521 | 2658 | ||
| 2522 | @cindex #+TBLFM | 2659 | @cindex #+TBLFM |
| 2523 | Formulas are stored in a special line starting with @samp{#+TBLFM:} | 2660 | Formulas are stored in a special line starting with @samp{#+TBLFM:} directly |
| 2524 | directly below the table. If you type the equation in the 4th field of | 2661 | below the table. If you type the equation in the 4th field of the 3rd data |
| 2525 | the 3rd data line in the table, the formula will look like | 2662 | line 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 | 2663 | inserting/deleting/swapping column and rows with the appropriate commands, |
| 2527 | with the appropriate commands, @i{absolute references} (but not relative | 2664 | @i{absolute references} (but not relative ones) in stored formulas are |
| 2528 | ones) in stored formulas are modified in order to still reference the | 2665 | modified in order to still reference the same field. To avoid this from |
| 2529 | same field. Of course this is not true if you edit the table structure | 2666 | happening, in particular in range references, anchor ranges at the table |
| 2530 | with normal editing commands---then you must fix the equations yourself. | 2667 | borders (using @code{@@<}, @code{@@>}, @code{$<}, @code{$>}), or at hlines |
| 2531 | The left-hand side of a formula may also be a named field (@pxref{Advanced | 2668 | using the @code{@@I} notation. Automatic adaptation of field references does |
| 2532 | features}), or a last-row reference like @samp{$LR3}. | 2669 | of cause not happen if you edit the table structure with normal editing |
| 2533 | 2670 | commands---then you must fix the equations yourself. | |
| 2534 | Instead of typing an equation into the field, you may also use the | 2671 | |
| 2535 | following command | 2672 | Instead of typing an equation into the field, you may also use the following |
| 2673 | command | ||
| 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 | |||
| 2541 | it to the current field, and stores it. | 2679 | it 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 | 2682 | The left-hand side of a formula can also be a special expression in order to |
| 2683 | assign the formula to a number of different fields. There is no keyboard | ||
| 2684 | shortcut to enter such range formulas. To add them, use the formula editor | ||
| 2685 | (@pxref{Editing and debugging formulas}) or edit the @code{#+TBLFM:} line | ||
| 2686 | directly. | ||
| 2687 | |||
| 2688 | @table @code | ||
| 2689 | @item $2= | ||
| 2690 | Column formula, valid for the entire column. This is so common that Org | ||
| 2691 | treats these formulas in a special way, see @ref{Column formulas}. | ||
| 2692 | @item @@3= | ||
| 2693 | Row formula, applies to all fields in the specified row. @code{@@>=} means | ||
| 2694 | the last row. | ||
| 2695 | @item @@1$2..@@4$3= | ||
| 2696 | Range formula, applies to all fields in the given rectangular range. This | ||
| 2697 | can also be used to assign a formula to some but not all fields in a row. | ||
| 2698 | @item $name= | ||
| 2699 | Named 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 | ||
| 2549 | Often in a table, the same formula should be used for all fields in a | 2707 | When you assign a formula to a simple column reference like @code{$3=}, the |
| 2550 | particular column. Instead of having to copy the formula to all fields | 2708 | same formula will be used in all fields of that column, with the following |
| 2551 | in that column, Org allows you to assign a single formula to an entire | 2709 | very convenient exceptions: (i) If the table contains horizontal separator |
| 2552 | column. If the table contains horizontal separator hlines, everything | 2710 | hlines, everything before the first such line is considered part of the table |
| 2553 | before 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 |
| 2554 | and will not be modified by column formulas. | 2712 | already get a value from a field/range formula will be left alone by column |
| 2713 | formulas. These conditions make column formulas very easy to use. | ||
| 2555 | 2714 | ||
| 2556 | To assign a formula to a column, type it directly into any field in the | 2715 | To assign a formula to a column, type it directly into any field in the |
| 2557 | column, preceded by an equal sign, like @samp{=$1+$2}. When you press | 2716 | column, 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 | |||
| 2560 | and the current field replaced with the result. If the field contains only | 2719 | and 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 |
| 2562 | column, Org will only remember the most recently used formula. In the | 2721 | column, 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 |
| 2564 | side of a column formula cannot currently be the name of column, it | 2723 | left-hand side of a column formula can not be the name of column, it must be |
| 2565 | must be the numeric column reference. | 2724 | the numeric column reference or @code{$>}. |
| 2566 | 2725 | ||
| 2567 | Instead of typing an equation into the field, you may also use the | 2726 | Instead of typing an equation into the field, you may also use the |
| 2568 | following command: | 2727 | following command: |
| @@ -2572,7 +2731,7 @@ following command: | |||
| 2572 | Install a new formula for the current column and replace current field with | 2731 | Install a new formula for the current column and replace current field with |
| 2573 | the result of the formula. The command prompts for a formula, with default | 2732 | the result of the formula. The command prompts for a formula, with default |
| 2574 | taken from the @samp{#+TBLFM} line, applies it to the current field and | 2733 | taken from the @samp{#+TBLFM} line, applies it to the current field and |
| 2575 | stores it. With a numeric prefix argument(e.g. @kbd{C-5 C-c =}) the command | 2734 | stores it. With a numeric prefix argument(e.g.@: @kbd{C-5 C-c =}) the command |
| 2576 | will apply it to that many consecutive fields in the current column. | 2735 | will 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} |
| 2595 | Edit the formula associated with the current column/field in the | 2754 | Edit the formula associated with the current column/field in the |
| 2596 | minibuffer. See @ref{Column formulas}, and @ref{Field formulas}. | 2755 | minibuffer. 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} |
| 2598 | Re-insert the active formula (either a | 2757 | Re-insert the active formula (either a |
| 2599 | field formula, or a column formula) into the current field, so that you | 2758 | field 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} |
| 2698 | Recalculate the current row by first applying the stored column formulas | 2857 | Recalculate the current row by first applying the stored column formulas |
| 2699 | from left to right, and all field formulas in the current row. | 2858 | from 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 | ||
| 2724 | If you want the recalculation of fields to happen automatically, or if | 2883 | If you want the recalculation of fields to happen automatically, or if you |
| 2725 | you want to be able to assign @i{names} to fields and columns, you need | 2884 | want to be able to assign @i{names}@footnote{Such names must start by an |
| 2726 | to reserve the first column of the table for special marking characters. | 2885 | alphabetic character and use only alphanumeric/underscore characters.} to |
| 2886 | fields and columns, you need to reserve the first column of the table for | ||
| 2887 | special 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} |
| 2729 | Rotate the calculation mark in first column through the states @samp{ }, | 2891 | Rotate 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 | |||
| 2849 | be exercised through the @code{#+PLOT:} lines preceding a table. See below | 3011 | be exercised through the @code{#+PLOT:} lines preceding a table. See below |
| 2850 | for a complete list of Org-plot options. For more information and examples | 3012 | for a complete list of Org-plot options. For more information and examples |
| 2851 | see the Org-plot tutorial at | 3013 | see 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 |
| 2876 | Specify a @code{with} option to be inserted for every col being plotted | 3038 | Specify 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...). |
| 2878 | Defaults to @code{lines}. | 3040 | Defaults 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 | |||
| 2892 | flat mapping rather than a @code{3d} slope. | 3054 | flat mapping rather than a @code{3d} slope. |
| 2893 | 3055 | ||
| 2894 | @item timefmt | 3056 | @item timefmt |
| 2895 | Specify format of Org-mode timestamps as they will be parsed by Gnuplot. | 3057 | Specify format of Org mode timestamps as they will be parsed by Gnuplot. |
| 2896 | Defaults to @samp{%Y-%m-%d-%H:%M:%S}. | 3058 | Defaults 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 | |||
| 2976 | point to the corresponding headline. The preferred match for a text link is | 3138 | point to the corresponding headline. The preferred match for a text link is |
| 2977 | a @i{dedicated target}: the same string in double angular brackets. Targets | 3139 | a @i{dedicated target}: the same string in double angular brackets. Targets |
| 2978 | may be located anywhere; sometimes it is convenient to put them into a | 3140 | may be located anywhere; sometimes it is convenient to put them into a |
| 2979 | comment line. For example | 3141 | comment 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} |
| 3056 | file:/myself@@some.where:papers/last.pdf @r{file, path on remote machine} | 3218 | file:/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} |
| 3058 | file:sometextfile::NNN @r{file with line number to jump to} | 3220 | file:sometextfile::NNN @r{file, jump to line number} |
| 3059 | file:projects.org @r{another Org file} | 3221 | file:projects.org @r{another Org file} |
| 3060 | file:projects.org::some words @r{text search in Org file} | 3222 | file:projects.org::some words @r{text search in Org file}@footnote{ |
| 3223 | The actual behavior of the search will depend on the value of | ||
| 3224 | the variable @code{org-link-search-must-match-exact-headline}. If its value | ||
| 3225 | is nil, then a fuzzy text search will be done. If it is t, then only the | ||
| 3226 | exact headline will be matched. If the value is @code{'query-to-create}, | ||
| 3227 | then an exact headline will be searched; if it is not found, then the user | ||
| 3228 | will be queried to create it.} | ||
| 3061 | file:projects.org::*task title @r{heading search in Org file} | 3229 | file:projects.org::*task title @r{heading search in Org file} |
| 3062 | docview:papers/last.pdf::NNN @r{open file in doc-view mode at page NNN} | 3230 | file+sys:/path/to/file @r{open via OS, like double-click} |
| 3231 | file+emacs:/path/to/file @r{force opening by Emacs} | ||
| 3232 | docview:papers/last.pdf::NNN @r{open in doc-view mode at page} | ||
| 3063 | id:B7423F4D-2E8A-471B-8810-C40F074717E9 @r{Link to heading by ID} | 3233 | id:B7423F4D-2E8A-471B-8810-C40F074717E9 @r{Link to heading by ID} |
| 3064 | news:comp.emacs @r{Usenet link} | 3234 | news:comp.emacs @r{Usenet link} |
| 3065 | mailto:adent@@galaxy.net @r{Mail link} | 3235 | mailto:adent@@galaxy.net @r{Mail link} |
| @@ -3076,12 +3246,14 @@ gnus:group @r{Gnus group link} | |||
| 3076 | gnus:group#id @r{Gnus article link} | 3246 | gnus:group#id @r{Gnus article link} |
| 3077 | bbdb:R.*Stallman @r{BBDB link (with regexp)} | 3247 | bbdb:R.*Stallman @r{BBDB link (with regexp)} |
| 3078 | irc:/irc.com/#emacs/bob @r{IRC link} | 3248 | irc:/irc.com/#emacs/bob @r{IRC link} |
| 3079 | info:org:External%20links @r{Info node link (with encoded space)} | 3249 | info:org#External links @r{Info node link} |
| 3080 | shell:ls *.org @r{A shell command} | 3250 | shell:ls *.org @r{A shell command} |
| 3081 | elisp:org-agenda @r{Interactive Elisp command} | 3251 | elisp:org-agenda @r{Interactive Elisp command} |
| 3082 | elisp:(find-file-other-frame "Elisp.org") @r{Elisp form to evaluate} | 3252 | elisp:(find-file-other-frame "Elisp.org") @r{Elisp form to evaluate} |
| 3083 | @end example | 3253 | @end example |
| 3084 | 3254 | ||
| 3255 | For customizing Org to add new link types @ref{Adding hyperlink types}. | ||
| 3256 | |||
| 3085 | A link should be enclosed in double brackets and may contain a | 3257 | A link should be enclosed in double brackets and may contain a |
| 3086 | descriptive text to be displayed instead of the URL (@pxref{Link | 3258 | descriptive text to be displayed instead of the URL (@pxref{Link |
| 3087 | format}), for example: | 3259 | format}), for example: |
| @@ -3120,10 +3292,12 @@ create a link. The link will be stored for later insertion into an Org | |||
| 3120 | buffer (see below). What kind of link will be created depends on the current | 3292 | buffer (see below). What kind of link will be created depends on the current |
| 3121 | buffer: | 3293 | buffer: |
| 3122 | 3294 | ||
| 3123 | @b{Org-mode buffers}@* | 3295 | @b{Org mode buffers}@* |
| 3124 | For Org files, if there is a @samp{<<target>>} at the cursor, the link points | 3296 | For Org files, if there is a @samp{<<target>>} at the cursor, the link points |
| 3125 | to the target. Otherwise it points to the current headline, which will also | 3297 | to the target. Otherwise it points to the current headline, which will also |
| 3126 | be the description. | 3298 | be the description@footnote{If the headline contains a timestamp, it will be |
| 3299 | removed from the link and result in a wrong link -- you should avoid putting | ||
| 3300 | timestamp 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 | ||
| 3224 | Open link at point. This will launch a web browser for URLs (using | 3399 | Open 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 |
| 3226 | the corresponding links, and execute the command in a shell link. When the | 3401 | the 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 | |||
| 3234 | visit the file with Emacs, use a @kbd{C-u} prefix. If you want to avoid | 3409 | visit the file with Emacs, use a @kbd{C-u} prefix. If you want to avoid |
| 3235 | opening in Emacs, use a @kbd{C-u C-u} prefix.@* | 3410 | opening in Emacs, use a @kbd{C-u C-u} prefix.@* |
| 3236 | If the cursor is on a headline, but not on a link, offer all links in the | 3411 | If the cursor is on a headline, but not on a link, offer all links in the |
| 3237 | headline and entry text. | 3412 | headline and entry text. If you want to setup the frame configuration for |
| 3413 | following 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 |
| 3240 | When @code{org-return-follows-link} is set, @kbd{@key{RET}} will also follow | 3417 | When @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 |
| 3263 | Toggle the inline display of linked images. Normally this will only inline | 3440 | Toggle the inline display of linked images. Normally this will only inline |
| 3264 | images that have no description part in the link, i.e. images that will also | 3441 | images that have no description part in the link, i.e.@: images that will also |
| 3265 | be inlined during export. When called with a prefix argument, also display | 3442 | be inlined during export. When called with a prefix argument, also display |
| 3266 | images that do have a link description. You can ask for inline images to be | 3443 | images that do have a link description. You can ask for inline images to be |
| 3267 | displayed at startup by configuring the variable | 3444 | displayed 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 |
| 3272 | Push the current position onto the mark ring, to be able to return | 3449 | Push the current position onto the mark ring, to be able to return |
| 3273 | easily. Commands following an internal link do this automatically. | 3450 | easily. 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 |
| 3364 | In-buffer completion (@pxref{Completion}) can be used after @samp{[} to | 3541 | In-buffer completion (@pxref{Completion}) can be used after @samp{[} to |
| 3365 | complete link abbreviations. You may also define a function | 3542 | complete 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) |
| 3367 | support for inserting such a link with @kbd{C-c C-l}. Such a function should | 3544 | support for inserting such a link with @kbd{C-c C-l}. Such a function should |
| 3368 | not accept any arguments, and return the full link with prefix. | 3545 | not 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. | |||
| 3375 | File links can contain additional information to make Emacs jump to a | 3552 | File links can contain additional information to make Emacs jump to a |
| 3376 | particular location in the file when following a link. This can be a | 3553 | particular location in the file when following a link. This can be a |
| 3377 | line number or a search option after a double@footnote{For backward | 3554 | line number or a search option after a double@footnote{For backward |
| 3378 | compatibility, line numbers can also follow a single colon.} colon. For | 3555 | compatibility, line numbers can also follow a single colon.} colon. For |
| 3379 | example, when the command @kbd{C-c l} creates a link (@pxref{Handling | 3556 | example, when the command @kbd{C-c l} creates a link (@pxref{Handling |
| 3380 | links}) to a file, it encodes the words in the current line as a search | 3557 | links}) to a file, it encodes the words in the current line as a search |
| 3381 | string that can be used to find this line back later when following the | 3558 | string 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/ |
| 3409 | Do a regular expression search for @code{regexp}. This uses the Emacs | 3586 | Do a regular expression search for @code{regexp}. This uses the Emacs |
| 3410 | command @code{occur} to list all matches in a separate window. If the | 3587 | command @code{occur} to list all matches in a separate window. If the |
| 3411 | target file is in Org-mode, @code{org-occur} is used to create a | 3588 | target file is in Org mode, @code{org-occur} is used to create a |
| 3412 | sparse tree with the matches. | 3589 | sparse 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 | ||
| 3450 | Org-mode does not maintain TODO lists as separate documents@footnote{Of | 3627 | Org mode does not maintain TODO lists as separate documents@footnote{Of |
| 3451 | course, you can make a document that contains only long lists of TODO items, | 3628 | course, you can make a document that contains only long lists of TODO items, |
| 3452 | but this is not required.}. Instead, TODO items are an integral part of the | 3629 | but this is not required.}. Instead, TODO items are an integral part of the |
| 3453 | notes file, because TODO items usually come up while taking notes! With Org | 3630 | notes 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 | |||
| 3456 | item emerged is always present. | 3633 | item emerged is always present. |
| 3457 | 3634 | ||
| 3458 | Of course, this technique for managing TODO items scatters them | 3635 | Of course, this technique for managing TODO items scatters them |
| 3459 | throughout your notes file. Org-mode compensates for this by providing | 3636 | throughout your notes file. Org mode compensates for this by providing |
| 3460 | methods to give you an overview of all the things that you have to do. | 3637 | methods 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 | |||
| 3517 | headings hierarchy above them. With a prefix argument (or by using @kbd{C-c | 3694 | headings 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 |
| 3519 | you can also give a list of keywords like @code{KWD1|KWD2|...} to list | 3696 | you can also give a list of keywords like @code{KWD1|KWD2|...} to list |
| 3520 | entries that match any one of these keywords. With numeric prefix argument | 3697 | entries that match any one of these keywords. With a numeric prefix argument |
| 3521 | N, show the tree for the Nth keyword in the variable | 3698 | N, 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, |
| 3523 | both un-done and done. | 3700 | both 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 |
| 3544 | By default, marked TODO entries have one of only two states: TODO and | 3721 | By default, marked TODO entries have one of only two states: TODO and |
| 3545 | DONE. Org-mode allows you to classify TODO items in more complex ways | 3722 | DONE. Org mode allows you to classify TODO items in more complex ways |
| 3546 | with @emph{TODO keywords} (stored in @code{org-todo-keywords}). With | 3723 | with @emph{TODO keywords} (stored in @code{org-todo-keywords}). With |
| 3547 | special setup, the TODO keyword system can work differently in different | 3724 | special setup, the TODO keyword system can work differently in different |
| 3548 | files. | 3725 | files. |
| @@ -3567,7 +3744,7 @@ TODO items in particular (@pxref{Tags}). | |||
| 3567 | 3744 | ||
| 3568 | You can use TODO keywords to indicate different @emph{sequential} states | 3745 | You can use TODO keywords to indicate different @emph{sequential} states |
| 3569 | in the process of working on an item, for example@footnote{Changing | 3746 | in the process of working on an item, for example@footnote{Changing |
| 3570 | this variable only becomes effective after restarting Org-mode in a | 3747 | this variable only becomes effective after restarting Org mode in a |
| 3571 | buffer.}: | 3748 | buffer.}: |
| 3572 | 3749 | ||
| 3573 | @lisp | 3750 | @lisp |
| @@ -3610,7 +3787,7 @@ be set up like this: | |||
| 3610 | 3787 | ||
| 3611 | In this case, different keywords do not indicate a sequence, but rather | 3788 | In this case, different keywords do not indicate a sequence, but rather |
| 3612 | different types. So the normal work flow would be to assign a task to a | 3789 | different types. So the normal work flow would be to assign a task to a |
| 3613 | person, and later to mark it DONE. Org-mode supports this style by adapting | 3790 | person, and later to mark it DONE. Org mode supports this style by adapting |
| 3614 | the workings of the command @kbd{C-c C-t}@footnote{This is also true for the | 3791 | the 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 |
| 3616 | times in succession, it will still cycle through all names, in order to first | 3793 | times 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 | ||
| 3644 | The keywords should all be different, this helps Org-mode to keep track | 3821 | The keywords should all be different, this helps Org mode to keep track |
| 3645 | of which subsequence should be used for a given entry. In this setup, | 3822 | of 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 |
| 3691 | If you then press @code{C-c C-t} followed by the selection key, the entry | 3868 | If you then press @kbd{C-c C-t} followed by the selection key, the entry |
| 3692 | will be switched to this state. @key{SPC} can be used to remove any TODO | 3869 | will be switched to this state. @kbd{SPC} can be used to remove any TODO |
| 3693 | keyword from an entry.@footnote{Check also the variable | 3870 | keyword 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 |
| 3695 | state through the tags interface (@pxref{Setting tags}), in case you like to | 3872 | state 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 | |||
| 3738 | if no bar is there) must always mean that the item is DONE (although you | 3915 | if no bar is there) must always mean that the item is DONE (although you |
| 3739 | may use a different word). After changing one of these lines, use | 3916 | may 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 |
| 3741 | known to Org-mode@footnote{Org-mode parses these lines only when | 3918 | known to Org mode@footnote{Org mode parses these lines only when |
| 3742 | Org-mode is activated after visiting a file. @kbd{C-c C-c} with the | 3919 | Org mode is activated after visiting a file. @kbd{C-c C-c} with the |
| 3743 | cursor in a line starting with @samp{#+} is simply restarting Org-mode | 3920 | cursor in a line starting with @samp{#+} is simply restarting Org mode |
| 3744 | for the current buffer.}. | 3921 | for 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 |
| 3753 | Org-mode highlights TODO keywords with special faces: @code{org-todo} | 3930 | Org mode highlights TODO keywords with special faces: @code{org-todo} |
| 3754 | for keywords indicating that an item still has to be acted upon, and | 3931 | for 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 |
| 3756 | you are using more than 2 different states, you might want to use | 3933 | you 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 | ||
| 3768 | While using a list with face properties as shown for CANCELED @emph{should} | 3945 | While using a list with face properties as shown for CANCELED @emph{should} |
| 3769 | work, this does not aways seem to be the case. If necessary, define a | 3946 | work, this does not always seem to be the case. If necessary, define a |
| 3770 | special face and use that. A string is interpreted as a color. The variable | 3947 | special 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 |
| 3772 | foreground or a background color. | 3949 | foreground 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 | ||
| 3841 | Org-mode can automatically record a timestamp and possibly a note when | 4018 | Org mode can automatically record a timestamp and possibly a note when |
| 3842 | you mark a TODO item as DONE, or even each time you change the state of | 4019 | you mark a TODO item as DONE, or even each time you change the state of |
| 3843 | a TODO item. This system is highly configurable, settings can be on a | 4020 | a TODO item. This system is highly configurable, settings can be on a |
| 3844 | per-keyword basis and can be localized to a file or even a subtree. For | 4021 | per-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 | |||
| 3902 | also overrule the setting of this variable for a subtree by setting a | 4079 | also 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 | ||
| 3905 | Since it is normally too much to record a note for every state, Org-mode | 4082 | Since it is normally too much to record a note for every state, Org mode |
| 3906 | expects configuration on a per-keyword basis for this. This is achieved by | 4083 | expects configuration on a per-keyword basis for this. This is achieved by |
| 3907 | adding special markers @samp{!} (for a timestamp) and @samp{@@} (for a note) | 4084 | adding special markers @samp{!} (for a timestamp) or @samp{@@} (for a note |
| 3908 | in parentheses after each keyword. For example, with the setting | 4085 | with timestamp) in parentheses after each keyword. For example, with the |
| 4086 | setting | ||
| 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 | ||
| 4093 | To 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 |
| 3917 | you not only define global TODO keywords and fast access keys, but also | 4098 | you not only define global TODO keywords and fast access keys, but also |
| 3918 | request that a time is recorded when the entry is set to | 4099 | request that a time is recorded when the entry is set to |
| 3919 | DONE@footnote{It is possible that Org-mode will record two timestamps | 4100 | DONE@footnote{It is possible that Org mode will record two timestamps |
| 3920 | when you are using both @code{org-log-done} and state change logging. | 4101 | when you are using both @code{org-log-done} and state change logging. |
| 3921 | However, it will never prompt for two notes---if you have configured | 4102 | However, it will never prompt for two notes---if you have configured |
| 3922 | both, the state change recording note will take precedence and cancel | 4103 | both, the state change recording note will take precedence and cancel |
| @@ -3972,7 +4153,7 @@ called ``habits''. A habit has the following properties: | |||
| 3972 | You have enabled the @code{habits} module by customizing the variable | 4153 | You have enabled the @code{habits} module by customizing the variable |
| 3973 | @code{org-modules}. | 4154 | @code{org-modules}. |
| 3974 | @item | 4155 | @item |
| 3975 | The habit is a TODO, with a TODO keyword representing an open state. | 4156 | The habit is a TODO item, with a TODO keyword representing an open state. |
| 3976 | @item | 4157 | @item |
| 3977 | The property @code{STYLE} is set to the value @code{habit}. | 4158 | The 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 | |||
| 3986 | three days, but at most every two days. | 4167 | three days, but at most every two days. |
| 3987 | @item | 4168 | @item |
| 3988 | You must also have state logging for the @code{DONE} state enabled, in order | 4169 | You must also have state logging for the @code{DONE} state enabled, in order |
| 3989 | for historical data to be represented in the consistency graph. If it's not | 4170 | for historical data to be represented in the consistency graph. If it is not |
| 3990 | enabled it's not an error, but the consistency graphs will be largely | 4171 | enabled it is not an error, but the consistency graphs will be largely |
| 3991 | meaningless. | 4172 | meaningless. |
| 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 |
| 4047 | The buffer column at which the consistency graph should be drawn. This will | 4228 | The buffer column at which the consistency graph should be drawn. This will |
| 4048 | overwrite any text in that column, so it's a good idea to keep your habits' | 4229 | overwrite any text in that column, so it is a good idea to keep your habits' |
| 4049 | titles brief and to the point. | 4230 | titles brief and to the point. |
| 4050 | @item org-habit-preceding-days | 4231 | @item org-habit-preceding-days |
| 4051 | The amount of history, in days before today, to appear in consistency graphs. | 4232 | The 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 | ||
| 4068 | If you use Org-mode extensively, you may end up with enough TODO items that | 4249 | If you use Org mode extensively, you may end up with enough TODO items that |
| 4069 | it starts to make sense to prioritize them. Prioritizing can be done by | 4250 | it starts to make sense to prioritize them. Prioritizing can be done by |
| 4070 | placing a @emph{priority cookie} into the headline of a TODO item, like this | 4251 | placing 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 |
| 4078 | By default, Org-mode supports three priorities: @samp{A}, @samp{B}, and | 4259 | By 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 |
| 4080 | treated just like priority @samp{B}. Priorities make a difference only for | 4261 | treated just like priority @samp{B}. Priorities make a difference only for |
| 4081 | sorting in the agenda (@pxref{Weekly/daily agenda}); outside the agenda, they | 4262 | sorting in the agenda (@pxref{Weekly/daily agenda}); outside the agenda, they |
| 4082 | have no inherent meaning to Org-mode. The cookies can be highlighted with | 4263 | have no inherent meaning to Org mode. The cookies can be highlighted with |
| 4083 | special faces by customizing the variable @code{org-priority-faces}. | 4264 | special faces by customizing the variable @code{org-priority-faces}. |
| 4084 | 4265 | ||
| 4085 | Priorities can be attached to any outline node; they do not need to be TODO | 4266 | Priorities 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 |
| 4188 | Every item in a plain list@footnote{With the exception of description | 4369 | Every item in a plain list@footnote{With the exception of description |
| 4189 | lists. But you can allow it by modifying @code{org-list-automatic-rules} | 4370 | lists. But you can allow it by modifying @code{org-list-automatic-rules} |
| 4190 | accordingly.} (@pxref{Plain lists}) can be made into a checkbox by starting | 4371 | accordingly.} (@pxref{Plain lists}) can be made into a checkbox by starting |
| 4191 | it with the string @samp{[ ]}. This feature is similar to TODO items | 4372 | it 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. | |||
| 4225 | Each cookie covers checkboxes of direct children structurally below the | 4406 | Each cookie covers checkboxes of direct children structurally below the |
| 4226 | headline/item on which the cookie appears@footnote{Set the variable | 4407 | headline/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 |
| 4228 | represent the all checkboxes below the cookie, not just the direct | 4409 | count all checkboxes below the cookie, not just those belonging to direct |
| 4229 | children.}. You have to insert the cookie yourself by typing either | 4410 | children.}. 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} |
| 4231 | result, as in the examples above. With @samp{[%]} you get information about | 4412 | result, 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} |
| 4249 | Toggle checkbox status or (with prefix arg) checkbox presence at point. With | 4430 | Toggle checkbox status or (with prefix arg) checkbox presence at point. |
| 4250 | double prefix argument, set it to @samp{[-]}, which is considered to be an | 4431 | With a single prefix argument, add an empty checkbox or remove the current |
| 4251 | intermediate state. | 4432 | one@footnote{`C-u C-c C-c' on the @emph{first} item of a list with no checkbox |
| 4433 | will add checkboxes to the rest of the list.}. With a double prefix argument, set it to @samp{[-]}, which is | ||
| 4434 | considered 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} |
| 4253 | Toggle checkbox status or (with prefix arg) checkbox presence at point. With | 4436 | Toggle checkbox status or (with prefix arg) checkbox presence at point. With |
| 4254 | double prefix argument, set it to @samp{[-]}, which is considered to be an | 4437 | double 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). | |||
| 4265 | If there is no active region, just toggle the checkbox at point. | 4448 | If 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} |
| 4268 | Insert a new item with a checkbox. | 4451 | Insert a new item with a checkbox. This works only if the cursor is already |
| 4269 | This works only if the cursor is already in a plain list item | 4452 | in 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 | |||
| 4283 | updated automatically if you toggle checkboxes with @kbd{C-c C-c} and make | 4465 | updated automatically if you toggle checkboxes with @kbd{C-c C-c} and make |
| 4284 | new ones with @kbd{M-S-@key{RET}}. TODO statistics cookies update when | 4466 | new ones with @kbd{M-S-@key{RET}}. TODO statistics cookies update when |
| 4285 | changing TODO states. If you delete boxes/entries or add/change them by | 4467 | changing TODO states. If you delete boxes/entries or add/change them by |
| 4286 | hand, use this command to get things back into sync. Or simply toggle any | 4468 | hand, use this command to get things back into sync. |
| 4287 | entry 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 | ||
| 4297 | An excellent way to implement labels and contexts for cross-correlating | 4478 | An excellent way to implement labels and contexts for cross-correlating |
| 4298 | information is to assign @i{tags} to headlines. Org-mode has extensive | 4479 | information is to assign @i{tags} to headlines. Org mode has extensive |
| 4299 | support for tags. | 4480 | support 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 |
| 4377 | Enter new tags for the current headline. Org-mode will either offer | 4558 | Enter new tags for the current headline. Org mode will either offer |
| 4378 | completion or a special single-key interface for setting tags, see | 4559 | completion or a special single-key interface for setting tags, see |
| 4379 | below. After pressing @key{RET}, the tags will be inserted and aligned | 4560 | below. After pressing @key{RET}, the tags will be inserted and aligned |
| 4380 | to @code{org-tags-column}. When called with a @kbd{C-u} prefix, all | 4561 | to @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 |
| 4389 | Org will support tag insertion based on a @emph{list of tags}. By | 4570 | Org supports tag insertion based on a @emph{list of tags}. By |
| 4390 | default this list is constructed dynamically, containing all tags | 4571 | default this list is constructed dynamically, containing all tags |
| 4391 | currently used in the buffer. You may also globally specify a hard list | 4572 | currently used in the buffer. You may also globally specify a hard list |
| 4392 | of tags with the variable @code{org-tag-alist}. Finally you can set | 4573 | of 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 | ||
| 4420 | By default Org-mode uses the standard minibuffer completion facilities for | 4601 | By default Org mode uses the standard minibuffer completion facilities for |
| 4421 | entering tags. However, it also implements another, quicker, tag selection | 4602 | entering tags. However, it also implements another, quicker, tag selection |
| 4422 | method called @emph{fast tag selection}. This allows you to select and | 4603 | method called @emph{fast tag selection}. This allows you to select and |
| 4423 | deselect tags with just a single key press. For this to work well you should | 4604 | deselect 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} |
| 4499 | Enter a tag in the minibuffer, even if the tag is not in the predefined | 4680 | Enter a tag in the minibuffer, even if the tag is not in the predefined |
| 4500 | list. You will be able to complete on all tags present in the buffer. | 4681 | list. You will be able to complete on all tags present in the buffer. |
| 4682 | You 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} |
| 4503 | Clear all tags for this line. | 4686 | Clear 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 | |||
| 4548 | information into special lists. | 4731 | information 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} |
| 4552 | Create a sparse tree with all headlines matching a tags search. With a | 4735 | Create 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 | ||
| 4577 | Properties are a set of key-value pairs associated with an entry. There | 4760 | A property is a key-value pair associated with an entry. Properties can be |
| 4578 | are two main applications for properties in Org-mode. First, properties | 4761 | set so they are associated with a single entry, with every entry in a tree, |
| 4579 | are like tags, but with a value. Second, you can use properties to | 4762 | or with every entry in an Org mode file. |
| 4580 | implement (very basic) database capabilities in an Org buffer. For | 4763 | |
| 4581 | an example of the first application, imagine maintaining a file where | 4764 | There are two main applications for properties in Org mode. First, |
| 4765 | properties are like tags, but with a value. Imagine maintaining a file where | ||
| 4582 | you document bugs and plan releases for a piece of software. Instead of | 4766 | you document bugs and plan releases for a piece of software. Instead of |
| 4583 | using tags like @code{:release_1:}, @code{:release_2:}, one can use a | 4767 | using tags like @code{:release_1:}, @code{:release_2:}, you can use a |
| 4584 | property, say @code{:Release:}, that in different subtrees has different | 4768 | property, say @code{:Release:}, that in different subtrees has different |
| 4585 | values, such as @code{1.0} or @code{2.0}. For an example of the second | 4769 | values, such as @code{1.0} or @code{2.0}. Second, you can use properties to |
| 4586 | application of properties, imagine keeping track of your music CDs, | 4770 | implement (very basic) database capabilities in an Org buffer. Imagine |
| 4587 | where properties could be things such as the album, artist, date of | 4771 | keeping track of your music CDs, where properties could be things such as the |
| 4588 | release, number of tracks, and so on. | 4772 | album, artist, date of release, number of tracks, and so on. |
| 4589 | 4773 | ||
| 4590 | Properties can be conveniently edited and viewed in column view | 4774 | Properties 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 | ||
| 4607 | Properties are key-value pairs. They need to be inserted into a special | 4791 | Properties are key-value pairs. When they are associated with a single entry |
| 4792 | or with a tree they need to be inserted into a special | ||
| 4608 | drawer (@pxref{Drawers}) with the name @code{PROPERTIES}. Each property | 4793 | drawer (@pxref{Drawers}) with the name @code{PROPERTIES}. Each property |
| 4609 | is specified on a single line, with the key (surrounded by colons) | 4794 | is specified on a single line, with the key (surrounded by colons) |
| 4610 | first, and the value after it. Here is an example: | 4795 | first, 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 | ||
| 4810 | Depending on the value of @code{org-use-property-inheritance}, a property set | ||
| 4811 | this way will either be associated with a single entry, or the sub-tree | ||
| 4812 | defined by the entry, see @ref{Property inheritance}. | ||
| 4813 | |||
| 4625 | You may define the allowed values for a particular property @samp{:Xyz:} | 4814 | You may define the allowed values for a particular property @samp{:Xyz:} |
| 4626 | by setting a property @samp{:Xyz_ALL:}. This special property is | 4815 | by 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 | ||
| 4838 | If you want to add to the value of an existing property, append a @code{+} to | ||
| 4839 | the property name. The following results in the property @code{var} having | ||
| 4840 | the value ``foo=1 bar=2''. | ||
| 4841 | @cindex property, + | ||
| 4842 | @example | ||
| 4843 | #+PROPERTY: var foo=1 | ||
| 4844 | #+PROPERTY: var+ bar=2 | ||
| 4845 | @end example | ||
| 4846 | |||
| 4847 | It is also possible to add to the values of inherited properties. The | ||
| 4848 | following results in the @code{genres} property having the value ``Classic | ||
| 4849 | Baroque'' 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 | ||
| 4867 | Note that a property can only have one entry per Drawer. | ||
| 4868 | |||
| 4649 | @vindex org-global-properties | 4869 | @vindex org-global-properties |
| 4650 | Property values set with the global variable | 4870 | Property 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. | |||
| 4655 | The following commands help to work with properties: | 4875 | The 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} |
| 4659 | After an initial colon in a line, complete property keys. All keys used | 4879 | After an initial colon in a line, complete property keys. All keys used |
| 4660 | in the current file will be offered as possible completions. | 4880 | in 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 | ||
| 4689 | Special properties provide an alternative access method to Org-mode | 4909 | Special properties provide an alternative access method to Org mode features, |
| 4690 | features, like the TODO state or the priority of an entry, discussed in the | 4910 | like the TODO state or the priority of an entry, discussed in the previous |
| 4691 | previous chapters. This interface exists so that you can include | 4911 | chapters. This interface exists so that you can include these states in a |
| 4692 | these states in a column view (@pxref{Column view}), or to use them in | 4912 | column view (@pxref{Column view}), or to use them in queries. The following |
| 4693 | queries. The following property names are special and should not be | 4913 | property names are special and (except for @code{:CATEGORY:}) should not be |
| 4694 | used as keys in the properties drawer: | 4914 | used 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 |
| 4711 | TODO @r{The TODO keyword of the entry.} | 4932 | TODO @r{The TODO keyword of the entry.} |
| 4712 | TAGS @r{The tags defined directly in the headline.} | 4933 | TAGS @r{The tags defined directly in the headline.} |
| @@ -4719,9 +4940,10 @@ CLOSED @r{When was this entry closed?} | |||
| 4719 | TIMESTAMP @r{The first keyword-less timestamp in the entry.} | 4940 | TIMESTAMP @r{The first keyword-less timestamp in the entry.} |
| 4720 | TIMESTAMP_IA @r{The first inactive timestamp in the entry.} | 4941 | TIMESTAMP_IA @r{The first inactive timestamp in the entry.} |
| 4721 | CLOCKSUM @r{The sum of CLOCK intervals in the subtree. @code{org-clock-sum}} | 4942 | CLOCKSUM @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.} |
| 4723 | BLOCKED @r{"t" if task is currently blocked by children or siblings} | 4944 | BLOCKED @r{"t" if task is currently blocked by children or siblings} |
| 4724 | ITEM @r{The content of the entry.} | 4945 | ITEM @r{The content of the entry.} |
| 4946 | FILE @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 |
| 4769 | The outline structure of Org-mode documents lends itself to an | 4991 | The outline structure of Org mode documents lends itself to an |
| 4770 | inheritance model of properties: if the parent in a tree has a certain | 4992 | inheritance model of properties: if the parent in a tree has a certain |
| 4771 | property, the children can inherit this property. Org-mode does not | 4993 | property, the children can inherit this property. Org mode does not |
| 4772 | turn this on by default, because it can slow down property searches | 4994 | turn this on by default, because it can slow down property searches |
| 4773 | significantly and is often not needed. However, if you find inheritance | 4995 | significantly and is often not needed. However, if you find inheritance |
| 4774 | useful, you can turn it on by setting the variable | 4996 | useful, 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 | |||
| 4779 | interpreted as an explicit undefine of the property, so that inheritance | 5001 | interpreted as an explicit undefine of the property, so that inheritance |
| 4780 | search will stop at this value and return @code{nil}. | 5002 | search will stop at this value and return @code{nil}. |
| 4781 | 5003 | ||
| 4782 | Org-mode has a few properties for which inheritance is hard-coded, at | 5004 | Org mode has a few properties for which inheritance is hard-coded, at |
| 4783 | least for the special applications for which they are used: | 5005 | least 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}). | |||
| 4810 | A great way to view and edit properties in an outline tree is | 5032 | A 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 |
| 4812 | table row. Columns in this table provide access to properties of the | 5034 | table row. Columns in this table provide access to properties of the |
| 4813 | entries. Org-mode implements columns by overlaying a tabular structure | 5035 | entries. Org mode implements columns by overlaying a tabular structure |
| 4814 | over the headline of each item. While the headlines have been turned | 5036 | over the headline of each item. While the headlines have been turned |
| 4815 | into a table row, you can still change the visibility of the outline | 5037 | into a table row, you can still change the visibility of the outline |
| 4816 | tree. For example, you get a compact table by switching to CONTENTS | 5038 | tree. 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 |
| 4914 | Be aware that you can only have one summary type for any property you | 5136 | Be aware that you can only have one summary type for any property you |
| 4915 | include. Subsequent columns referencing the same property will all display the | 5137 | include. Subsequent columns referencing the same property will all display the |
| 4916 | same summary information. | 5138 | same summary information. |
| 4917 | 5139 | ||
| 4918 | The @code{est+} summary type requires further explanation. It is used for | 5140 | The @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 | |||
| 4923 | average at 5.5 days, but the first represents a more predictable delivery. | 5145 | average at 5.5 days, but the first represents a more predictable delivery. |
| 4924 | 5146 | ||
| 4925 | When combining a set of such estimates, simply adding the lows and highs | 5147 | When combining a set of such estimates, simply adding the lows and highs |
| 4926 | produces an unrealistically wide result. Instead, @code{est+} adds the | 5148 | produces an unrealistically wide result. Instead, @code{est+} adds the |
| 4927 | statistical mean and variance of the sub-tasks, generating a final estimate | 5149 | statistical mean and variance of the sub-tasks, generating a final estimate |
| 4928 | from the sum. For example, suppose you had ten tasks, each of which was | 5150 | from the sum. For example, suppose you had ten tasks, each of which was |
| 4929 | estimated at 0.5 to 2 days of work. Straight addition produces an estimate | 5151 | estimated at 0.5 to 2 days of work. Straight addition produces an estimate |
| 4930 | of 5 to 20 days, representing what to expect if everything goes either | 5152 | of 5 to 20 days, representing what to expect if everything goes either |
| 4931 | extremely well or extremely poorly. In contrast, @code{est+} estimates the | 5153 | extremely well or extremely poorly. In contrast, @code{est+} estimates the |
| 4932 | full job more realistically, at 10-15 days. | 5154 | full job more realistically, at 10-15 days. |
| 4933 | 5155 | ||
| 4934 | Here is an example for a complete columns definition, along with allowed | 5156 | Here is an example for a complete columns definition, along with allowed |
| @@ -4944,7 +5166,7 @@ values. | |||
| 4944 | 5166 | ||
| 4945 | @noindent | 5167 | @noindent |
| 4946 | The first column, @samp{%25ITEM}, means the first 25 characters of the | 5168 | The first column, @samp{%25ITEM}, means the first 25 characters of the |
| 4947 | item itself, i.e. of the headline. You probably always should start the | 5169 | item itself, i.e.@: of the headline. You probably always should start the |
| 4948 | column definition with the @samp{ITEM} specifier. The other specifiers | 5170 | column definition with the @samp{ITEM} specifier. The other specifiers |
| 4949 | create columns @samp{Owner} with a list of names as allowed values, for | 5171 | create 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 | ||
| 5113 | To assist project planning, TODO items can be labeled with a date and/or | 5335 | To assist project planning, TODO items can be labeled with a date and/or |
| 5114 | a time. The specially formatted string carrying the date and time | 5336 | a time. The specially formatted string carrying the date and time |
| 5115 | information is called a @emph{timestamp} in Org-mode. This may be a | 5337 | information is called a @emph{timestamp} in Org mode. This may be a |
| 5116 | little confusing because timestamp is often used as indicating when | 5338 | little confusing because timestamp is often used as indicating when |
| 5117 | something was created or last changed. However, in Org-mode this term | 5339 | something was created or last changed. However, in Org mode this term |
| 5118 | is used in a much wider sense. | 5340 | is 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 | ||
| 5139 | A timestamp is a specification of a date (possibly with a time or a range of | 5361 | A timestamp is a specification of a date (possibly with a time or a range of |
| 5140 | times) in a special format, either @samp{<2003-09-16 Tue>} or | 5362 | times) 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 | 5363 | simplest form, the day name is optional when you type the date yourself. |
| 5142 | 12:00-12:30>}@footnote{This is inspired by the standard ISO 8601 date/time | 5364 | However, any dates inserted or modified by Org will add that day name, for |
| 5143 | format. To use an alternative format, see @ref{Custom time format}.}. A | 5365 | reading convenience.} or @samp{<2003-09-16 Tue 09:39>} or @samp{<2003-09-16 |
| 5144 | timestamp can appear anywhere in the headline or body of an Org tree entry. | 5366 | Tue 12:00-12:30>}@footnote{This is inspired by the standard ISO 8601 |
| 5145 | Its presence causes entries to be shown on specific dates in the agenda | 5367 | date/time format. To use an alternative format, see @ref{Custom time |
| 5146 | (@pxref{Weekly/daily agenda}). We distinguish: | 5368 | format}.}. A timestamp can appear anywhere in the headline or body of an Org |
| 5369 | tree entry. Its presence causes entries to be shown on specific dates in the | ||
| 5370 | agenda (@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 | ||
| 5151 | A simple timestamp just assigns a date/time to an item. This is just | 5376 | A simple timestamp just assigns a date/time to an item. This is just |
| 5152 | like writing down an appointment or event in a paper agenda. In the | 5377 | like writing down an appointment or event in a paper agenda. In the |
| 5153 | timeline and agenda displays, the headline of an entry associated with a | 5378 | timeline 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 |
| 5173 | For more complex date specifications, Org-mode supports using the | 5398 | For more complex date specifications, Org mode supports using the special |
| 5174 | special sexp diary entries implemented in the Emacs calendar/diary | 5399 | sexp diary entries implemented in the Emacs calendar/diary |
| 5175 | package. For example | 5400 | package@footnote{When working with the standard diary sexp functions, you |
| 5401 | need to be very careful with the order of the arguments. That order depend | ||
| 5402 | evilly on the variable @code{calendar-date-style} (or, for older Emacs | ||
| 5403 | versions, @code{european-calendar-style}). For example, to specify a date | ||
| 5404 | December 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 | ||
| 5406 | the settings. This has been the source of much confusion. Org mode users | ||
| 5407 | can resort to special versions of these functions like @code{org-date} or | ||
| 5408 | @code{org-anniversary}. These work just like the corresponding @code{diary-} | ||
| 5409 | functions, but with stable ISO order of arguments (year, month, day) wherever | ||
| 5410 | applicable, 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 | ||
| 5212 | For Org-mode to recognize timestamps, they need to be in the specific | 5447 | For Org mode to recognize timestamps, they need to be in the specific |
| 5213 | format. All commands listed below produce timestamps in the correct | 5448 | format. All commands listed below produce timestamps in the correct |
| 5214 | format. | 5449 | format. |
| 5215 | 5450 | ||
| @@ -5233,6 +5468,9 @@ Like @kbd{C-c .} and @kbd{C-c !}, but use the alternative format which | |||
| 5233 | contains date and time. The default time can be rounded to multiples of 5 | 5468 | contains date and time. The default time can be rounded to multiples of 5 |
| 5234 | minutes, see the option @code{org-time-stamp-rounding-minutes}. | 5469 | minutes, see the option @code{org-time-stamp-rounding-minutes}. |
| 5235 | @c | 5470 | @c |
| 5471 | @orgkey{C-c C-c} | ||
| 5472 | Normalize 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} |
| 5237 | Insert a timestamp corresponding to the cursor date in the Calendar. | 5475 | Insert 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, | |||
| 5256 | shifting the time block with constant length. To change the length, modify | 5494 | shifting the time block with constant length. To change the length, modify |
| 5257 | the second time. Note that if the cursor is in a headline and not at a | 5495 | the second time. Note that if the cursor is in a headline and not at a |
| 5258 | timestamp, these same keys modify the priority of an item. | 5496 | timestamp, 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 |
| 5260 | related modes (@pxref{Conflicts}). | 5498 | related 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 |
| 5281 | When Org-mode prompts for a date/time, the default is shown in default | 5519 | When Org mode prompts for a date/time, the default is shown in default |
| 5282 | date/time format, and the prompt therefore seems to ask for a specific | 5520 | date/time format, and the prompt therefore seems to ask for a specific |
| 5283 | format. But it will in fact accept any string containing some date and/or | 5521 | format. But it will in fact accept any string containing some date and/or |
| 5284 | time information, and it is really smart about interpreting your input. You | 5522 | time information, and it is really smart about interpreting your input. You |
| 5285 | can, for example, use @kbd{C-y} to paste a (possibly multi-line) string | 5523 | can, for example, use @kbd{C-y} to paste a (possibly multi-line) string |
| 5286 | copied from an email message. Org-mode will find whatever information is in | 5524 | copied from an email message. Org mode will find whatever information is in |
| 5287 | there and derive anything you have not specified from the @emph{default date | 5525 | there and derive anything you have not specified from the @emph{default date |
| 5288 | and time}. The default is usually the current date and time, but when | 5526 | and time}. The default is usually the current date and time, but when |
| 5289 | modifying an existing timestamp, or when entering the second stamp of a | 5527 | modifying an existing timestamp, or when entering the second stamp of a |
| 5290 | range, it is taken from the stamp in the buffer. When filling in | 5528 | range, it is taken from the stamp in the buffer. When filling in |
| 5291 | information, Org-mode assumes that most of the time you will want to enter a | 5529 | information, Org mode assumes that most of the time you will want to enter a |
| 5292 | date in the future: if you omit the month/year and the given day/month is | 5530 | date 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 |
| 5294 | variable @code{org-read-date-prefer-future}. You may set that variable to | 5532 | variable @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 | |||
| 5297 | time prompt will show this with @samp{(=>F).} | 5535 | time prompt will show this with @samp{(=>F).} |
| 5298 | 5536 | ||
| 5299 | For example, let's assume that today is @b{June 13, 2006}. Here is how | 5537 | For example, let's assume that today is @b{June 13, 2006}. Here is how |
| 5300 | various inputs will be interpreted, the items filled in by Org-mode are | 5538 | various inputs will be interpreted, the items filled in by Org mode are |
| 5301 | in @b{bold}. | 5539 | in @b{bold}. |
| 5302 | 5540 | ||
| 5303 | @example | 5541 | @example |
| 5304 | 3-2-5 --> 2003-02-05 | 5542 | 3-2-5 @result{} 2003-02-05 |
| 5305 | 2/5/3 --> 2003-02-05 | 5543 | 2/5/3 @result{} 2003-02-05 |
| 5306 | 14 --> @b{2006}-@b{06}-14 | 5544 | 14 @result{} @b{2006}-@b{06}-14 |
| 5307 | 12 --> @b{2006}-@b{07}-12 | 5545 | 12 @result{} @b{2006}-@b{07}-12 |
| 5308 | 2/5 --> @b{2007}-02-05 | 5546 | 2/5 @result{} @b{2007}-02-05 |
| 5309 | Fri --> nearest Friday (default date or later) | 5547 | Fri @result{} nearest Friday (default date or later) |
| 5310 | sep 15 --> @b{2006}-09-15 | 5548 | sep 15 @result{} @b{2006}-09-15 |
| 5311 | feb 15 --> @b{2007}-02-15 | 5549 | feb 15 @result{} @b{2007}-02-15 |
| 5312 | sep 12 9 --> 2009-09-12 | 5550 | sep 12 9 @result{} 2009-09-12 |
| 5313 | 12:45 --> @b{2006}-@b{06}-@b{13} 12:45 | 5551 | 12:45 @result{} @b{2006}-@b{06}-@b{13} 12:45 |
| 5314 | 22 sept 0:34 --> @b{2006}-09-22 0:34 | 5552 | 22 sept 0:34 @result{} @b{2006}-09-22 0:34 |
| 5315 | w4 --> ISO week for of the current year @b{2006} | 5553 | w4 @result{} ISO week for of the current year @b{2006} |
| 5316 | 2012 w4 fri --> Friday of ISO week 4 in 2012 | 5554 | 2012 w4 fri @result{} Friday of ISO week 4 in 2012 |
| 5317 | 2012-w04-5 --> Same as above | 5555 | 2012-w04-5 @result{} Same as above |
| 5318 | @end example | 5556 | @end example |
| 5319 | 5557 | ||
| 5320 | Furthermore you can specify a relative date by giving, as the | 5558 | Furthermore 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 | |||
| 5323 | single plus or minus, the date is always relative to today. With a | 5561 | single plus or minus, the date is always relative to today. With a |
| 5324 | double plus or minus, it is relative to the default date. If instead of | 5562 | double plus or minus, it is relative to the default date. If instead of |
| 5325 | a single letter, you use the abbreviation of day name, the date will be | 5563 | a single letter, you use the abbreviation of day name, the date will be |
| 5326 | the Nth such day. E.g. | 5564 | the 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 | |||
| 5341 | you want to use unabbreviated names and/or other languages, configure | 5579 | you want to use unabbreviated names and/or other languages, configure |
| 5342 | the variables @code{parse-time-months} and @code{parse-time-weekdays}. | 5580 | the variables @code{parse-time-months} and @code{parse-time-weekdays}. |
| 5343 | 5581 | ||
| 5582 | @vindex org-read-date-force-compatible-dates | ||
| 5583 | Not all dates can be represented in a given Emacs implementation. By default | ||
| 5584 | Org mode forces dates into the compatibility range 1970--2037 which works on | ||
| 5585 | all Emacs implementations. If you want to use dates outside of this range, | ||
| 5586 | read the docstring of the variable | ||
| 5587 | @code{org-read-date-force-compatible-dates}. | ||
| 5588 | |||
| 5344 | You can specify a time range by giving start and end times or by giving a | 5589 | You can specify a time range by giving start and end times or by giving a |
| 5345 | start time and a duration (in HH:MM format). Use `-' or `-@{@}-' as the separator | 5590 | start time and a duration (in HH:MM format). Use one or two dash(es) as the |
| 5346 | in the former case and use '+' as the separator in the latter case. E.g. | 5591 | separator in the former case and use '+' as the separator in the latter |
| 5592 | case, e.g.@: | ||
| 5347 | 5593 | ||
| 5348 | @example | 5594 | @example |
| 5349 | 11am-1:15pm --> 11:00-13:15 | 5595 | 11am-1:15pm @result{} 11:00-13:15 |
| 5350 | 11am--1:15pm --> same as above | 5596 | 11am--1:15pm @result{} same as above |
| 5351 | 11am+2:15 --> same as above | 5597 | 11am+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 |
| 5402 | Org-mode uses the standard ISO notation for dates and times as it is | 5648 | Org mode uses the standard ISO notation for dates and times as it is |
| 5403 | defined in ISO 8601. If you cannot get used to this and require another | 5649 | defined in ISO 8601. If you cannot get used to this and require another |
| 5404 | representation of date and time to keep you happy, you can get it by | 5650 | representation of date and time to keep you happy, you can get it by |
| 5405 | customizing the variables @code{org-display-custom-times} and | 5651 | customizing 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 |
| 5414 | Org-mode needs the default format for scanning, so the custom date/time | 5660 | Org mode needs the default format for scanning, so the custom date/time |
| 5415 | format does not @emph{replace} the default format---instead it is put | 5661 | format 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 |
| 5417 | following consequences: | 5663 | following consequences: |
| @@ -5479,7 +5725,7 @@ The headline will be listed under the given date@footnote{It will still | |||
| 5479 | be listed on that date after it has been marked DONE. If you don't like | 5725 | be listed on that date after it has been marked DONE. If you don't like |
| 5480 | this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In | 5726 | this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In |
| 5481 | addition, a reminder that the scheduled date has passed will be present | 5727 | addition, a reminder that the scheduled date has passed will be present |
| 5482 | in the compilation for @emph{today}, until the entry is marked DONE, i.e. | 5728 | in the compilation for @emph{today}, until the entry is marked DONE, i.e.@: |
| 5483 | the task will automatically be forwarded until completed. | 5729 | the 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 |
| 5492 | understood in the same way that we understand @i{scheduling a meeting}. | 5738 | understood in the same way that we understand @i{scheduling a meeting}. |
| 5493 | Setting a date for a meeting is just a simple appointment, you should | 5739 | Setting a date for a meeting is just a simple appointment, you should |
| 5494 | mark this entry with a simple plain timestamp, to get this item shown | 5740 | mark this entry with a simple plain timestamp, to get this item shown |
| 5495 | on the date where it applies. This is a frequent misunderstanding by | 5741 | on the date where it applies. This is a frequent misunderstanding by |
| 5496 | Org users. In Org-mode, @i{scheduling} means setting a date when you | 5742 | Org users. In Org mode, @i{scheduling} means setting a date when you |
| 5497 | want to start working on an action item. | 5743 | want to start working on an action item. |
| 5498 | @end table | 5744 | @end table |
| 5499 | 5745 | ||
| 5500 | You may use timestamps with repeaters in scheduling and deadline | 5746 | You may use timestamps with repeaters in scheduling and deadline |
| 5501 | entries. Org-mode will issue early and late warnings based on the | 5747 | entries. Org mode will issue early and late warnings based on the |
| 5502 | assumption that the timestamp represents the @i{nearest instance} of | 5748 | assumption that the timestamp represents the @i{nearest instance} of |
| 5503 | the repeater. However, the use of diary sexp entries like | 5749 | the 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 |
| 5507 | in scheduling and deadline timestamps is limited. Org-mode does not | 5753 | in scheduling and deadline timestamps is limited. Org mode does not |
| 5508 | know enough about the internals of each sexp function to issue early and | 5754 | know enough about the internals of each sexp function to issue early and |
| 5509 | late warnings. However, it will show the item on each day where the | 5755 | late warnings. However, it will show the item on each day where the |
| 5510 | sexp entry matches. | 5756 | sexp 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 | ||
| 5520 | The following commands allow you to quickly insert a deadline or to schedule | 5766 | The 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 | ||
| 5768 | any text between this line and the headline.} a deadline or to schedule | ||
| 5521 | an item: | 5769 | an 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} |
| 5526 | Insert @samp{DEADLINE} keyword along with a stamp. The insertion will happen | 5774 | Insert @samp{DEADLINE} keyword along with a stamp. The insertion will happen |
| 5527 | in the line directly following the headline. When called with a prefix arg, | 5775 | in the line directly following the headline. Any CLOSED timestamp will be |
| 5528 | an existing deadline will be removed from the entry. Depending on the | 5776 | removed. When called with a prefix arg, an existing deadline will be removed |
| 5529 | variable @code{org-log-redeadline}@footnote{with corresponding | 5777 | from 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}, |
| 5531 | and @code{nologredeadline}}, a note will be taken when changing an existing | 5779 | and @code{nologredeadline}}, a note will be taken when changing an existing |
| 5532 | deadline. | 5780 | deadline. |
| 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} |
| 5536 | Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will | 5783 | Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will |
| 5537 | happen in the line directly following the headline. Any CLOSED timestamp | 5784 | happen in the line directly following the headline. Any CLOSED timestamp |
| 5538 | will be removed. When called with a prefix argument, remove the scheduling | 5785 | will be removed. When called with a prefix argument, remove the scheduling |
| 5539 | date from the entry. Depending on the variable | 5786 | date 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} |
| 5541 | keywords @code{logredeadline}, @code{lognoteredeadline}, and | 5788 | keywords @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 |
| 5543 | scheduling time. | 5790 | scheduling 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. | |||
| 5566 | Sparse tree for deadlines and scheduled items after a given date. | 5813 | Sparse tree for deadlines and scheduled items after a given date. |
| 5567 | @end table | 5814 | @end table |
| 5568 | 5815 | ||
| 5816 | Note that @code{org-schedule} and @code{org-deadline} supports | ||
| 5817 | setting the date by indicating a relative time: e.g. +1d will set | ||
| 5818 | the date to the next day after today, and --1w will set the date | ||
| 5819 | to 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 | ||
| 5574 | Some tasks need to be repeated again and again. Org-mode helps to | 5826 | Some tasks need to be repeated again and again. Org mode helps to |
| 5575 | organize such tasks using a so-called repeater in a DEADLINE, SCHEDULED, | 5827 | organize such tasks using a so-called repeater in a DEADLINE, SCHEDULED, |
| 5576 | or plain timestamp. In the following example | 5828 | or 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 | |||
| 5591 | once you have done so. When you mark a DEADLINE or a SCHEDULE with the TODO | 5843 | once you have done so. When you mark a DEADLINE or a SCHEDULE with the TODO |
| 5592 | keyword DONE, it will no longer produce entries in the agenda. The problem | 5844 | keyword DONE, it will no longer produce entries in the agenda. The problem |
| 5593 | with this is, however, that then also the @emph{next} instance of the | 5845 | with this is, however, that then also the @emph{next} instance of the |
| 5594 | repeated entry will not be active. Org-mode deals with this in the following | 5846 | repeated entry will not be active. Org mode deals with this in the following |
| 5595 | way: When you try to mark such an entry DONE (using @kbd{C-c C-t}), it will | 5847 | way: When you try to mark such an entry DONE (using @kbd{C-c C-t}), it will |
| 5596 | shift the base date of the repeating timestamp by the repeater interval, and | 5848 | shift the base date of the repeating timestamp by the repeater interval, and |
| 5597 | immediately set the entry state back to TODO@footnote{In fact, the target | 5849 | immediately 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 | |||
| 5624 | forgot to call your father for 3 weeks, it does not make sense to call | 5876 | forgot to call your father for 3 weeks, it does not make sense to call |
| 5625 | him 3 times in a single day to make up for it. Finally, there are tasks | 5877 | him 3 times in a single day to make up for it. Finally, there are tasks |
| 5626 | like changing batteries which should always repeat a certain time | 5878 | like 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 |
| 5628 | special repeaters @samp{++} and @samp{.+}. For example: | 5880 | special 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 | ||
| 5656 | Org-mode allows you to clock the time you spend on specific tasks in a | 5908 | Org mode allows you to clock the time you spend on specific tasks in a |
| 5657 | project. When you start working on an item, you can start the clock. | 5909 | project. When you start working on an item, you can start the clock. |
| 5658 | When you stop working on that task, or when you mark the task done, the | 5910 | When you stop working on that task, or when you mark the task done, the |
| 5659 | clock is stopped and the corresponding time interval is recorded. It | 5911 | clock 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 | ||
| 5687 | Start the clock on the current item (clock-in). This inserts the CLOCK | 5940 | Start the clock on the current item (clock-in). This inserts the CLOCK |
| 5688 | keyword together with a timestamp. If this is not the first clocking of | 5941 | keyword together with a timestamp. If this is not the first clocking of |
| 5689 | this item, the multiple CLOCK lines will be wrapped into a | 5942 | this 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 |
| 5945 | the setting of this variable for a subtree by setting a | ||
| 5946 | @code{CLOCK_INTO_DRAWER} or @code{LOG_INTO_DRAWER} property. | ||
| 5947 | When called with a @kbd{C-u} prefix argument, | ||
| 5692 | select the task from a list of recently clocked tasks. With two @kbd{C-u | 5948 | select the task from a list of recently clocked tasks. With two @kbd{C-u |
| 5693 | C-u} prefixes, clock into the task at point and mark it as the default task. | 5949 | C-u} prefixes, clock into the task at point and mark it as the default task. |
| 5694 | The default task will always be available when selecting a clocking task, | 5950 | The default task will always be available when selecting a clocking task, |
| @@ -5730,6 +5986,9 @@ Update the effort estimate for the current clock task. | |||
| 5730 | Recompute the time interval after changing one of the timestamps. This | 5986 | Recompute the time interval after changing one of the timestamps. This |
| 5731 | is only necessary if you edit the timestamps directly. If you change | 5987 | is only necessary if you edit the timestamps directly. If you change |
| 5732 | them with @kbd{S-@key{cursor}} keys, the update is automatic. | 5988 | them with @kbd{S-@key{cursor}} keys, the update is automatic. |
| 5989 | @orgcmd{C-S-@key{up/down},org-clock-timestamps-up/down} | ||
| 5990 | On @code{CLOCK} log lines, increase/decrease both timestamps at the same | ||
| 5991 | time so that duration keeps the same. | ||
| 5733 | @orgcmd{C-c C-t,org-todo} | 5992 | @orgcmd{C-c C-t,org-todo} |
| 5734 | Changing the TODO state of an item to DONE automatically stops the clock | 5993 | Changing the TODO state of an item to DONE automatically stops the clock |
| 5735 | if it is running in this same item. | 5994 | if 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} | |||
| 5741 | prefix arg, select the target task from a list of recently clocked tasks. | 6000 | prefix 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 |
| 5744 | Display time summaries for each subtree in the current buffer. This | 6003 | Display time summaries for each subtree in the current buffer. This puts |
| 5745 | puts overlays at the end of each headline, showing the total time | 6004 | overlays at the end of each headline, showing the total time recorded under |
| 5746 | recorded under that heading, including the time of any subheadings. You | 6005 | that heading, including the time of any subheadings. You can use visibility |
| 5747 | can use visibility cycling to study the tree, but the overlays disappear | 6006 | cycling to study the tree, but the overlays disappear when you change the |
| 5748 | when you change the buffer (see variable | 6007 | buffer (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 | ||
| 5752 | The @kbd{l} key may be used in the timeline (@pxref{Timeline}) and in | 6011 | The @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} |
| 5767 | Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock | 6026 | Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock |
| 5768 | report as an Org-mode table into the current file. When the cursor is | 6027 | report as an Org mode table into the current file. When the cursor is |
| 5769 | at an existing clock table, just update it. When called with a prefix | 6028 | at an existing clock table, just update it. When called with a prefix |
| 5770 | argument, jump to the first clock report in the current document and | 6029 | argument, jump to the first clock report in the current document and |
| 5771 | update it. | 6030 | update 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} |
| 5773 | Update dynamic block at point. The cursor needs to be in the | 6033 | Update 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 | ||
| 5836 | Then there are options which determine the formatting of the table. There | 6097 | Then 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}, | |||
| 5838 | but you can specify your own function using the @code{:formatter} parameter. | 6099 | but 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. | |||
| 5897 | By customizing the variable @code{org-clock-idle-time} to some integer, such | 6162 | By customizing the variable @code{org-clock-idle-time} to some integer, such |
| 5898 | as 10 or 15, Emacs can alert you when you get back to your computer after | 6163 | as 10 or 15, Emacs can alert you when you get back to your computer after |
| 5899 | being idle for that many minutes@footnote{On computers using Mac OS X, | 6164 | being idle for that many minutes@footnote{On computers using Mac OS X, |
| 5900 | idleness is based on actual user idleness, not just Emacs' idle time. For | 6165 | idleness is based on actual user idleness, not just Emacs's idle time. For |
| 5901 | X11, you can install a utility program @file{x11idle.c}, available in the | 6166 | X11, you can install a utility program @file{x11idle.c}, available in the |
| 5902 | UTILITIES directory of the Org git distribution, to get the same general | 6167 | UTILITIES directory of the Org git distribution, to get the same general |
| 5903 | treatment of idleness. On other systems, idle time refers to Emacs idle time | 6168 | treatment 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 | |||
| 5945 | dangling clock which was never clocked out from your last session. Using | 6210 | dangling clock which was never clocked out from your last session. Using |
| 5946 | that clock's starting time as the beginning of the unaccounted-for period, | 6211 | that clock's starting time as the beginning of the unaccounted-for period, |
| 5947 | Org will ask how you want to resolve that time. The logic and behavior is | 6212 | Org will ask how you want to resolve that time. The logic and behavior is |
| 5948 | identical to dealing with away time due to idleness; it's just happening due | 6213 | identical to dealing with away time due to idleness; it is just happening due |
| 5949 | to a recovery event rather than a set amount of idle time. | 6214 | to a recovery event rather than a set amount of idle time. |
| 5950 | 6215 | ||
| 5951 | You can also check all the files visited by your Org agenda for dangling | 6216 | You 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 | |||
| 5982 | buffer you can use | 6247 | buffer 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 | ||
| 6063 | Calling @code{org-timer-set-timer} from an Org-mode buffer runs a countdown | 6328 | Calling @code{org-timer-set-timer} from an Org mode buffer runs a countdown |
| 6064 | timer. Use @key{;} from agenda buffers, @key{C-c C-x ;} everwhere else. | 6329 | timer. 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 |
| 6067 | countdown timer in the modeline. @code{org-timer-default-timer} sets the | 6332 | countdown 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 | ||
| 6095 | Org's method for capturing new items is heavily inspired by John Wiegley | 6360 | Org's method for capturing new items is heavily inspired by John Wiegley |
| 6096 | excellent remember package. Up to version 6.36 Org used a special setup | 6361 | excellent remember package. Up to version 6.36 Org used a special setup |
| 6097 | for @file{remember.el}. @file{org-remember.el} is still part of Org-mode for | 6362 | for @file{remember.el}. @file{org-remember.el} is still part of Org mode for |
| 6098 | backward compatibility with existing setups. You can find the documentation | 6363 | backward compatibility with existing setups. You can find the documentation |
| 6099 | for org-remember at @url{http://orgmode.org/org-remember.pdf}. | 6364 | for 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} |
| 6139 | Call the command @code{org-capture}. Note that this keybinding is global and | 6404 | Call the command @code{org-capture}. Note that this keybinding is global and |
| 6140 | not active by default - you need to install it. If you have templates | 6405 | not active by default - you need to install it. If you have templates |
| 6406 | @cindex date tree | ||
| 6141 | defined @pxref{Capture templates}, it will offer these templates for | 6407 | defined @pxref{Capture templates}, it will offer these templates for |
| 6142 | selection or use a new Org outline node as the default template. It will | 6408 | selection or use a new Org outline node as the default template. It will |
| 6143 | insert the template into the target file and switch to an indirect buffer | 6409 | insert 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} |
| 6175 | Visit the target location of a cpature template. You get to select the | 6441 | Visit the target location of a capture template. You get to select the |
| 6176 | template in the usual way. | 6442 | template in the usual way. |
| 6177 | @orgkey{C-u C-u C-c c} | 6443 | @orgkey{C-u C-u C-c c} |
| 6178 | Visit the last stored capture item in its buffer. | 6444 | Visit the last stored capture item in its buffer. |
| @@ -6220,6 +6486,14 @@ extremely useful for deriving tasks from emails, for example. You fill in | |||
| 6220 | the task definition, press @code{C-c C-c} and Org returns you to the same | 6486 | the task definition, press @code{C-c C-c} and Org returns you to the same |
| 6221 | place where you started the capture process. | 6487 | place where you started the capture process. |
| 6222 | 6488 | ||
| 6489 | To define special keys to capture to a particular template without going | ||
| 6490 | through the interactive template selection, you can create your key binding | ||
| 6491 | like 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 | ||
| 6232 | Now lets look at the elements of a template definition. Each entry in | 6506 | Now 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 |
| 6237 | The keys that will select the template, as a string, characters | 6511 | The keys that will select the template, as a string, characters |
| 6238 | only, for example @code{"a"} for a template to be selected with a | 6512 | only, for example @code{"a"} for a template to be selected with a |
| 6239 | single key, or @code{"bt"} for selection with two keys. When using | 6513 | single key, or @code{"bt"} for selection with two keys. When using |
| 6240 | several keys, keys using the same prefix key must be sequential | 6514 | several keys, keys using the same prefix key must be sequential |
| 6241 | in the list and preceded by a 2-element entry explaining the | 6515 | in the list and preceded by a 2-element entry explaining the |
| 6242 | prefix key, for example | 6516 | prefix key, for example |
| 6243 | @example | 6517 | @example |
| @@ -6254,9 +6528,8 @@ selection. | |||
| 6254 | The type of entry, a symbol. Valid values are: | 6528 | The type of entry, a symbol. Valid values are: |
| 6255 | @table @code | 6529 | @table @code |
| 6256 | @item entry | 6530 | @item entry |
| 6257 | An Org-mode node, with a headline. Will be filed as the child of the | 6531 | An Org mode node, with a headline. Will be filed as the child of the target |
| 6258 | target entry or as a top-level entry. The target file should be an Org-mode | 6532 | entry or as a top-level entry. The target file should be an Org mode file. |
| 6259 | file. | ||
| 6260 | @item item | 6533 | @item item |
| 6261 | A plain list item, placed in the first plain list at the target | 6534 | A plain list item, placed in the first plain list at the target |
| 6262 | location. Again the target file should be an Org file. | 6535 | location. 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 |
| 6276 | Specification of where the captured item should be placed. In Org-mode | 6549 | Specification of where the captured item should be placed. In Org mode |
| 6277 | files, targets usually define a node. Entries will become children of this | 6550 | files, targets usually define a node. Entries will become children of this |
| 6278 | node. Other types will be added to the table or list in the body of this | 6551 | node. Other types will be added to the table or list in the body of this |
| 6279 | node. Most target specifications contain a file name. If that file name is | 6552 | node. Most target specifications contain a file name. If that file name is |
| 6280 | the empty string, it defaults to @code{org-default-notes-file}. | 6553 | the empty string, it defaults to @code{org-default-notes-file}. A file can |
| 6554 | also be given as a variable, function, or Emacs Lisp form. | ||
| 6281 | 6555 | ||
| 6282 | Valid values are: | 6556 | Valid 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 |
| 6343 | Start the clock in this item. | 6617 | Start the clock in this item. |
| 6344 | 6618 | ||
| 6619 | @item :clock-keep | ||
| 6620 | Keep the clock running when filing the captured entry. | ||
| 6621 | |||
| 6345 | @item :clock-resume | 6622 | @item :clock-resume |
| 6346 | If starting the capture interrupted a clock, restart that clock when finished | 6623 | If starting the capture interrupted a clock, restart that clock when finished |
| 6347 | with the capture. | 6624 | with the capture. Note that @code{:clock-keep} has precedence over |
| 6625 | @code{:clock-resume}. When setting both to @code{t}, the current clock will | ||
| 6626 | run and the previous one will not be resumed. | ||
| 6348 | 6627 | ||
| 6349 | @item :unnarrowed | 6628 | @item :unnarrowed |
| 6350 | Do not narrow the target buffer, simply show the full buffer. Default is to | 6629 | Do not narrow the target buffer, simply show the full buffer. Default is to |
| 6351 | narrow it so that you only see the new material. | 6630 | narrow it so that you only see the new material. |
| 6352 | 6631 | ||
| 6632 | @item :table-line-pos | ||
| 6633 | Specification of the location in the table where the new line should be | ||
| 6634 | inserted. It should be a string like @code{"II-3"} meaning that the new | ||
| 6635 | line should become the third line before the second horizontal separator | ||
| 6636 | line. | ||
| 6637 | |||
| 6353 | @item :kill-buffer | 6638 | @item :kill-buffer |
| 6354 | If the target file was not yet visited when capture was invoked, kill the | 6639 | If the target file was not yet visited when capture was invoked, kill the |
| 6355 | buffer again after capture is completed. | 6640 | buffer again after capture is completed. |
| @@ -6361,37 +6646,39 @@ buffer again after capture is completed. | |||
| 6361 | 6646 | ||
| 6362 | In the template itself, special @kbd{%}-escapes@footnote{If you need one of | 6647 | In the template itself, special @kbd{%}-escapes@footnote{If you need one of |
| 6363 | these sequences literally, escape the @kbd{%} with a backslash.} allow | 6648 | these sequences literally, escape the @kbd{%} with a backslash.} allow |
| 6364 | dynamic insertion of content: | 6649 | dynamic 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 |
| 6406 | Link type | Available keywords | 6693 | Link type | Available keywords |
| 6407 | -------------------+---------------------------------------------- | 6694 | ------------------------+---------------------------------------------- |
| 6408 | bbdb | %:name %:company | 6695 | bbdb | %:name %:company |
| 6409 | irc | %:server %:port %:nick | 6696 | irc | %:server %:port %:nick |
| 6410 | vm, wl, mh, mew, rmail | %:type %:subject %:message-id | 6697 | vm, wl, mh, mew, rmail | %:type %:subject %:message-id |
| @@ -6482,7 +6769,7 @@ Create a new attachment as an Emacs buffer. | |||
| 6482 | Synchronize the current task with its attachment directory, in case you added | 6769 | Synchronize the current task with its attachment directory, in case you added |
| 6483 | attachments yourself. | 6770 | attachments 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 |
| 6487 | Open current task's attachment. If there is more than one, prompt for a | 6774 | Open current task's attachment. If there is more than one, prompt for a |
| 6488 | file name first. Opening will follow the rules set by @code{org-file-apps}. | 6775 | file 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 | |||
| 6610 | variable @code{org-refile-allow-creating-parent-nodes}. | 6897 | variable @code{org-refile-allow-creating-parent-nodes}. |
| 6611 | When the variable @code{org-log-refile}@footnote{with corresponding | 6898 | When 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}, |
| 6613 | and @code{nologrefile}} is set, a time stamp or a note will be | 6900 | and @code{nologrefile}} is set, a timestamp or a note will be |
| 6614 | recorded when an entry has been refiled. | 6901 | recorded when an entry has been refiled. |
| 6615 | @orgkey{C-u C-c C-w} | 6902 | @orgkey{C-u C-c C-w} |
| 6616 | Use the refile interface to jump to a heading. | 6903 | Use the refile interface to jump to a heading. |
| @@ -6835,7 +7122,7 @@ The information to be shown is normally collected from all @emph{agenda | |||
| 6835 | files}, the files listed in the variable | 7122 | files}, 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 |
| 6837 | list, but a single file name, then the list of agenda files will be | 7124 | list, but a single file name, then the list of agenda files will be |
| 6838 | maintained in that external file.}. If a directory is part of this list, | 7125 | maintained in that external file.}. If a directory is part of this list, |
| 6839 | all files with the extension @file{.org} in this directory will be part | 7126 | all files with the extension @file{.org} in this directory will be part |
| 6840 | of the list. | 7127 | of 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} |
| 6852 | Add current file to the list of agenda files. The file is added to | 7139 | Add current file to the list of agenda files. The file is added to |
| 6853 | the front of the list. If it was already in the list, it is moved to | 7140 | the front of the list. If it was already in the list, it is moved to |
| 6854 | the front. With a prefix argument, file is added/moved to the end. | 7141 | the 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} |
| 6856 | Remove current file from the list of agenda files. | 7143 | Remove 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-, |
| 6860 | Cycle through agenda file list, visiting one file after the other. | 7148 | Cycle 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 |
| 6907 | The views are created through a dispatcher, which should be bound to a | 7195 | The views are created through a dispatcher, which should be bound to a |
| 6908 | global key---for example @kbd{C-c a} (@pxref{Installation}). In the | 7196 | global key---for example @kbd{C-c a} (@pxref{Activation}). In the |
| 6909 | following we will assume that @kbd{C-c a} is indeed how the dispatcher | 7197 | following we will assume that @kbd{C-c a} is indeed how the dispatcher |
| 6910 | is accessed and list keyboard access to commands accordingly. After | 7198 | is accessed and list keyboard access to commands accordingly. After |
| 6911 | pressing @kbd{C-c a}, an additional letter is required to execute a | 7199 | pressing @kbd{C-c a}, an additional letter is required to execute a |
| @@ -7010,7 +7298,7 @@ anniversaries, lunar phases, sunrise/set, recurrent appointments | |||
| 7010 | Org. It can be very useful to combine output from Org with | 7298 | Org. It can be very useful to combine output from Org with |
| 7011 | the diary. | 7299 | the diary. |
| 7012 | 7300 | ||
| 7013 | In order to include entries from the Emacs diary into Org-mode's | 7301 | In order to include entries from the Emacs diary into Org mode's |
| 7014 | agenda, you only need to customize the variable | 7302 | agenda, 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 |
| 7021 | entries including holidays, anniversaries, etc., will be included in the | 7309 | entries including holidays, anniversaries, etc., will be included in the |
| 7022 | agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and | 7310 | agenda 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 |
| 7024 | file in order to edit existing diary entries. The @kbd{i} command to | 7312 | file in order to edit existing diary entries. The @kbd{i} command to |
| 7025 | insert new entries for the current date works in the agenda buffer, as | 7313 | insert new entries for the current date works in the agenda buffer, as |
| @@ -7030,7 +7318,7 @@ between calendar and agenda. | |||
| 7030 | 7318 | ||
| 7031 | If you are using the diary only for sexp entries and holidays, it is | 7319 | If you are using the diary only for sexp entries and holidays, it is |
| 7032 | faster to not use the above setting, but instead to copy or even move | 7320 | faster to not use the above setting, but instead to copy or even move |
| 7033 | the entries into an Org file. Org-mode evaluates diary-style sexp | 7321 | the entries into an Org file. Org mode evaluates diary-style sexp |
| 7034 | entries, and does it faster because there is no overhead for first | 7322 | entries, and does it faster because there is no overhead for first |
| 7035 | creating the diary display. Note that the sexp entries must start at | 7323 | creating the diary display. Note that the sexp entries must start at |
| 7036 | the left margin, no whitespace is allowed before them. For example, | 7324 | the 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 | |||
| 7054 | very likely prefer to store anniversaries in BBDB rather than in a | 7342 | very likely prefer to store anniversaries in BBDB rather than in a |
| 7055 | separate Org or diary file. Org supports this and will show BBDB | 7343 | separate Org or diary file. Org supports this and will show BBDB |
| 7056 | anniversaries as part of the agenda. All you need to do is to add the | 7344 | anniversaries as part of the agenda. All you need to do is to add the |
| 7057 | following to one your your agenda files: | 7345 | following 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 | ||
| 7067 | You can then go ahead and define anniversaries for a BBDB record. Basically, | 7355 | You can then go ahead and define anniversaries for a BBDB record. Basically, |
| 7068 | you need to press @kbd{C-o anniversary @key{RET}} with the cursor in a BBDB | 7356 | you need to press @kbd{C-o anniversary @key{RET}} with the cursor in a BBDB |
| 7069 | record and then add the date in the format @code{YYYY-MM-DD}, followed by a | 7357 | record and then add the date in the format @code{YYYY-MM-DD} or @code{MM-DD}, |
| 7070 | space and the class of the anniversary (@samp{birthday} or @samp{wedding}, or | 7358 | followed by a space and the class of the anniversary (@samp{birthday} or |
| 7071 | a 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 |
| 7072 | Here 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 |
| 7073 | more detailed information. | 7361 | @file{org-bbdb.el} contains more detailed information. |
| 7074 | 7362 | ||
| 7075 | @example | 7363 | @example |
| 7076 | 1973-06-22 | 7364 | 1973-06-22 |
| 7365 | 06-22 | ||
| 7077 | 1955-08-02 wedding | 7366 | 1955-08-02 wedding |
| 7078 | 2008-04-14 %s released version 6.01 of org-mode, %d years ago | 7367 | 2008-04-14 %s released version 6.01 of org mode, %d years ago |
| 7079 | @end example | 7368 | @end example |
| 7080 | 7369 | ||
| 7081 | After a change to BBDB, or for the first agenda display during an Emacs | 7370 | After 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 | ||
| 7091 | Org can interact with Emacs appointments notification facility. To add all | 7382 | Org can interact with Emacs appointments notification facility. To add all |
| 7092 | the appointments of your agenda files, use the command | 7383 | the 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 |
| 7094 | list of your appointments and add only those belonging to a specific category | 7385 | list of your appointments and add only those belonging to a specific category |
| 7095 | or matching a regular expression. See the docstring for details. | 7386 | or 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 | |||
| 7265 | assumed to be date/time specifications in the standard Org way, and the | 7556 | assumed to be date/time specifications in the standard Org way, and the |
| 7266 | comparison will be done accordingly. Special values that will be recognized | 7557 | comparison will be done accordingly. Special values that will be recognized |
| 7267 | are @code{"<now>"} for now (including time), and @code{"<today>"}, and | 7558 | are @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 |
| 7269 | specification. Also strings like @code{"<+5d>"} or @code{"<-2m>"} with units | 7560 | specification. 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, |
| 7271 | respectively, can be used. | 7562 | respectively, can be used. |
| @@ -7288,7 +7579,7 @@ other properties will slow down the search. However, once you have paid the | |||
| 7288 | price by accessing one property, testing additional properties is cheap | 7579 | price by accessing one property, testing additional properties is cheap |
| 7289 | again. | 7580 | again. |
| 7290 | 7581 | ||
| 7291 | You can configure Org-mode to use property inheritance during a search, but | 7582 | You can configure Org mode to use property inheritance during a search, but |
| 7292 | beware that this can slow down searches considerably. See @ref{Property | 7583 | beware that this can slow down searches considerably. See @ref{Property |
| 7293 | inheritance}, for details. | 7584 | inheritance}, 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 | ||
| 7324 | The timeline summarizes all time-stamped items from a single Org-mode | 7615 | The timeline summarizes all time-stamped items from a single Org mode |
| 7325 | file in a @emph{time-sorted view}. The main purpose of this command is | 7616 | file in a @emph{time-sorted view}. The main purpose of this command is |
| 7326 | to give an overview over events in a project. | 7617 | to 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 | ||
| 7345 | This agenda view is a general text search facility for Org-mode entries. | 7636 | This agenda view is a general text search facility for Org mode entries. |
| 7346 | It is particularly useful to find notes. | 7637 | It 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 | ||
| 7372 | If you are following a system like David Allen's GTD to organize your | 7664 | If you are following a system like David Allen's GTD to organize your |
| 7373 | work, one of the ``duties'' you have is a regular review to make sure | 7665 | work, one of the ``duties'' you have is a regular review to make sure |
| 7374 | that all projects move along. A @emph{stuck} project is a project that | 7666 | that all projects move along. A @emph{stuck} project is a project that |
| 7375 | has no defined next actions, so it will never show up in the TODO lists | 7667 | has no defined next actions, so it will never show up in the TODO lists |
| 7376 | Org-mode produces. During the review, you need to identify such | 7668 | Org mode produces. During the review, you need to identify such |
| 7377 | projects and define next actions for them. | 7669 | projects 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 | |||
| 7391 | level-2 headlines, and that a project is not stuck if it has at least | 7683 | level-2 headlines, and that a project is not stuck if it has at least |
| 7392 | one entry marked with a TODO keyword TODO or NEXT or NEXTACTION. | 7684 | one entry marked with a TODO keyword TODO or NEXT or NEXTACTION. |
| 7393 | 7685 | ||
| 7394 | Let's assume that you, in your own way of using Org-mode, identify | 7686 | Let's assume that you, in your own way of using Org mode, identify |
| 7395 | projects with a tag PROJECT, and that you use a TODO keyword MAYBE to | 7687 | projects with a tag PROJECT, and that you use a TODO keyword MAYBE to |
| 7396 | indicate a project that should not be considered yet. Let's further | 7688 | indicate a project that should not be considered yet. Let's further |
| 7397 | assume that the TODO keyword DONE marks finished projects, and that NEXT | 7689 | assume 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 |
| 7421 | Before displaying items in an agenda view, Org-mode visually prepares | 7713 | @vindex org-agenda-tags-column |
| 7422 | the items and sorts them. Each item occupies a single line. The line | 7714 | Before displaying items in an agenda view, Org mode visually prepares the |
| 7423 | starts with a @emph{prefix} that contains the @emph{category} | 7715 | items and sorts them. Each item occupies a single line. The line starts |
| 7424 | (@pxref{Categories}) of the item and other important information. You can | 7716 | with a @emph{prefix} that contains the @emph{category} (@pxref{Categories}) |
| 7425 | customize the prefix using the option @code{org-agenda-prefix-format}. | 7717 | of the item and other important information. You can customize in which |
| 7426 | The prefix is followed by a cleaned-up version of the outline headline | 7718 | column tags will be displayed through @code{org-agenda-tags-column}. You can |
| 7719 | also customize the prefix using the option @code{org-agenda-prefix-format}. | ||
| 7720 | This prefix is followed by a cleaned-up version of the outline headline | ||
| 7427 | associated with the item. | 7721 | associated 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 | ||
| 7473 | Org-mode checks each agenda item for a time-of-day specification. The | 7767 | Org mode checks each agenda item for a time-of-day specification. The |
| 7474 | time can be part of the timestamp that triggered inclusion into the | 7768 | time can be part of the timestamp that triggered inclusion into the |
| 7475 | agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time | 7769 | agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time |
| 7476 | ranges can be specified with two timestamps, like | 7770 | ranges 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 | |||
| 7482 | integrates the Emacs diary (@pxref{Weekly/daily agenda}), time | 7776 | integrates the Emacs diary (@pxref{Weekly/daily agenda}), time |
| 7483 | specifications in diary entries are recognized as well. | 7777 | specifications in diary entries are recognized as well. |
| 7484 | 7778 | ||
| 7485 | For agenda display, Org-mode extracts the time and displays it in a | 7779 | For agenda display, Org mode extracts the time and displays it in a |
| 7486 | standard 24 hour format as part of the prefix. The example times in | 7780 | standard 24 hour format as part of the prefix. The example times in |
| 7487 | the previous paragraphs would end up in the agenda like this: | 7781 | the 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 | ||
| 7907 | Interactively 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 |
| 7613 | Delete other windows. | 7911 | Delete 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} |
| 7629 | Switch to day/week/month/year view. When switching to day or week view, | 7917 | @xorgcmd{v SPC,org-agenda-reset-view} |
| 7630 | this setting becomes the default for subsequent agenda commands. Since | 7918 | @vindex org-agenda-span |
| 7631 | month and year views are slow to create, they do not become the default. | 7919 | Switch to day/week/month/year view. When switching to day or week view, this |
| 7632 | A numeric prefix argument may be used to jump directly to a specific day | 7920 | setting becomes the default for subsequent agenda refreshes. Since month and |
| 7633 | of the year, ISO week, month, or year, respectively. For example, | 7921 | year 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 | 7922 | prefix argument may be used to jump directly to a specific day of the year, |
| 7635 | setting day, week, or month view, a year may be encoded in the prefix | 7923 | ISO week, month, or year, respectively. For example, @kbd{32 d} jumps to |
| 7636 | argument as well. For example, @kbd{200712 w} will jump to week 12 in | 7924 | February 1st, @kbd{9 w} to ISO week number 9. When setting day, week, or |
| 7637 | 2007. If such a year specification has only one or two digits, it will | 7925 | month view, a year may be encoded in the prefix argument as well. For |
| 7638 | be mapped to the interval 1938-2037. | 7926 | example, @kbd{200712 w} will jump to week 12 in 2007. If such a year |
| 7927 | specification has only one or two digits, it will be mapped to the interval | ||
| 7928 | 1938-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} |
| 7641 | Go forward in time to display the following @code{org-agenda-current-span} days. | 7932 | Go 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 | ||
| 7686 | Toggle Clockreport mode. In Clockreport mode, the daily/weekly agenda will | 7978 | Toggle Clockreport mode. In Clockreport mode, the daily/weekly agenda will |
| 7687 | always show a table with the clocked times for the timespan and file scope | 7979 | always show a table with the clocked times for the timespan and file scope |
| 7688 | covered by the current agenda view. The initial setting for this mode in new | 7980 | covered by the current agenda view. The initial setting for this mode in new |
| 7689 | agenda buffers can be set with the variable | 7981 | agenda 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 |
| 7691 | when toggling this mode (i.e. @kbd{C-u R}), the clock table will not show | 7983 | when toggling this mode (i.e.@: @kbd{C-u R}), the clock table will not show |
| 7692 | contributions from entries that are hidden by agenda filtering@footnote{Only | 7984 | contributions from entries that are hidden by agenda filtering@footnote{Only |
| 7693 | tags filtering will be respected here, effort filtering is ignored.}. | 7985 | tags filtering will be respected here, effort filtering is ignored.}. See |
| 7986 | also the variable @code{org-clock-report-include-clocking-task}. | ||
| 7987 | @c | ||
| 7988 | @orgkey{v c} | ||
| 7989 | @vindex org-agenda-clock-consistency-checks | ||
| 7990 | Show overlapping clock entries, clocking gaps, and other clocking problems in | ||
| 7991 | the current agenda range. You can then visit clocking lines and fix them | ||
| 7992 | manually. See the variable @code{org-agenda-clock-consistency-checks} for | ||
| 7993 | information on how to customize the definition of what constituted a clocking | ||
| 7994 | problem. To return to normal agenda display, press @kbd{l} to exit Logbook | ||
| 7995 | mode. | ||
| 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. | |||
| 7707 | Toggle the time grid on and off. See also the variables | 8009 | Toggle 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} |
| 7711 | Recreate the agenda buffer, for example to reflect the changes after | 8013 | Recreate the agenda buffer, for example to reflect the changes after |
| 7712 | modification of the timestamps of items with @kbd{S-@key{left}} and | 8014 | modification 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 |
| 7714 | argument is interpreted to create a selective list for a specific TODO | 8016 | argument is interpreted to create a selective list for a specific TODO |
| 7715 | keyword. | 8017 | keyword. |
| 7716 | @orgcmd{g,org-agenda-rodo} | 8018 | @orgcmd{g,org-agenda-redo} |
| 7717 | Same as @kbd{r}. | 8019 | Same 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 | |||
| 7734 | file or subtree (@pxref{Agenda files}). | 8036 | file 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 | |||
| 8048 | Filter the current agenda view with respect to the category of the item at | ||
| 8049 | point. Pressing @code{<} another time will remove this filter. You can add | ||
| 8050 | a 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 |
| 7744 | Filter the current agenda view with respect to a tag and/or effort estimates. | 8055 | Filter the current agenda view with respect to a tag and/or effort estimates. |
| 7745 | The difference between this and a custom agenda command is that filtering is | 8056 | The difference between this and a custom agenda command is that filtering is |
| 7746 | very fast, so that you can switch quickly between different filters without | 8057 | very fast, so that you can switch quickly between different filters without |
| 7747 | having to recreate the agenda.@footnote{Custom commands can preset a filter by | 8058 | having to recreate the agenda.@footnote{Custom commands can preset a filter by |
| 7748 | binding the variable @code{org-agenda-filter-preset} as an option. This | 8059 | binding the variable @code{org-agenda-tag-filter-preset} as an option. This |
| 7749 | filter will then be applied to the view and persist as a basic filter through | 8060 | filter will then be applied to the view and persist as a basic filter through |
| 7750 | refreshes and more secondary filtering. The filter is a global property of | 8061 | refreshes and more secondary filtering. The filter is a global property of |
| 7751 | the entire agenda view---in a block agenda, you should only set this in the | 8062 | the 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} |
| 7810 | Narrow the current agenda filter by an additional condition. When called with | 8121 | Narrow the current agenda filter by an additional condition. When called with |
| 7811 | prefix arg, remove the entries that @emph{do} have the tag, or that do match | 8122 | prefix arg, remove the entries that @emph{do} have the tag, or that do match |
| 7812 | the effort criterion. You can achieve the same effect by pressing @kbd{+} or | 8123 | the 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 , |
| 7891 | Set the priority for the current item (@command{org-agenda-priority}). | 8202 | Set the priority for the current item (@command{org-agenda-priority}). |
| 7892 | Org-mode prompts for the priority character. If you reply with @key{SPC}, the | 8203 | Org mode prompts for the priority character. If you reply with @key{SPC}, |
| 7893 | priority cookie is removed from the entry. | 8204 | the 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} |
| 7896 | Display weighted priority of current item. | 8207 | Display 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} |
| 7937 | Change the timestamp associated with the current line by one day into the | 8248 | Change the timestamp associated with the current line by one day into the |
| 7938 | future. With a numeric prefix argument, change it by that many days. For | 8249 | future. If the date is in the past, the first call to this command will move |
| 7939 | example, @kbd{3 6 5 S-@key{right}} will change it by a year. With a | 8250 | it to today.@* |
| 7940 | @kbd{C-u} prefix, change the time by one hour. If you immediately repeat the | 8251 | With a numeric prefix argument, change it by that many days. For example, |
| 7941 | command, 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, |
| 7942 | a double @kbd{C-u C-u} prefix, do the same for changing minutes. The stamp | 8253 | change the time by one hour. If you immediately repeat the command, it will |
| 7943 | is changed in the original Org file, but the change is not directly reflected | 8254 | continue to change hours even without the prefix arg. With a double @kbd{C-u |
| 7944 | in the agenda buffer. Use @kbd{r} or @kbd{g} to update the buffer. | 8255 | C-u} prefix, do the same for changing minutes.@* |
| 8256 | The stamp is changed in the original Org file, but the change is not directly | ||
| 8257 | reflected 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} |
| 7947 | Change the timestamp associated with the current line by one day | 8260 | Change the timestamp associated with the current line by one day |
| @@ -7971,6 +8284,9 @@ Jump to the running clock in another window. | |||
| 7971 | Mark the entry at point for bulk action. With prefix arg, mark that many | 8284 | Mark the entry at point for bulk action. With prefix arg, mark that many |
| 7972 | successive entries. | 8285 | successive entries. |
| 7973 | @c | 8286 | @c |
| 8287 | @orgcmd{%,org-agenda-bulk-mark-regexp} | ||
| 8288 | Mark entries matching a regular expression for bulk action. | ||
| 8289 | @c | ||
| 7974 | @orgcmd{u,org-agenda-bulk-unmark} | 8290 | @orgcmd{u,org-agenda-bulk-unmark} |
| 7975 | Unmark entry for bulk action. | 8291 | Unmark entry for bulk action. |
| 7976 | @c | 8292 | @c |
| @@ -7989,15 +8305,30 @@ $ @r{Archive all selected entries.} | |||
| 7989 | A @r{Archive entries by moving them to their respective archive siblings.} | 8305 | A @r{Archive entries by moving them to their respective archive siblings.} |
| 7990 | t @r{Change TODO state. This prompts for a single TODO keyword and} | 8306 | t @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.} |
| 7995 | s @r{Schedule all items to a new date. To shift existing schedule dates} | 8311 | s @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}.} |
| 7998 | S @r{Reschedule randomly by N days. N will be prompted for. With prefix} | 8314 | S @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.} |
| 8000 | d @r{Set deadline to a specific date.} | 8316 | d @r{Set deadline to a specific date.} |
| 8317 | f @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.} | |||
| 8008 | Open the Emacs calendar and move to the date at the agenda cursor. | 8339 | Open 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} |
| 8011 | When in the calendar, compute and show the Org-mode agenda for the | 8342 | When in the calendar, compute and show the Org mode agenda for the |
| 8012 | date at the cursor. | 8343 | date 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 | |||
| 8021 | command in the calendar. The diary file will pop up in another window, where | 8352 | command in the calendar. The diary file will pop up in another window, where |
| 8022 | you can add the entry. | 8353 | you can add the entry. |
| 8023 | 8354 | ||
| 8024 | If you configure @code{org-agenda-diary-file} to point to an Org-mode file, | 8355 | If you configure @code{org-agenda-diary-file} to point to an Org mode file, |
| 8025 | Org will create entries (in org-mode syntax) in that file instead. Most | 8356 | Org will create entries (in Org mode syntax) in that file instead. Most |
| 8026 | entries will be stored in a date-based outline tree that will later make it | 8357 | entries will be stored in a date-based outline tree that will later make it |
| 8027 | easy to archive appointments from previous months/years. The tree will be | 8358 | easy to archive appointments from previous months/years. The tree will be |
| 8028 | built under an entry with a @code{DATE_TREE} property, or else with years as | 8359 | built 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 |
| 8201 | Org-mode contains a number of variables regulating agenda construction | 8532 | Org mode contains a number of variables regulating agenda construction |
| 8202 | and display. The global variables define the behavior for all agenda | 8533 | and display. The global variables define the behavior for all agenda |
| 8203 | commands, including the custom commands. However, if you want to change | 8534 | commands, including the custom commands. However, if you want to change |
| 8204 | some settings just for a single custom view, you can do so. Setting | 8535 | some 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 | ||
| 8272 | If you are away from your computer, it can be very useful to have a printed | 8603 | If you are away from your computer, it can be very useful to have a printed |
| 8273 | version of some agenda views to carry around. Org-mode can export custom | 8604 | version of some agenda views to carry around. Org mode can export custom |
| 8274 | agenda views as plain text, HTML@footnote{You need to install Hrvoje Niksic's | 8605 | agenda 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 |
| 8276 | ghostscript @file{ps2pdf} utility must be installed on the system. Selecting | 8607 | ghostscript @file{ps2pdf} utility must be installed on the system. Selecting |
| 8277 | a PDF file with also create the postscript file.}, and iCalendar files. If | 8608 | a PDF file will also create the postscript file.}, and iCalendar files. If |
| 8278 | you want to do this only occasionally, use the command | 8609 | you 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 | ||
| 8336 | The extension of the file name determines the type of export. If it is | 8667 | The 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 |
| 8338 | the buffer to HTML and save it to this file name. If the extension is | 8669 | the 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 |
| 8340 | Postscript output. If the extension is @file{.ics}, iCalendar export is | 8671 | Postscript 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 |
| 8382 | From the command line you may also use | 8713 | From the command line you may also use |
| 8383 | @example | 8714 | @example |
| 8384 | emacs -f org-batch-store-agenda-views -kill | 8715 | emacs -eval (org-batch-store-agenda-views) -kill |
| 8385 | @end example | 8716 | @end example |
| 8386 | @noindent | 8717 | @noindent |
| 8387 | or, if you need to modify some parameters@footnote{Quoting depends on the | 8718 | or, if you need to modify some parameters@footnote{Quoting depends on the |
| 8388 | system you use, please check the FAQ for examples.} | 8719 | system you use, please check the FAQ for examples.} |
| 8389 | @example | 8720 | @example |
| 8390 | emacs -eval '(org-batch-store-agenda-views \ | 8721 | emacs -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: | |||
| 8430 | Org needs to make a decision which @code{COLUMNS} format to use. Since the | 8761 | Org needs to make a decision which @code{COLUMNS} format to use. Since the |
| 8431 | entries in the agenda are collected from different files, and different files | 8762 | entries in the agenda are collected from different files, and different files |
| 8432 | may have different @code{COLUMNS} formats, this is a non-trivial problem. | 8763 | may have different @code{COLUMNS} formats, this is a non-trivial problem. |
| 8433 | Org first checks if the variable @code{org-overriding-columns-format} is | 8764 | Org first checks if the variable @code{org-agenda-overriding-columns-format} is |
| 8434 | currently set, and if so, takes the format from there. Otherwise it takes | 8765 | currently set, and if so, takes the format from there. Otherwise it takes |
| 8435 | the format associated with the first item in the agenda, or, if that item | 8766 | the format associated with the first item in the agenda, or, if that item |
| 8436 | does not have a specific format (defined in a property, or in its file), it | 8767 | does 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 | ||
| 8466 | When exporting Org-mode documents, the exporter tries to reflect the | 8797 | When exporting Org mode documents, the exporter tries to reflect the |
| 8467 | structure of the document as accurately as possible in the backend. Since | 8798 | structure of the document as accurately as possible in the backend. Since |
| 8468 | export targets like HTML, @LaTeX{}, or DocBook allow much richer formatting, | 8799 | export targets like HTML, @LaTeX{}, or DocBook allow much richer formatting, |
| 8469 | Org-mode has rules on how to prepare text for rich export. This section | 8800 | Org mode has rules on how to prepare text for rich export. This section |
| 8470 | summarizes the markup rules used in an Org-mode buffer. | 8801 | summarizes 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 | ||
| 8562 | Org-mode normally exports the text before the first headline, and even uses | 8893 | Org mode normally exports the text before the first headline, and even uses |
| 8563 | the first line as the document title. The text will be fully marked up. If | 8894 | the first line as the document title. The text will be fully marked up. If |
| 8564 | you need to include literal HTML, @LaTeX{}, or DocBook code, use the special | 8895 | you need to include literal HTML, @LaTeX{}, or DocBook code, use the special |
| 8565 | constructs described below in the sections for the individual exporters. | 8896 | constructs 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 | ||
| 8614 | When quoting a passage from another document, it is customary to format this | 8945 | When quoting a passage from another document, it is customary to format this |
| 8615 | as a paragraph that is indented on both the left and the right margin. You | 8946 | as a paragraph that is indented on both the left and the right margin. You |
| 8616 | can include quotations in Org-mode documents like this: | 8947 | can 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 | ||
| 8641 | Footnotes defined in the way described in @ref{Footnotes}, will be exported by | 8972 | Footnotes defined in the way described in @ref{Footnotes}, will be exported |
| 8642 | all backends. Org allows multiple references to the same note, and | 8973 | by all backends. Org allows multiple references to the same note, and |
| 8643 | different backends support this to varying degrees. | 8974 | multiple 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 |
| 8654 | You can make words @b{*bold*}, @i{/italic/}, _underlined_, @code{=code=} | 8985 | You can make words @b{*bold*}, @i{/italic/}, _underlined_, @code{=code=} |
| 8655 | and @code{~verbatim~}, and, if you must, @samp{+strike-through+}. Text | 8986 | and @code{~verbatim~}, and, if you must, @samp{+strike-through+}. Text |
| 8656 | in the code and verbatim string is not processed for Org-mode specific | 8987 | in the code and verbatim string is not processed for Org mode specific |
| 8657 | syntax; it is exported verbatim. | 8988 | syntax; 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 |
| 8662 | A line consisting of only dashes, and at least 5 of them, will be | 8993 | A line consisting of only dashes, and at least 5 of them, will be exported as |
| 8663 | exported as a horizontal line (@samp{<hr/>} in HTML). | 8994 | a 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 | ||
| 8671 | Lines starting with @samp{#} in column zero are treated as comments and will | 9002 | Lines starting with @samp{#} in column zero are treated as comments and will |
| 8672 | never be exported. If you want an indented line to be treated as a comment, | 9003 | never be exported. If you want an indented line to be treated as a comment, |
| 8673 | start it with @samp{#+ }. Also entire subtrees starting with the word | 9004 | start 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 |
| 8690 | Both the native Org-mode tables (@pxref{Tables}) and tables formatted with | 9021 | Both the native Org mode tables (@pxref{Tables}) and tables formatted with |
| 8691 | the @file{table.el} package will be exported properly. For Org-mode tables, | 9022 | the @file{table.el} package will be exported properly. For Org mode tables, |
| 8692 | the lines before the first horizontal separator line will become table header | 9023 | the lines before the first horizontal separator line will become table header |
| 8693 | lines. You can use the following lines somewhere before the table to assign | 9024 | lines. You can use the following lines somewhere before the table to assign |
| 8694 | a caption and a label for cross references, and in the text you can refer to | 9025 | a 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 | ||
| 9035 | Optionally, 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 |
| 8705 | Some backends (HTML, @LaTeX{}, and DocBook) allow you to directly include | 9041 | Some backends (HTML, @LaTeX{}, and DocBook) allow you to directly include |
| 8706 | images into the exported document. Org does this, if a link to an image | 9042 | images 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 | |||
| 8753 | that can be marked up by font-lock in Emacs, you can ask for the example to | 9089 | that can be marked up by font-lock in Emacs, you can ask for the example to |
| 8754 | look like the fontified Emacs buffer@footnote{This works automatically for | 9090 | look like the fontified Emacs buffer@footnote{This works automatically for |
| 8755 | the HTML backend (it requires version 1.34 of the @file{htmlize.el} package, | 9091 | the HTML backend (it requires version 1.34 of the @file{htmlize.el} package, |
| 8756 | which is distributed with Org). Fontified code chunks in LaTeX can be | 9092 | which is distributed with Org). Fontified code chunks in @LaTeX{} can be |
| 8757 | achieved using either the listings or the | 9093 | achieved 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 |
| 8759 | on the variable @code{org-export-latex-listings} and ensure that the listings | 9095 | on the variable @code{org-export-latex-listings} and ensure that the listings |
| 8760 | package is included by the LaTeX header (e.g. by configuring | 9096 | package 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 |
| 8762 | configuration options, including obtaining colored output. For minted it is | 9098 | configuration options, including obtaining colored output. For minted it is |
| 8763 | necessary to install the program @url{http://pygments.org, pygments}, in | 9099 | necessary to install the program @url{http://pygments.org, pygments}, in |
| 8764 | addition to setting @code{org-export-latex-minted}, ensuring that the minted | 9100 | addition to setting @code{org-export-latex-minted}, ensuring that the minted |
| 8765 | package is included by the LaTeX header, and ensuring that the | 9101 | package 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 |
| 8769 | further details.}. This is done with the @samp{src} block, where you also | 9105 | further details.}. This is done with the @samp{src} block, where you also |
| 8770 | need to specify the name of the major mode that should be used to fontify the | 9106 | need to specify the name of the major mode that should be used to fontify the |
| 8771 | example: | 9107 | example@footnote{Code in @samp{src} blocks may also be evaluated either |
| 9108 | interactively or on export. See @pxref{Working With Source Code} for more | ||
| 9109 | information on evaluating code blocks.}, see @ref{Easy Templates} for | ||
| 9110 | shortcuts 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 | |||
| 8784 | numbered. If you use a @code{+n} switch, the numbering from the previous | 9123 | numbered. If you use a @code{+n} switch, the numbering from the previous |
| 8785 | numbered snippet will be continued in the current one. In literal examples, | 9124 | numbered snippet will be continued in the current one. In literal examples, |
| 8786 | Org will interpret strings like @samp{(ref:name)} as labels, and use them as | 9125 | Org will interpret strings like @samp{(ref:name)} as labels, and use them as |
| 8787 | targets for special hyperlinks like @code{[[(name)]]} (i.e. the reference name | 9126 | targets for special hyperlinks like @code{[[(name)]]} (i.e.@: the reference name |
| 8788 | enclosed in single parenthesis). In HTML, hovering the mouse over such a | 9127 | enclosed in single parenthesis). In HTML, hovering the mouse over such a |
| 8789 | link will remote-highlight the corresponding code line, which is kind of | 9128 | link will remote-highlight the corresponding code line, which is kind of |
| 8790 | cool. | 9129 | cool. |
| @@ -8792,7 +9131,7 @@ cool. | |||
| 8792 | You can also add a @code{-r} switch which @i{removes} the labels from the | 9131 | You can also add a @code{-r} switch which @i{removes} the labels from the |
| 8793 | source code@footnote{Adding @code{-k} to @code{-n -r} will @i{keep} the | 9132 | source code@footnote{Adding @code{-k} to @code{-n -r} will @i{keep} the |
| 8794 | labels in the source code while using line numbers for the links, which might | 9133 | labels in the source code while using line numbers for the links, which might |
| 8795 | be useful to explain those in an org-mode example code.}. With the @code{-n} | 9134 | be useful to explain those in an Org mode example code.}. With the @code{-n} |
| 8796 | switch, links to these references will be labeled by the line numbers from | 9135 | switch, links to these references will be labeled by the line numbers from |
| 8797 | the code listing, otherwise links will use the labels with no parentheses. | 9136 | the code listing, otherwise links will use the labels with no parentheses. |
| 8798 | Here is an example: | 9137 | Here 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 | ||
| 8814 | HTML export also allows examples to be published as text areas, @xref{Text | 9153 | HTML export also allows examples to be published as text areas (@pxref{Text |
| 8815 | areas in HTML export}. | 9154 | areas in HTML export}). |
| 9155 | |||
| 9156 | Because the @code{#+BEGIN_...} and @code{#+END_...} patterns need to be added | ||
| 9157 | so 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 |
| 8854 | The optional second and third parameter are the markup (e.g. @samp{quote}, | 9197 | The 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 |
| 8856 | language for formatting the contents. The markup is optional; if it is not | 9199 | language for formatting the contents. The markup is optional; if it is not |
| 8857 | given, the text will be assumed to be in Org-mode format and will be | 9200 | given, the text will be assumed to be in Org mode format and will be |
| 8858 | processed normally. The include line will also allow additional keyword | 9201 | processed normally. The include line will also allow additional keyword |
| 8859 | parameters @code{:prefix1} and @code{:prefix} to specify prefixes for the | 9202 | parameters @code{:prefix1} and @code{:prefix} to specify prefixes for the |
| 8860 | first line and for each following line, @code{:minlevel} in order to get | 9203 | first line and for each following line, @code{:minlevel} in order to get |
| 8861 | org-mode content demoted to a specified level, as well as any options | 9204 | Org mode content demoted to a specified level, as well as any options |
| 8862 | accepted by the selected markup. For example, to include a file as an item, | 9205 | accepted by the selected markup. For example, to include a file as an item, |
| 8863 | use | 9206 | use |
| 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 | ||
| 9212 | You can also include a portion of a file by specifying a lines range using | ||
| 9213 | the @code{:lines} parameter. The line at the upper end of the range will not | ||
| 9214 | be included. The start and/or the end of the range may be omitted to use the | ||
| 9215 | obvious 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 | |||
| 8915 | construct complex HTML code. | 9269 | construct 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 | |||
| 8925 | occasional formula. @LaTeX{}@footnote{@LaTeX{} is a macro system based on | 9279 | occasional formula. @LaTeX{}@footnote{@LaTeX{} is a macro system based on |
| 8926 | Donald E. Knuth's @TeX{} system. Many of the features described here as | 9280 | Donald 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 |
| 8928 | distinction.} is widely used to typeset scientific documents. Org-mode | 9282 | distinction.} is widely used to typeset scientific documents. Org mode |
| 8929 | supports embedding @LaTeX{} code into its files, because many academics are | 9283 | supports embedding @LaTeX{} code into its files, because many academics are |
| 8930 | used to writing and reading @LaTeX{} source code, and because it can be | 9284 | used to writing and reading @LaTeX{} source code, and because it can be |
| 8931 | readily processed to produce pretty output for a number of export backends. | 9285 | readily 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 | |||
| 8951 | indicate the Greek letter, or @samp{\to} to indicate an arrow. Completion | 9305 | indicate the Greek letter, or @samp{\to} to indicate an arrow. Completion |
| 8952 | for these macros is available, just type @samp{\} and maybe a few letters, | 9306 | for these macros is available, just type @samp{\} and maybe a few letters, |
| 8953 | and press @kbd{M-@key{TAB}} to see possible completions. Unlike @LaTeX{} | 9307 | and press @kbd{M-@key{TAB}} to see possible completions. Unlike @LaTeX{} |
| 8954 | code, Org-mode allows these macros to be present without surrounding math | 9308 | code, Org mode allows these macros to be present without surrounding math |
| 8955 | delimiters, for example: | 9309 | delimiters, 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 | |||
| 8985 | for display purposes only. | 9339 | for 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 | |||
| 9023 | format sub- and superscripts in a WYSIWYM way. | 9377 | format 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 |
| 9031 | Going beyond symbols and sub- and superscripts, a full formula language is | 9385 | Going beyond symbols and sub- and superscripts, a full formula language is |
| 9032 | needed. Org-mode can contain @LaTeX{} math fragments, and it supports ways | 9386 | needed. Org mode can contain @LaTeX{} math fragments, and it supports ways |
| 9033 | to process these for several export backends. When exporting to @LaTeX{}, | 9387 | to process these for several export backends. When exporting to @LaTeX{}, |
| 9034 | the code is obviously left as it is. When exporting to HTML, Org invokes the | 9388 | the 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 |
| 9039 | server in order to limit the load of our server.}. Finally, it can also | 9393 | server in order to limit the load of our server.}. Finally, it can also |
| 9040 | process the mathematical expressions into images@footnote{For this to work | 9394 | process the mathematical expressions into images@footnote{For this to work |
| 9041 | you need to be on a system with a working @LaTeX{} installation. You also | 9395 | you need to be on a system with a working @LaTeX{} installation. You also |
| 9042 | need the @file{dvipng} program, available at | 9396 | need 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 |
| 9044 | be used when processing a fragment can be configured with the variable | 9398 | be 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 | |||
| 9082 | ones you do not wish to have interpreted by the @LaTeX{} converter. | 9436 | ones 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 |
| 9085 | LaTeX 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} |
| 9087 | which means @file{MathJax} for HTML, and no processing for DocBook, ASCII and | 9441 | which means @file{MathJax} for HTML, and no processing for DocBook, ASCII and |
| 9088 | LaTeX 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 |
| 9089 | of these lines: | 9443 | of 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 | ||
| 9102 | If you have @file{dvipng} installed, @LaTeX{} fragments can be processed to | 9456 | If you have @file{dvipng} installed, @LaTeX{} fragments can be processed to |
| 9103 | produce preview images of the typeset expressions: | 9457 | produce 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 |
| 9120 | You can customize the variable @code{org-format-latex-options} to influence | 9474 | You can customize the variable @code{org-format-latex-options} to influence |
| 9121 | some aspects of the preview. In particular, the @code{:scale} (and for HTML | 9475 | some aspects of the preview. In particular, the @code{:scale} (and for HTML |
| 9122 | export, @code{:html-scale}) property can be used to adjust the size of the | 9476 | export, @code{:html-scale}) property can be used to adjust the size of the |
| 9123 | preview images. | 9477 | preview 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 | ||
| 9129 | CDLa@TeX{} mode is a minor mode that is normally used in combination with a | 9483 | CD@LaTeX{} mode is a minor mode that is normally used in combination with a |
| 9130 | major @LaTeX{} mode like AUC@TeX{} in order to speed-up insertion of | 9484 | major @LaTeX{} mode like AUC@TeX{} in order to speed-up insertion of |
| 9131 | environments and math templates. Inside Org-mode, you can make use of | 9485 | environments and math templates. Inside Org mode, you can make use of |
| 9132 | some of the features of CDLa@TeX{} mode. You need to install | 9486 | some 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 |
| 9134 | AUC@TeX{}) from @url{http://www.astro.uva.nl/~dominik/Tools/cdlatex}. | 9488 | AUC@TeX{}) from @url{http://www.astro.uva.nl/~dominik/Tools/cdlatex}. |
| 9135 | Don't use CDLa@TeX{} mode itself under Org-mode, but use the light | 9489 | Don't use CD@LaTeX{} mode itself under Org mode, but use the light |
| 9136 | version @code{org-cdlatex-mode} that comes as part of Org-mode. Turn it | 9490 | version @code{org-cdlatex-mode} that comes as part of Org mode. Turn it |
| 9137 | on for the current buffer with @code{M-x org-cdlatex-mode}, or for all | 9491 | on for the current buffer with @code{M-x org-cdlatex-mode}, or for all |
| 9138 | Org files with | 9492 | Org files with |
| 9139 | 9493 | ||
| @@ -9142,7 +9496,7 @@ Org files with | |||
| 9142 | @end lisp | 9496 | @end lisp |
| 9143 | 9497 | ||
| 9144 | When this mode is enabled, the following features are present (for more | 9498 | When this mode is enabled, the following features are present (for more |
| 9145 | details see the documentation of CDLa@TeX{} mode): | 9499 | details 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} |
| 9152 | The @key{TAB} key will do template expansion if the cursor is inside a | 9506 | The @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 |
| 9154 | inside such a fragment, see the documentation of the function | 9508 | inside 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 |
| 9156 | expand @code{fr} to @code{\frac@{@}@{@}} and position the cursor | 9510 | expand @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 | ||
| 9190 | Org-mode documents can be exported into a variety of other formats. For | 9544 | Org mode documents can be exported into a variety of other formats. For |
| 9191 | printing and sharing of notes, ASCII export produces a readable and simple | 9545 | printing and sharing of notes, ASCII export produces a readable and simple |
| 9192 | version of an Org file. HTML export allows you to publish a notes file on | 9546 | version of an Org file. HTML export allows you to publish a notes file on |
| 9193 | the web, while the XOXO format provides a solid base for exchange with a | 9547 | the web, while the XOXO format provides a solid base for exchange with a |
| 9194 | broad range of other applications. @LaTeX{} export lets you use Org-mode and | 9548 | broad range of other applications. @LaTeX{} export lets you use Org mode and |
| 9195 | its structured editing functions to easily create @LaTeX{} files. DocBook | 9549 | its structured editing functions to easily create @LaTeX{} files. DocBook |
| 9196 | export makes it possible to convert Org files to many other formats using | 9550 | export makes it possible to convert Org files to many other formats using |
| 9197 | DocBook tools. For project management you can create gantt and resource | 9551 | DocBook tools. OpenDocument Text(@acronym{ODT}) export allows seamless |
| 9198 | charts by using TaskJuggler export. To incorporate entries with associated | 9552 | collaboration across organizational boundaries. For project management you |
| 9199 | times like deadlines or appointments into a desktop calendar program like | 9553 | can create gantt and resource charts by using TaskJuggler export. To |
| 9200 | iCal, Org-mode can also produce extracts in the iCalendar format. Currently | 9554 | incorporate entries with associated times like deadlines or appointments into |
| 9201 | Org-mode only supports export, not import of these different formats. | 9555 | a desktop calendar program like iCal, Org mode can also produce extracts in |
| 9556 | the iCalendar format. Currently Org mode only supports export, not import of | ||
| 9557 | these different formats. | ||
| 9202 | 9558 | ||
| 9203 | Org supports export of selected regions when @code{transient-mark-mode} is | 9559 | Org supports export of selected regions when @code{transient-mark-mode} is |
| 9204 | enabled (default in Emacs 23). | 9560 | enabled (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 | ||
| 9226 | You may use tags to select the parts of a document that should be exported, | 9584 | You may use tags to select the parts of a document that should be exported, |
| 9227 | or to exclude parts from export. This behavior is governed by two variables: | 9585 | or 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}, |
| 9587 | respectively defaulting to @code{'(:export:)} and @code{'(:noexport:)}. | ||
| 9229 | 9588 | ||
| 9230 | Org first checks if any of the @emph{select} tags is present in the buffer. | 9589 | @enumerate |
| 9231 | If yes, all trees that do not carry one of these tags will be excluded. If a | 9590 | @item |
| 9232 | selected tree is a subtree, the heading hierarchy above it will also be | 9591 | Org first checks if any of the @emph{select} tags is present in the |
| 9233 | selected for export, but not the text below those headings. | 9592 | buffer. If yes, all trees that do not carry one of these tags will be |
| 9593 | excluded. If a selected tree is a subtree, the heading hierarchy above it | ||
| 9594 | will also be selected for export, but not the text below those headings. | ||
| 9234 | 9595 | ||
| 9235 | @noindent | 9596 | @item |
| 9236 | If none of the select tags is found, the whole buffer will be selected for | 9597 | If none of the select tags is found, the whole buffer will be selected for |
| 9237 | export. | 9598 | export. |
| 9238 | 9599 | ||
| 9239 | @noindent | 9600 | @item |
| 9240 | Finally, all subtrees that are marked by any of the @emph{exclude} tags will | 9601 | Finally, all subtrees that are marked by any of the @emph{exclude} tags will |
| 9241 | be removed from the export buffer. | 9602 | be removed from the export buffer. |
| 9603 | @end enumerate | ||
| 9604 | |||
| 9605 | The variable @code{org-export-with-tasks} can be configured to select which | ||
| 9606 | kind of tasks should be included for export. See the docstring of the | ||
| 9607 | variable 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 |
| 9304 | The OPTIONS line is a compact@footnote{If you want to configure many options | 9671 | The @code{#+OPTIONS} line is a compact@footnote{If you want to configure many options |
| 9305 | this way, you can use several OPTIONS lines.} form to specify export | 9672 | this way, you can use several @code{#+OPTIONS} lines.} form to specify export |
| 9306 | settings. Here you can: | 9673 | settings. 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 |
| 9323 | H: @r{set the number of headline levels for export} | 9695 | H: @r{set the number of headline levels for export} |
| 9324 | num: @r{turn on/off section-numbers} | 9696 | num: @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.} |
| 9334 | f: @r{turn on/off footnotes like this[1].} | 9706 | f: @r{turn on/off footnotes like this[1].} |
| 9335 | todo: @r{turn on/off inclusion of TODO keywords into exported text} | 9707 | todo: @r{turn on/off inclusion of TODO keywords into exported text} |
| 9708 | tasks: @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} | ||
| 9336 | pri: @r{turn on/off priority cookies} | 9710 | pri: @r{turn on/off priority cookies} |
| 9337 | tags: @r{turn on/off inclusion of tags, may also be @code{not-in-toc}} | 9711 | tags: @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 |
| 9350 | These options take effect in both the HTML and @LaTeX{} export, except for | 9724 | These 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 |
| 9352 | for the @LaTeX{} export. The default values for these and many other options | 9726 | @code{nil} for the @LaTeX{} export. |
| 9353 | are given by a set of variables. For a list of such variables, the | 9727 | |
| 9354 | corresponding OPTIONS keys and also the publishing keys (@pxref{Project | 9728 | The default values for these and many other options are given by a set of |
| 9355 | alist}), see the constant @code{org-export-plist-vars}. | 9729 | variables. For a list of such variables, the corresponding OPTIONS keys and |
| 9730 | also the publishing keys (@pxref{Project alist}), see the constant | ||
| 9731 | @code{org-export-plist-vars}. | ||
| 9356 | 9732 | ||
| 9357 | When exporting only a single subtree by selecting it with @kbd{C-c @@} before | 9733 | When exporting only a single subtree by selecting it with @kbd{C-c @@} before |
| 9358 | calling an export command, the subtree can overrule some of the file's export | 9734 | calling 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 | |||
| 9381 | the variable @code{org-export-run-in-background}.}. | 9757 | the 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} |
| 9383 | Like @kbd{C-c C-e}, but only export the text that is currently visible | 9759 | Like @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 |
| 9387 | Call the exporter, but reverse the setting of | 9763 | Call 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 |
| 9389 | not set, or force processing in the current Emacs process if set. | 9765 | not 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 | ||
| 9398 | ASCII export produces a simple and very readable version of an Org-mode | 9774 | ASCII export produces a simple and very readable version of an Org mode |
| 9399 | file, containing only plain ASCII. Latin-1 and UTF-8 export augment the file | 9775 | file, containing only plain ASCII. Latin-1 and UTF-8 export augment the file |
| 9400 | with special characters and symbols available in these encodings. | 9776 | with 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 | |||
| 9409 | will be @file{myfile.txt}. The file will be overwritten without | 9785 | will be @file{myfile.txt}. The file will be overwritten without |
| 9410 | warning. If there is an active region@footnote{This requires | 9786 | warning. 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 |
| 9412 | exported. If the selected region is a single tree@footnote{To select the | 9788 | exported. If the selected region is a single tree@footnote{To select the |
| 9413 | current subtree, use @kbd{C-c @@}.}, the tree head will | 9789 | current subtree, use @kbd{C-c @@}.}, the tree head will |
| 9414 | become the document title. If the tree head entry has or inherits an | 9790 | become 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 | |||
| 9450 | the text and the link in a note before the next heading. See the variable | 9826 | the 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 | ||
| 9457 | Org-mode contains an HTML (XHTML 1.0 strict) exporter with extensive | 9833 | Org mode contains an HTML (XHTML 1.0 strict) exporter with extensive |
| 9458 | HTML formatting, in ways similar to John Gruber's @emph{markdown} | 9834 | HTML formatting, in ways similar to John Gruber's @emph{markdown} |
| 9459 | language, but with additional support for tables. | 9835 | language, 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 |
| 9482 | Export as HTML file @file{myfile.html}. For an Org file @file{myfile.org}, | 9859 | Export as HTML file. For an Org file @file{myfile.org}, |
| 9483 | the ASCII file will be @file{myfile.html}. The file will be overwritten | 9860 | the HTML file will be @file{myfile.html}. The file will be overwritten |
| 9484 | without warning. If there is an active region@footnote{This requires | 9861 | without 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 |
| 9486 | exported. If the selected region is a single tree@footnote{To select the | 9863 | exported. If the selected region is a single tree@footnote{To select the |
| 9487 | current subtree, use @kbd{C-c @@}.}, the tree head will become the document | 9864 | current subtree, use @kbd{C-c @@}.}, the tree head will become the document |
| 9488 | title. If the tree head entry has, or inherits, an @code{EXPORT_FILE_NAME} | 9865 | title. If the tree head entry has, or inherits, an @code{EXPORT_FILE_NAME} |
| 9489 | property, that name will be used for the export. | 9866 | property, 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 |
| 9499 | Export only the visible part of the document. | 9876 | Export 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 |
| 9501 | Convert the region to HTML under the assumption that it was Org-mode | 9878 | Convert the region to HTML under the assumption that it was Org mode |
| 9502 | syntax before. This is a global command that can be invoked in any | 9879 | syntax before. This is a global command that can be invoked in any |
| 9503 | buffer. | 9880 | buffer. |
| 9504 | @item M-x org-replace-region-by-HTML | 9881 | @item M-x org-replace-region-by-HTML |
| 9505 | Replace the active region (assumed to be in Org-mode syntax) by HTML | 9882 | Replace the active region (assumed to be in Org mode syntax) by HTML |
| 9506 | code. | 9883 | code. |
| 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 |
| 9520 | creates two levels of headings and does the rest as items. | 9897 | creates 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 | |||
| 9912 | The HTML exporter lets you define a preamble and a postamble. | ||
| 9913 | |||
| 9914 | The default value for @code{org-export-html-preamble} is @code{t}, which | ||
| 9915 | means that the preamble is inserted depending on the relevant formatting | ||
| 9916 | string in @code{org-export-html-preamble-format}. | ||
| 9917 | |||
| 9918 | Setting @code{org-export-html-preamble} to a string will override the default | ||
| 9919 | formatting string. Setting it to a function, will insert the output of the | ||
| 9920 | function, which must be a string; such a function takes no argument but you | ||
| 9921 | can check against the value of @code{opt-plist}, which contains the list of | ||
| 9922 | publishing properties for the current file. Setting to @code{nil} will not | ||
| 9923 | insert any preamble. | ||
| 9924 | |||
| 9925 | The default value for @code{org-export-html-postamble} is @code{'auto}, which | ||
| 9926 | means 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 | ||
| 9930 | values. Setting @code{org-export-html-postamble} to @code{t} will insert the | ||
| 9931 | postamble from the relevant formatting string found in | ||
| 9932 | @code{org-export-html-postamble-format}. Setting it to @code{nil} will not | ||
| 9933 | insert 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 | ||
| 9525 | Plain @samp{<} and @samp{>} are always transformed to @samp{<} and | 9938 | Plain @samp{<} and @samp{>} are always transformed to @samp{<} 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 | ||
| 9580 | Org-mode tables are exported to HTML using the table tag defined in | 9993 | Org 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 |
| 9582 | cell borders and frame. If you would like to change this for individual | 9995 | cell borders and frame. If you would like to change this for individual |
| 9583 | tables, place something like the following before the table: | 9996 | tables, 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 |
| 9627 | and you could use @code{http} addresses just as well. | 10040 | You 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 |
| 9635 | different ways on HTML pages. The default is to use the | 10048 | different 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 |
| 9637 | box with Org mode installation because @code{http://orgmode.org} serves | 10050 | box 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 |
| 9639 | purposes. @b{If you plan to use this regularly or on pages with significant | 10052 | purposes. @b{If you plan to use this regularly or on pages with significant |
| 9640 | page views, you should install@footnote{Installation instructions can be | 10053 | page views, you should install@footnote{Installation instructions can be |
| 9641 | found on the MathJax website, see | 10054 | found 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 |
| 9702 | p.author @r{author information, including email} | 10115 | p.author @r{author information, including email} |
| 9703 | p.date @r{publishing date} | 10116 | p.date @r{publishing date} |
| 9704 | p.creator @r{creator info, about org-mode version} | 10117 | p.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 |
| 9828 | pages, configure the variable @code{org-export-html-use-infojs}. | 10241 | pages, 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 | ||
| 9836 | Org-mode contains a @LaTeX{} exporter written by Bastien Guerry. With | 10249 | Org mode contains a @LaTeX{} exporter written by Bastien Guerry. With |
| 9837 | further processing@footnote{The default LaTeX output is designed for | 10250 | further processing@footnote{The default @LaTeX{} output is designed for |
| 9838 | processing with pdftex or latex. It includes packages that are not | 10251 | processing with @code{pdftex} or @LaTeX{}. It includes packages that are not |
| 9839 | compatible with xetex and possibly luatex. See the variables | 10252 | compatible 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 |
| 9842 | produce PDF output. Since the @LaTeX{} output uses @file{hyperref} to | 10255 | produce PDF output. Since the @LaTeX{} output uses @file{hyperref} to |
| 9843 | implement links and cross references, the PDF output file will be fully | 10256 | implement links and cross references, the PDF output file will be fully |
| 9844 | linked. | 10257 | linked. Beware of the fact that your @code{org} file has to be properly |
| 10258 | structured in order to be correctly exported: respect the hierarchy of | ||
| 10259 | sections. | ||
| 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 |
| 9864 | Export as @LaTeX{} file @file{myfile.tex}. For an Org file | 10279 | Export 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 |
| 9866 | be overwritten without warning. If there is an active region@footnote{This | 10281 | be overwritten without warning. If there is an active region@footnote{This |
| 9867 | requires @code{transient-mark-mode} be turned on.}, only the region will be | 10282 | requires @code{transient-mark-mode} be turned on.}, only the region will be |
| 9868 | exported. If the selected region is a single tree@footnote{To select the | 10283 | exported. If the selected region is a single tree@footnote{To select the |
| 9869 | current subtree, use @kbd{C-c @@}.}, the tree head will become the document | 10284 | current subtree, use @kbd{C-c @@}.}, the tree head will become the document |
| 9870 | title. If the tree head entry has or inherits an @code{EXPORT_FILE_NAME} | 10285 | title. If the tree head entry has or inherits an @code{EXPORT_FILE_NAME} |
| 9871 | property, that name will be used for the export. | 10286 | property, 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} |
| 9873 | Export to a temporary buffer. Do not create a file. | 10288 | Export 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 |
| 9875 | Export only the visible part of the document. | 10290 | Export 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 |
| 9877 | Convert the region to @LaTeX{} under the assumption that it was Org-mode | 10292 | Convert the region to @LaTeX{} under the assumption that it was Org mode |
| 9878 | syntax before. This is a global command that can be invoked in any | 10293 | syntax before. This is a global command that can be invoked in any |
| 9879 | buffer. | 10294 | buffer. |
| 9880 | @item M-x org-replace-region-by-latex | 10295 | @item M-x org-replace-region-by-latex |
| 9881 | Replace the active region (assumed to be in Org-mode syntax) by @LaTeX{} | 10296 | Replace the active region (assumed to be in Org mode syntax) by @LaTeX{} |
| 9882 | code. | 10297 | code. |
| 9883 | @orgcmd{C-c C-e p,org-export-as-pdf} | 10298 | @orgcmd{C-c C-e p,org-export-as-pdf} |
| 9884 | Export as @LaTeX{} and then process to PDF. | 10299 | Export 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 | ||
| 9897 | If you want that transition to occur at a different level, specify it | 10312 | If you want that transition to occur at a different level, specify it |
| 9898 | with a numeric prefix argument. For example, | 10313 | with 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 |
| 9905 | creates two levels of headings and does the rest as items. | 10320 | creates 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 | ||
| 9915 | By default, the @LaTeX{} output uses the class @code{article}. | 10330 | By 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 | |||
| 9938 | header. See the docstring of @code{org-export-latex-classes} for more | 10353 | header. See the docstring of @code{org-export-latex-classes} for more |
| 9939 | information. | 10354 | information. |
| 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 | ||
| 9944 | Embedded @LaTeX{} as described in @ref{Embedded LaTeX}, will be correctly | 10359 | Embedded @LaTeX{} as described in @ref{Embedded @LaTeX{}}, will be correctly |
| 9945 | inserted into the @LaTeX{} file. This includes simple macros like | 10360 | inserted 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, |
| 9947 | you can add special code that should only be present in @LaTeX{} export with | 10362 | you 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 | ||
| 9970 | For @LaTeX{} export of a table, you can specify a label and a caption | 10385 | For @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 | 10386 | placement options (@pxref{Images and tables}). You can also use the |
| 9972 | request 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 |
| 9973 | several pages, or provide the @code{multicolumn} keyword that will make the | 10388 | table, so that it may span several pages, or to change the default table |
| 9974 | table span the page in a multicolumn environment (@code{table*} environment). | 10389 | environment from @code{table} to @code{table*} or to change the default inner |
| 9975 | Finally, you can set the alignment string: | 10390 | tabular environment to @code{tabularx} or @code{tabulary}. Finally, you can |
| 10391 | set the alignment string, and (with @code{tabularx} or @code{tabulary}) the | ||
| 10392 | width: | ||
| 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 | ||
| 10405 | or 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 |
| 9998 | caption and/or a label as described in @ref{Images and tables}, the figure | 10427 | caption and/or a label as described in @ref{Images and tables}, the figure |
| 9999 | will be wrapped into a @code{figure} environment and thus become a floating | 10428 | will be wrapped into a @code{figure} environment and thus become a floating |
| 10000 | element. You can use an @code{#+ATTR_LaTeX:} line to specify the various | 10429 | element. You can use an @code{#+ATTR_LaTeX:} line to specify various other |
| 10001 | options that can be used in the optional argument of the | 10430 | options. You can ask org to export an image as a float without specifying |
| 10002 | @code{\includegraphics} macro. To modify the placement option of the | 10431 | a 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 | 10432 | optional arguments to the @code{\includegraphics} macro can also be specified |
| 10004 | Attributes. | 10433 | in this fashion. To modify the placement option of the floating environment, |
| 10434 | add something like @samp{placement=[h!]} to the attributes. It is to be noted | ||
| 10435 | this option can be used with tables as well@footnote{One can also take | ||
| 10436 | advantage of this option to pass other, unrelated options into the figure or | ||
| 10437 | table 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 | ||
| 10440 | below it. | ||
| 10005 | 10441 | ||
| 10006 | If you would like to let text flow around the image, add the word @samp{wrap} | 10442 | If you would like to let text flow around the image, add the word @samp{wrap} |
| 10007 | to the @code{#+ATTR_LaTeX:} line, which will make the figure occupy the left | 10443 | to 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 | ||
| 10462 | If you wish to include an image which spans multiple columns in a page, you | ||
| 10463 | can use the keyword @code{multicolumn} in the @code{#+ATTR_LaTeX} line. This | ||
| 10464 | will export the image wrapped in a @code{figure*} environment. | ||
| 10465 | |||
| 10026 | If you need references to a label created in this way, write | 10466 | If 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 | ||
| 10032 | The LaTeX class @file{beamer} allows production of high quality presentations | 10472 | The @LaTeX{} class @file{beamer} allows production of high quality presentations |
| 10033 | using LaTeX and pdf processing. Org-mode has special support for turning an | 10473 | using @LaTeX{} and pdf processing. Org mode has special support for turning an |
| 10034 | Org-mode file or tree into a @file{beamer} presentation. | 10474 | Org mode file or tree into a @file{beamer} presentation. |
| 10035 | 10475 | ||
| 10036 | When the LaTeX class for the current buffer (as set with @code{#+LaTeX_CLASS: | 10476 | When the @LaTeX{} class for the current buffer (as set with @code{#+LaTeX_CLASS: |
| 10037 | beamer}) or subtree (set with a @code{LaTeX_CLASS} property) is | 10477 | beamer}) 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 |
| 10039 | presentation. Any tree with not-too-deep level nesting should in principle be | 10479 | presentation. 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 | ||
| 10154 | For more information, see the documentation on Worg. | 10594 | For 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 | ||
| 10257 | DocBook exporter exports Org files as articles using the @code{article} | 10697 | DocBook exporter exports Org files as articles using the @code{article} |
| 10258 | element in DocBook. Recursive sections, i.e. @code{section} elements, are | 10698 | element in DocBook. Recursive sections, i.e.@: @code{section} elements, are |
| 10259 | used in exported articles. Top level headlines in Org files are exported as | 10699 | used in exported articles. Top level headlines in Org files are exported as |
| 10260 | top level sections, and lower level headlines are exported as nested | 10700 | top level sections, and lower level headlines are exported as nested |
| 10261 | sections. The entire structure of Org files will be exported completely, no | 10701 | sections. 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 | |||
| 10805 | Orgmode@footnote{Versions 7.8 or later} supports export to OpenDocument Text | ||
| 10806 | (@acronym{ODT}) format using the @file{org-odt.el} module. Documents created | ||
| 10807 | by this exporter use the @cite{OpenDocument-v1.2 | ||
| 10808 | specification}@footnote{@url{http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html, | ||
| 10809 | Open Document Format for Office Applications (OpenDocument) Version 1.2}} and | ||
| 10810 | are 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 | ||
| 10827 | The @acronym{ODT} exporter relies on the @file{zip} program to create the final | ||
| 10828 | output. 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 | |||
| 10843 | Export as OpenDocument Text file. | ||
| 10844 | @vindex org-export-odt-preferred-output-format | ||
| 10845 | If @code{org-export-odt-preferred-output-format} is specified, automatically | ||
| 10846 | convert the exported file to that format. | ||
| 10847 | @xref{x-export-to-other-formats,,Automatically exporting to other formats}. | ||
| 10848 | |||
| 10849 | For 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 | ||
| 10851 | is an active region,@footnote{This requires @code{transient-mark-mode} to be | ||
| 10852 | turned on} only the region will be exported. If the selected region is a | ||
| 10853 | single tree,@footnote{To select the current subtree, use @kbd{C-c @@}} the | ||
| 10854 | tree head will become the document title. If the tree head entry has, or | ||
| 10855 | inherits, an @code{EXPORT_FILE_NAME} property, that name will be used for the | ||
| 10856 | export. | ||
| 10857 | |||
| 10858 | @orgcmd{C-c C-e O,org-export-as-odt-and-open} | ||
| 10859 | Export as OpenDocument Text file and open the resulting file. | ||
| 10860 | @vindex org-export-odt-preferred-output-format | ||
| 10861 | If @code{org-export-odt-preferred-output-format} is specified, open the | ||
| 10862 | converted 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 | ||
| 10869 | Very often, you will find yourself exporting to @acronym{ODT} format, only to | ||
| 10870 | immediately save the exported document to a different format like @samp{pdf}. | ||
| 10871 | In such cases, you will find it convenient to configure a converter | ||
| 10872 | (@pxref{Exporting and converting to other formats}) and specify your | ||
| 10873 | preferred 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 | ||
| 10876 | the 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 | |||
| 10883 | The @acronym{ODT} exporter ships with a set of OpenDocument styles | ||
| 10884 | (@pxref{Working with OpenDocument style files}) that ensure a well-formatted | ||
| 10885 | output. These factory styles, however, may not cater to your specific | ||
| 10886 | tastes. To customize the output, you can either modify the above styles | ||
| 10887 | files directly, or generate the required styles using an application like | ||
| 10888 | LibreOffice. The latter method is suitable for expert and non-expert | ||
| 10889 | users alike, and is described here. | ||
| 10890 | |||
| 10891 | @subsubsection Applying custom styles - the easy way | ||
| 10892 | |||
| 10893 | @enumerate | ||
| 10894 | @item | ||
| 10895 | Create a sample @file{example.org} file with the below settings and export it | ||
| 10896 | to @acronym{ODT} format. | ||
| 10897 | |||
| 10898 | @example | ||
| 10899 | #+OPTIONS: H:10 num:t | ||
| 10900 | @end example | ||
| 10901 | |||
| 10902 | @item | ||
| 10903 | Open the above @file{example.odt} using LibreOffice. Use the @file{Stylist} | ||
| 10904 | to locate the target styles - these typically have the @samp{Org} prefix - | ||
| 10905 | and modify those to your taste. Save the modified file either as an | ||
| 10906 | OpenDocument Text (@file{.odt}) or OpenDocument Template (@file{.ott}) file. | ||
| 10907 | |||
| 10908 | @item | ||
| 10909 | @cindex #+ODT_STYLES_FILE | ||
| 10910 | @vindex org-export-odt-styles-file | ||
| 10911 | Customize the variable @code{org-export-odt-styles-file} and point it to the | ||
| 10912 | newly created file. For additional configuration options | ||
| 10913 | @pxref{x-overriding-factory-styles,,Overriding factory styles}. | ||
| 10914 | |||
| 10915 | If 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 | |||
| 10922 | or | ||
| 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 | |||
| 10932 | You can use third-party styles and templates for customizing your output. | ||
| 10933 | This will produce the desired output only if the template provides all | ||
| 10934 | style names that the @samp{ODT} exporter relies on. Unless this condition is | ||
| 10935 | met, the output is going to be less than satisfactory. So it is highly | ||
| 10936 | recommended that you only work with templates that are directly derived from | ||
| 10937 | the 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 | |||
| 10943 | The @acronym{ODT} exporter creates cross-references (aka bookmarks) for | ||
| 10944 | internal 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 | |||
| 10950 | Export of native Org mode tables (@pxref{Tables}) and simple @file{table.el} | ||
| 10951 | tables is supported. However, export of complex @file{table.el} tables - | ||
| 10952 | tables that have column or row spans - is not supported. Such tables are | ||
| 10953 | stripped from the exported document. | ||
| 10954 | |||
| 10955 | By default, a table is exported with top and bottom frames and with | ||
| 10956 | rules separating row and column groups (@pxref{Column groups}). If the table | ||
| 10957 | specifies alignment and relative width for its columns (@pxref{Column width | ||
| 10958 | and alignment}) then these are honored on export.@footnote{The column widths | ||
| 10959 | are interpreted as weighted ratios with the default weight being 1} | ||
| 10960 | |||
| 10961 | @cindex #+ATTR_ODT | ||
| 10962 | If you are not satisfied with the default formatting of tables, you can | ||
| 10963 | create custom table styles and associate them with a table using | ||
| 10964 | the @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 | ||
| 10972 | You can embed images within the exported document by providing a link to the | ||
| 10973 | desired 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 | ||
| 10985 | You can create clickable images by providing a link whose description is a | ||
| 10986 | link 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 | |||
| 10996 | You 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 | ||
| 11000 | Note that the exporter specifies the desired size of the image in the final | ||
| 11001 | document in units of centimeters. In order to scale the embedded images, the | ||
| 11002 | exporter needs to compute the size of the image. This is done by retrieving | ||
| 11003 | the 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 | ||
| 11005 | set to @code{display-pixels-per-inch}. You can tweak this variable to | ||
| 11006 | achieve the best results. | ||
| 11007 | |||
| 11008 | The examples below illustrate the various possibilities. | ||
| 11009 | |||
| 11010 | @table @asis | ||
| 11011 | |||
| 11012 | @item Explicitly size the image | ||
| 11013 | To 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 | ||
| 11021 | To 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 | ||
| 11029 | To embed @file{img.png} with a width of 10 cm while retaining the original | ||
| 11030 | height: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 | ||
| 11038 | To embed @file{img.png} with a height of 10 cm while retaining the original | ||
| 11039 | height: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 | |||
| 11050 | The @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 | ||
| 11061 | document in one of the following ways: | ||
| 11062 | |||
| 11063 | @cindex MathML | ||
| 11064 | @enumerate | ||
| 11065 | @item MathML | ||
| 11066 | |||
| 11067 | This option is activated on a per-file basis with | ||
| 11068 | |||
| 11069 | @example | ||
| 11070 | #+OPTIONS: LaTeX:t | ||
| 11071 | @end example | ||
| 11072 | |||
| 11073 | With this option, @LaTeX{} fragments are first converted into MathML | ||
| 11074 | fragments using an external @LaTeX{}-to-MathML converter program. The | ||
| 11075 | resulting MathML fragments are then embedded as an OpenDocument Formula in | ||
| 11076 | the exported document. | ||
| 11077 | |||
| 11078 | @vindex org-latex-to-mathml-convert-command | ||
| 11079 | @vindex org-latex-to-mathml-jar-file | ||
| 11080 | |||
| 11081 | You 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 | |||
| 11085 | If you prefer to use @file{MathToWeb}@footnote{See | ||
| 11086 | @uref{http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl, MathToWeb}} as your | ||
| 11087 | converter, 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 | |||
| 11096 | You can use the following commands to quickly verify the reliability of | ||
| 11097 | the @LaTeX{}-to-MathML converter. | ||
| 11098 | |||
| 11099 | @table @kbd | ||
| 11100 | |||
| 11101 | @item M-x org-export-as-odf | ||
| 11102 | Convert a @LaTeX{} math snippet to OpenDocument formula (@file{.odf}) file. | ||
| 11103 | |||
| 11104 | @item M-x org-export-as-odf-and-open | ||
| 11105 | Convert a @LaTeX{} math snippet to OpenDocument formula (@file{.odf}) file and | ||
| 11106 | open the formula file with the system-registered application. | ||
| 11107 | @end table | ||
| 11108 | |||
| 11109 | @cindex dvipng | ||
| 11110 | @item PNG images | ||
| 11111 | |||
| 11112 | This option is activated on a per-file basis with | ||
| 11113 | |||
| 11114 | @example | ||
| 11115 | #+OPTIONS: LaTeX:dvipng | ||
| 11116 | @end example | ||
| 11117 | |||
| 11118 | With this option, @LaTeX{} fragments are processed into PNG images and the | ||
| 11119 | resulting images are embedded in the exported document. This method requires | ||
| 11120 | that 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 | |||
| 11126 | For 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 | ||
| 11128 | math equation by linking to its MathML(@file{.mml}) source or its | ||
| 11129 | OpenDocument formula (@file{.odf}) file as shown below: | ||
| 11130 | |||
| 11131 | @example | ||
| 11132 | [[./equation.mml]] | ||
| 11133 | @end example | ||
| 11134 | |||
| 11135 | or | ||
| 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 | |||
| 11144 | Export of literal examples (@pxref{Literal examples}) with full fontification | ||
| 11145 | is supported. This feature is enabled by default and is activated | ||
| 11146 | automatically if an enhanced version of @file{htmlfontify.el} is available in | ||
| 11147 | the @code{load-path}.@footnote{The @file{htmlfontify.el} that ships with | ||
| 11148 | standard Emacs <= 24.1 has no support for @acronym{ODT} fontification. A | ||
| 11149 | copy 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, | ||
| 11151 | Emacs Bug #9914}.} | ||
| 11152 | |||
| 11153 | @vindex org-export-odt-fontify-srcblocks | ||
| 11154 | |||
| 11155 | The character styles used for fontification of the literal blocks are | ||
| 11156 | auto-generated by the exporter in conjunction with @file{htmlfontify.el} | ||
| 11157 | library and need not be included in the default @file{styles.xml} file. | ||
| 11158 | These auto-generated styles have the @samp{OrgSrc} prefix and inherit their color | ||
| 11159 | based on the face used by Emacs @code{font-lock} library. | ||
| 11160 | |||
| 11161 | @vindex org-export-odt-create-custom-styles-for-srcblocks | ||
| 11162 | If you prefer to use your own custom styles for fontification and disable | ||
| 11163 | their auto-generation altogether, you can do so by customizing the variable | ||
| 11164 | @code{org-export-odt-create-custom-styles-for-srcblocks}. | ||
| 11165 | |||
| 11166 | You can turn off fontification support for literal examples by customizing | ||
| 11167 | the 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 | |||
| 11173 | If you rely heavily on @acronym{ODT} export, you may want to exploit the full | ||
| 11174 | set of features that the exporter offers. This section describes features | ||
| 11175 | that 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 | |||
| 11190 | The @acronym{ODT} exporter adds support for exporting Org outlines to formats | ||
| 11191 | that are not supported natively by Org. It also adds support to convert | ||
| 11192 | document from one format to another. To use these features, you need to | ||
| 11193 | configure a command-line converter. Once a command-line converter is | ||
| 11194 | configured you can use it to extend the list of formats to which Org can | ||
| 11195 | export. @xref{x-export-to-other-formats,,Automatically exporting to other | ||
| 11196 | formats}. You can also use it to perform one-off document conversion as | ||
| 11197 | detailed below. | ||
| 11198 | |||
| 11199 | @vindex org-export-odt-convert | ||
| 11200 | @table @kbd | ||
| 11201 | |||
| 11202 | @item M-x org-export-odt-convert | ||
| 11203 | Convert an existing document from one format to another as determined by the | ||
| 11204 | variable @code{org-export-odt-convert-capabilities} | ||
| 11205 | (@pxref{x-odt-converter-capabilities,,Configure converter | ||
| 11206 | capabilities}). @strong{Please note} that you can use this command to even | ||
| 11207 | convert 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 | ||
| 11214 | The @acronym{ODT} exporter supports two converters out of the box: | ||
| 11215 | |||
| 11216 | @enumerate | ||
| 11217 | |||
| 11218 | @cindex @file{unoconv} | ||
| 11219 | @item @file{unoconv} | ||
| 11220 | |||
| 11221 | This converter is available as an installable package in your favorite | ||
| 11222 | distribution. | ||
| 11223 | |||
| 11224 | @cindex @file{BasicODConverter} | ||
| 11225 | @item @file{BasicODConverter} | ||
| 11226 | |||
| 11227 | @vindex org-odt-data-dir | ||
| 11228 | This converter is distributed as a LibreOffice extension and can be found in | ||
| 11229 | your 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 | ||
| 11235 | If you prefer to use a converter other than the two mentioned above, then you | ||
| 11236 | may 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 | ||
| 11242 | Name your converter and add it to the list of known converters by customizing | ||
| 11243 | the variable @code{org-export-odt-convert-processes}. Also specify how the | ||
| 11244 | converter 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 | |||
| 11251 | Specify the set of formats the converter can handle by customizing the | ||
| 11252 | variable @code{org-export-odt-convert-capabilities}. Use the default value | ||
| 11253 | for this variable as a guide for configuring your converter. As suggested by | ||
| 11254 | the default setting, you can specify the full set of formats supported by the | ||
| 11255 | converter and not limit yourself to specifying formats that are related to | ||
| 11256 | just the OpenDocument Text format. | ||
| 11257 | |||
| 11258 | @item Choose the converter | ||
| 11259 | |||
| 11260 | @vindex org-export-odt-convert-process | ||
| 11261 | Select the newly added converter as the preferred one by customizing the | ||
| 11262 | variable @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 | |||
| 11270 | This section explores the internals of the @acronym{ODT} exporter and the | ||
| 11271 | means by which it produces styled documents. Read this section if you are | ||
| 11272 | interested in exploring the automatic and custom OpenDocument styles used by | ||
| 11273 | the exporter. | ||
| 11274 | |||
| 11275 | @anchor{x-factory-styles} | ||
| 11276 | @subsubheading Factory styles | ||
| 11277 | |||
| 11278 | The @acronym{ODT} exporter relies on two files for generating its output. | ||
| 11279 | These files are bundled with the distribution under the directory pointed to | ||
| 11280 | by 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 | |||
| 11287 | This file contributes to the @file{styles.xml} file of the final @samp{ODT} | ||
| 11288 | document. This file gets modified for the following purposes: | ||
| 11289 | @enumerate | ||
| 11290 | |||
| 11291 | @item | ||
| 11292 | To control outline numbering based on user settings. | ||
| 11293 | |||
| 11294 | @item | ||
| 11295 | To add styles generated by @file{htmlfontify.el} for fontification of code | ||
| 11296 | blocks. | ||
| 11297 | @end enumerate | ||
| 11298 | |||
| 11299 | @anchor{x-orgodtcontenttemplate-xml} | ||
| 11300 | @item | ||
| 11301 | @file{OrgOdtContentTemplate.xml} | ||
| 11302 | |||
| 11303 | This file contributes to the @file{content.xml} file of the final @samp{ODT} | ||
| 11304 | document. The contents of the Org outline are inserted between the | ||
| 11305 | @samp{<office:text>}@dots{}@samp{</office:text>} elements of this file. | ||
| 11306 | |||
| 11307 | Apart from serving as a template file for the final @file{content.xml}, the | ||
| 11308 | file serves the following purposes: | ||
| 11309 | @enumerate | ||
| 11310 | |||
| 11311 | @item | ||
| 11312 | It contains automatic styles for formatting of tables which are referenced by | ||
| 11313 | the exporter. | ||
| 11314 | |||
| 11315 | @item | ||
| 11316 | It contains @samp{<text:sequence-decl>}@dots{}@samp{</text:sequence-decl>} | ||
| 11317 | elements that control how various entities - tables, images, equations etc - | ||
| 11318 | are numbered. | ||
| 11319 | @end enumerate | ||
| 11320 | @end itemize | ||
| 11321 | |||
| 11322 | @anchor{x-overriding-factory-styles} | ||
| 11323 | @subsubheading Overriding factory styles | ||
| 11324 | The following two variables control the location from which the @acronym{ODT} | ||
| 11325 | exporter picks up the custom styles and content template files. You can | ||
| 11326 | customize these variables to override the factory styles used by the | ||
| 11327 | exporter. | ||
| 11328 | |||
| 11329 | @itemize | ||
| 11330 | @anchor{x-org-export-odt-styles-file} | ||
| 11331 | @item | ||
| 11332 | @code{org-export-odt-styles-file} | ||
| 11333 | |||
| 11334 | Use this variable to specify the @file{styles.xml} that will be used in the | ||
| 11335 | final output. You can specify one of the following values: | ||
| 11336 | |||
| 11337 | @enumerate | ||
| 11338 | @item A @file{styles.xml} file | ||
| 11339 | |||
| 11340 | Use this file instead of the default @file{styles.xml} | ||
| 11341 | |||
| 11342 | @item A @file{.odt} or @file{.ott} file | ||
| 11343 | |||
| 11344 | Use the @file{styles.xml} contained in the specified OpenDocument Text or | ||
| 11345 | Template file | ||
| 11346 | |||
| 11347 | @item A @file{.odt} or @file{.ott} file and a subset of files contained within them | ||
| 11348 | |||
| 11349 | Use the @file{styles.xml} contained in the specified OpenDocument Text or | ||
| 11350 | Template file. Additionally extract the specified member files and embed | ||
| 11351 | those within the final @samp{ODT} document. | ||
| 11352 | |||
| 11353 | Use this option if the @file{styles.xml} file references additional files | ||
| 11354 | like header and footer images. | ||
| 11355 | |||
| 11356 | @item @code{nil} | ||
| 11357 | |||
| 11358 | Use 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 | |||
| 11365 | Use this variable to specify the blank @file{content.xml} that will be used | ||
| 11366 | in 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 | |||
| 11372 | There are times when you would want one-off formatting in the exported | ||
| 11373 | document. You can achieve this by embedding raw OpenDocument XML in the Org | ||
| 11374 | file. 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 | |||
| 11379 | You 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 | ||
| 11384 | highlighted text@@</text:span>. But this is a | ||
| 11385 | regular 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 | ||
| 11390 | custom @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 | |||
| 11400 | You can add a simple OpenDocument one-liner using the @code{#+ODT:} | ||
| 11401 | directive. 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 | ||
| 11409 | custom @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 | |||
| 11420 | You can add a large block of OpenDocument XML using the | ||
| 11421 | @code{#+BEGIN_ODT}@dots{}@code{#+END_ODT} construct. | ||
| 11422 | |||
| 11423 | For example, to create a one-off paragraph that uses bold text, do the | ||
| 11424 | following: | ||
| 11425 | |||
| 11426 | @example | ||
| 11427 | #+BEGIN_ODT | ||
| 11428 | <text:p text:style-name="Text_20_body_20_bold"> | ||
| 11429 | This 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 | ||
| 11441 | You can override the default formatting of the table by specifying a custom | ||
| 11442 | table style with the @code{#+ATTR_ODT} line. For a discussion on default | ||
| 11443 | formatting of tables @pxref{Tables in @acronym{ODT} export}. | ||
| 11444 | |||
| 11445 | This feature closely mimics the way table templates are defined in the | ||
| 11446 | OpenDocument-v1.2 | ||
| 11447 | specification.@footnote{@url{http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html, | ||
| 11448 | OpenDocument-v1.2 Specification}} | ||
| 11449 | |||
| 11450 | |||
| 11451 | |||
| 11452 | @subsubheading Custom table styles - an illustration | ||
| 11453 | |||
| 11454 | To have a quick preview of this feature, install the below setting and export | ||
| 11455 | the 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 | |||
| 11475 | In the above example, you used a template named @samp{Custom} and installed | ||
| 11476 | two table styles with the names @samp{TableWithHeaderRowAndColumn} and | ||
| 11477 | @samp{TableWithFirstRowandLastRow}. (@strong{Important:} The OpenDocument | ||
| 11478 | styles needed for producing the above template have been pre-defined for you. | ||
| 11479 | These styles are available under the section marked @samp{Custom Table | ||
| 11480 | Template} in @file{OrgOdtContentTemplate.xml} | ||
| 11481 | (@pxref{x-orgodtcontenttemplate-xml,,Factory styles}). If you need | ||
| 11482 | additional templates you have to define these styles yourselves. | ||
| 11483 | |||
| 11484 | @subsubheading Custom table styles - the nitty-gritty | ||
| 11485 | To use this feature proceed as follows: | ||
| 11486 | |||
| 11487 | @enumerate | ||
| 11488 | @item | ||
| 11489 | Create a table template@footnote{See the @code{<table:table-template>} | ||
| 11490 | element of the OpenDocument-v1.2 specification} | ||
| 11491 | |||
| 11492 | A 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 | |||
| 11507 | The names for the above styles must be chosen based on the name of the table | ||
| 11508 | template using a well-defined convention. | ||
| 11509 | |||
| 11510 | The naming convention is better illustrated with an example. For a table | ||
| 11511 | template with the name @samp{Custom}, the needed style names are listed in | ||
| 11512 | the 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 | |||
| 11550 | To create a table template with the name @samp{Custom}, define the above | ||
| 11551 | styles in the | ||
| 11552 | @code{<office:automatic-styles>}...@code{</office:automatic-styles>} element | ||
| 11553 | of the content template file (@pxref{x-orgodtcontenttemplate-xml,,Factory | ||
| 11554 | styles}). | ||
| 11555 | |||
| 11556 | @item | ||
| 11557 | Define 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 | ||
| 11562 | the OpenDocument-v1.2 specification} | ||
| 11563 | |||
| 11564 | @vindex org-export-odt-table-styles | ||
| 11565 | To 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 | |||
| 11573 | For example, the entry below defines two different table styles | ||
| 11574 | @samp{TableWithHeaderRowsAndColumns} and @samp{TableWithHeaderColumns} based | ||
| 11575 | on the same template @samp{Custom}. The styles achieve their intended effect | ||
| 11576 | by 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 | ||
| 11590 | Associate a table with the table style | ||
| 11591 | |||
| 11592 | To do this, specify the table style created in step (2) as part of | ||
| 11593 | the @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 | |||
| 11606 | Occasionally, you will discover that the document created by the | ||
| 11607 | @acronym{ODT} exporter cannot be opened by your favorite application. One of | ||
| 11608 | the common reasons for this is that the @file{.odt} file is corrupt. In such | ||
| 11609 | cases, you may want to validate the document against the OpenDocument RELAX | ||
| 11610 | NG Compact Syntax (RNC) schema. | ||
| 11611 | |||
| 11612 | For de-compressing the @file{.odt} file@footnote{@file{.odt} files are | ||
| 11613 | nothing but @samp{zip} archives}: @inforef{File Archives,,emacs}. For | ||
| 11614 | general help with validation (and schema-sensitive editing) of XML files: | ||
| 11615 | @inforef{Introduction,,nxml-mode}. | ||
| 11616 | |||
| 11617 | @vindex org-export-odt-schema-dir | ||
| 11618 | If you have ready access to OpenDocument @file{.rnc} files and the needed | ||
| 11619 | schema-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 | |||
| 10361 | you have provided. | 11634 | you have provided. |
| 10362 | 11635 | ||
| 10363 | The TaskJuggler exporter is a bit different from other exporters, such as the | 11636 | The TaskJuggler exporter is a bit different from other exporters, such as the |
| 10364 | HTML 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 |
| 10365 | nodes of a document or strictly follow the order of the nodes in the | 11638 | nodes of a document or strictly follow the order of the nodes in the |
| 10366 | document. | 11639 | document. |
| 10367 | 11640 | ||
| 10368 | Instead the TaskJuggler exporter looks for a tree that defines the tasks and | 11641 | Instead the TaskJuggler exporter looks for a tree that defines the tasks and |
| 10369 | a optionally tree that defines the resources for this project. It then | 11642 | a optionally tree that defines the resources for this project. It then |
| 10370 | creates a TaskJuggler file based on these trees and the attributes defined in | 11643 | creates a TaskJuggler file based on these trees and the attributes defined in |
| 10371 | all the nodes. | 11644 | all 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 |
| 10386 | Create your tasks as you usually do with Org-mode. Assign efforts to each | 11659 | Create your tasks as you usually do with Org mode. Assign efforts to each |
| 10387 | task using properties (it's easiest to do this in the column view). You | 11660 | task using properties (it is easiest to do this in the column view). You |
| 10388 | should end up with something similar to the example by Peter Jones in | 11661 | should 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}. |
| 10390 | Now mark the top node of your tasks with a tag named | 11663 | Now 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 |
| 10393 | the project plan with @kbd{C-c C-e J} which will export the project plan and | 11666 | the project plan with @kbd{C-c C-e J} which will export the project plan and |
| 10394 | open a gantt chart in TaskJugglerUI. | 11667 | open 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 |
| 10399 | Next you can define resources and assign those to work on specific tasks. You | 11672 | Next you can define resources and assign those to work on specific tasks. You |
| 10400 | can group your resources hierarchically. Tag the top node of the resources | 11673 | can group your resources hierarchically. Tag the top node of the resources |
| 10401 | with @code{:taskjuggler_resource:} (or whatever you customized | 11674 | with @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 |
| 10403 | identifier (named @samp{resource_id}) to the resources (using the standard | 11676 | identifier (named @samp{resource_id}) to the resources (using the standard |
| 10404 | Org properties commands, @pxref{Property syntax}) or you can let the exporter | 11677 | Org properties commands, @pxref{Property syntax}) or you can let the exporter |
| 10405 | generate identifiers automatically (the exporter picks the first word of the | 11678 | generate identifiers automatically (the exporter picks the first word of the |
| 10406 | headline as the identifier as long as it is unique---see the documentation of | 11679 | headline 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 |
| 10408 | allocate resources to tasks. This is again done with the @samp{allocate} | 11681 | allocate resources to tasks. This is again done with the @samp{allocate} |
| 10409 | property on the tasks. Do this in column view or when on the task type | 11682 | property 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 | ||
| 10412 | Once the allocations are done you can again export to TaskJuggler and check | 11685 | Once 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 | ||
| 10418 | The exporter also takes TODO state information into consideration, i.e. if a | 11691 | The exporter also takes TODO state information into consideration, i.e.@: if a |
| 10419 | task is marked as done it will have the corresponding attribute in | 11692 | task is marked as done it will have the corresponding attribute in |
| 10420 | TaskJuggler (@samp{complete 100}). Also it will export any property on a task | 11693 | TaskJuggler (@samp{complete 100}). Also it will export any property on a task |
| 10421 | resource or resource node which is known to TaskJuggler, such as | 11694 | resource 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 | |||
| 10430 | The exporter will handle dependencies that are defined in the tasks either | 11703 | The exporter will handle dependencies that are defined in the tasks either |
| 10431 | with the @samp{ORDERED} attribute (@pxref{TODO dependencies}), with the | 11704 | with 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} |
| 10434 | attribute can be either @samp{previous-sibling} or a reference to an | 11707 | attribute can be either @samp{previous-sibling} or a reference to an |
| 10435 | identifier (named @samp{task_id}) which is defined for another task in the | 11708 | identifier (named @samp{task_id}) which is defined for another task in the |
| 10436 | project. @samp{BLOCKER} and the @samp{depends} attribute can define multiple | 11709 | project. @samp{BLOCKER} and the @samp{depends} attribute can define multiple |
| 10437 | dependencies separated by either space or comma. You can also specify | 11710 | dependencies separated by either space or comma. You can also specify |
| 10438 | optional attributes on the dependency by simply appending it. The following | 11711 | optional attributes on the dependency by simply appending it. The following |
| 10439 | examples should illustrate this: | 11712 | examples 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 |
| 10470 | TaskJuggler can produce many kinds of reports (e.g. gantt chart, resource | 11743 | TaskJuggler can produce many kinds of reports (e.g.@: gantt chart, resource |
| 10471 | allocation, etc). The user defines what kind of reports should be generated | 11744 | allocation, etc). The user defines what kind of reports should be generated |
| 10472 | for a project in the TaskJuggler file. The exporter will automatically insert | 11745 | for a project in the TaskJuggler file. The exporter will automatically insert |
| 10473 | some default reports in the file. These defaults are defined in | 11746 | some 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 |
| 10475 | customize along with a number of other options. For a more complete list, see | 11748 | customize 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 | ||
| 10478 | For more information and examples see the Org-taskjuggler tutorial at | 11751 | For 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} |
| 10490 | Export as Freemind mind map @file{myfile.mm}. | 11763 | Export as Freemind mind map. For an Org file @file{myfile.org}, the Freemind |
| 11764 | file 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 | ||
| 10497 | Org-mode contains an exporter that produces XOXO-style output. | 11771 | Org mode contains an exporter that produces XOXO-style output. |
| 10498 | Currently, this exporter only handles the general outline structure and | 11772 | Currently, this exporter only handles the general outline structure and |
| 10499 | does not interpret any additional Org-mode features. | 11773 | does 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} |
| 10503 | Export as XOXO file @file{myfile.html}. | 11777 | Export 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} |
| 10505 | Export only the visible part of the document. | 11780 | Export 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 |
| 10517 | Some people use Org-mode for keeping track of projects, but still prefer a | 11792 | Some people use Org mode for keeping track of projects, but still prefer a |
| 10518 | standard calendar application for anniversaries and appointments. In this | 11793 | standard calendar application for anniversaries and appointments. In this |
| 10519 | case it can be useful to show deadlines and other time-stamped items in Org | 11794 | case it can be useful to show deadlines and other time-stamped items in Org |
| 10520 | files in the calendar application. Org-mode can export calendar information | 11795 | files in the calendar application. Org mode can export calendar information |
| 10521 | in the standard iCalendar format. If you also want to have TODO entries | 11796 | in the standard iCalendar format. If you also want to have TODO entries |
| 10522 | included in the export, configure the variable | 11797 | included 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 | |||
| 10624 | configures one project, and may be in one of the two following forms: | 11899 | configures 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 | ||
| 10847 | Most of the @code{org-export-with-*} variables have the same effect in | 12124 | Most of the @code{org-export-with-*} variables have the same effect in |
| 10848 | both HTML and @LaTeX{} exporters, except for @code{:TeX-macros} and | 12125 | both 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 |
| 12128 | options. | ||
| 12129 | |||
| 12130 | |||
| 10851 | 12131 | ||
| 10852 | @vindex org-publish-project-alist | 12132 | @vindex org-publish-project-alist |
| 10853 | When a property is given a value in @code{org-publish-project-alist}, | 12133 | When 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, | |||
| 10869 | because @code{file:} links are converted to link to the corresponding | 12149 | because @code{file:} links are converted to link to the corresponding |
| 10870 | @file{html} file. | 12150 | @file{html} file. |
| 10871 | 12151 | ||
| 10872 | You may also link to related files, such as images. Provided you are careful | 12152 | You may also link to related files, such as images. Provided you are careful |
| 10873 | with relative file names, and provided you have also configured Org to upload | 12153 | with relative file names, and provided you have also configured Org to upload |
| 10874 | the related files, these links will work too. See @ref{Complex example}, for | 12154 | the related files, these links will work too. See @ref{Complex example}, for |
| 10875 | an example of this usage. | 12155 | an example of this usage. |
| 10876 | 12156 | ||
| 10877 | Sometimes an Org file to be published may contain links that are | 12157 | Sometimes an Org file to be published may contain links that are |
| @@ -10905,11 +12185,11 @@ a map of files for a given project. | |||
| 10905 | or @code{org-publish-all}. | 12185 | or @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 |
| 10909 | becomes @file{sitemap.html}). | 12189 | becomes @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, |
| 10922 | respectively. Any other value will mix files and folders. | 12202 | respectively. 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 | ||
| 12208 | older date first while @code{anti-chronologically} sorts the files with newer | ||
| 12209 | date first. @code{alphabetically} sorts the files alphabetically. The date of | ||
| 12210 | a 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 | ||
| 12217 | sitemap. This is a format string with some escape sequences: @code{%t} stands | ||
| 12218 | for 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 | ||
| 12225 | a 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. | ||
| 12230 | Useful to have cool URIs (see @uref{http://www.w3.org/Provider/Style/URI}). | ||
| 12231 | Defaults 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 | ||
| 10937 | Org-mode can generate an index across the files of a publishing project. | 12239 | Org 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. | |||
| 10942 | publish it as @file{theindex.html}. | 12244 | publish it as @file{theindex.html}. |
| 10943 | @end multitable | 12245 | @end multitable |
| 10944 | 12246 | ||
| 10945 | The file will be create when first publishing a project with the | 12247 | The 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 |
| 10948 | a title, style information etc. | 12250 | a 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 | ||
| 10955 | For those people already utilizing third party sync tools such as | 12257 | For 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 |
| 10958 | Tramp. Tramp, while very useful and powerful, tends not to be | 12260 | Tramp. Tramp, while very useful and powerful, tends not to be |
| 10959 | so efficient for multiple file transfer and has been known to cause problems | 12261 | so efficient for multiple file transfer and has been known to cause problems |
| 10960 | under heavy usage. | 12262 | under heavy usage. |
| @@ -11015,12 +12317,12 @@ directory on the local machine. | |||
| 11015 | 12317 | ||
| 11016 | This more complicated example publishes an entire website, including | 12318 | This more complicated example publishes an entire website, including |
| 11017 | Org files converted to HTML, image files, Emacs Lisp source code, and | 12319 | Org files converted to HTML, image files, Emacs Lisp source code, and |
| 11018 | style sheets. The publishing directory is remote and private files are | 12320 | style sheets. The publishing directory is remote and private files are |
| 11019 | excluded. | 12321 | excluded. |
| 11020 | 12322 | ||
| 11021 | To ensure that links are preserved, care should be taken to replicate | 12323 | To ensure that links are preserved, care should be taken to replicate |
| 11022 | your directory structure on the web server, and to use relative file | 12324 | your directory structure on the web server, and to use relative file |
| 11023 | paths. For example, if your Org files are kept in @file{~/org} and your | 12325 | paths. For example, if your Org files are kept in @file{~/org} and your |
| 11024 | publishable images in @file{~/images}, you would link to an image with | 12326 | publishable 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 |
| 11030 | On the web server, the relative path to the image should be the | 12332 | On the web server, the relative path to the image should be the |
| 11031 | same. You can accomplish this by setting up an "images" folder in the | 12333 | same. You can accomplish this by setting up an "images" folder in the |
| 11032 | right place on the web server, and publishing images to it. | 12334 | right 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 |
| 11081 | Org uses timestamps to track when a file has changed. The above functions | 12382 | Org uses timestamps to track when a file has changed. The above functions |
| 11082 | normally only publish changed files. You can override this and force | 12383 | normally only publish changed files. You can override this and force |
| 11083 | publishing of all files by giving a prefix argument to any of the commands | 12384 | publishing of all files by giving a prefix argument to any of the commands |
| 11084 | above, or by customizing the variable @code{org-publish-use-timestamps-flag}. | 12385 | above, or by customizing the variable @code{org-publish-use-timestamps-flag}. |
| 11085 | This may be necessary in particular if files include other files via | 12386 | This 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 | ||
| 11097 | Source code can be included in Org-mode documents using a @samp{src} block, | 12398 | Source code can be included in Org mode documents using a @samp{src} block, |
| 11098 | e.g. | 12399 | e.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 | ||
| 11108 | Org-mode provides a number of features for working with live source code, | 12409 | Org mode provides a number of features for working with live source code, |
| 11109 | including editing of code blocks in their native major-mode, evaluation of | 12410 | including editing of code blocks in their native major-mode, evaluation of |
| 11110 | code blocks, tangling of code blocks, and exporting code blocks and their | 12411 | code blocks, converting code blocks into source files (known as @dfn{tangling} |
| 12412 | in literate programming), and exporting code blocks and their | ||
| 11111 | results in several formats. This functionality was contributed by Eric | 12413 | results in several formats. This functionality was contributed by Eric |
| 11112 | Schulte and Dan Davison, and was originally named Org-babel. | 12414 | Schulte and Dan Davison, and was originally named Org-babel. |
| 11113 | 12415 | ||
| 11114 | The following sections describe Org-mode's code block handling facilities. | 12416 | The 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 | ||
| 11139 | The structure of code blocks is as follows: | 12443 | Live code blocks can be specified with a @samp{src} block or |
| 12444 | inline.@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 | ||
| 11148 | code blocks can also be embedded in text as so called inline code blocks as | 12454 | The @code{#+NAME:} line is optional, and can be used to name the code |
| 12455 | block. 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 | |||
| 12459 | Live code blocks can also be specified inline using | ||
| 11149 | 12460 | ||
| 11150 | @example | 12461 | @example |
| 11151 | src_<language>@{<body>@} | 12462 | src_<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> |
| 11162 | This name is associated with the code block. This is similar to the | 12473 | This 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 |
| 11164 | Referencing the name of a code block makes it possible to evaluate the | 12475 | files. Referencing the name of a code block makes it possible to evaluate |
| 11165 | block from other places in the file, other files, or from Org-mode table | 12476 | the block from other places in the file, from other files, or from Org mode |
| 11166 | formulas (see @ref{The spreadsheet}). | 12477 | table formulas (see @ref{The spreadsheet}). Names are assumed to be unique |
| 12478 | and the behavior of Org mode when two or more blocks share the same name is | ||
| 12479 | undefined. | ||
| 12480 | @cindex #+NAME | ||
| 11167 | @item <language> | 12481 | @item <language> |
| 11168 | The language of the code in the block. | 12482 | The language of the code in the block (see @ref{Languages}). |
| 12483 | @cindex source code, language | ||
| 11169 | @item <switches> | 12484 | @item <switches> |
| 11170 | Switches controlling exportation of the code block (see switches discussion in | 12485 | Optional 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> |
| 11173 | Optional header arguments control many aspects of evaluation, export and | 12489 | Optional header arguments control many aspects of evaluation, export and |
| 11174 | tangling of code blocks. See the @ref{Header arguments} | 12490 | tangling of code blocks (see @ref{Header arguments}). |
| 11175 | section. Header arguments can also be set on a per-buffer or per-subtree | 12491 | Header arguments can also be set on a per-buffer or per-subtree |
| 11176 | basis using properties. | 12492 | basis using properties. |
| 12493 | @item source code, header arguments | ||
| 11177 | @item <body> | 12494 | @item <body> |
| 11178 | The source code. | 12495 | Source 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 ' |
| 11190 | Use @kbd{C-c '} to edit the current code block. This brings up | 12507 | Use @kbd{C-c '} to edit the current code block. This brings up |
| 11191 | a language major-mode edit buffer containing the body of the code | 12508 | a language major-mode edit buffer containing the body of the code |
| 11192 | block. Saving this buffer will write the new contents back to the Org | 12509 | block. Saving this buffer will write the new contents back to the Org |
| 11193 | buffer. Use @kbd{C-c '} again to exit. | 12510 | buffer. Use @kbd{C-c '} again to exit. |
| 11194 | 12511 | ||
| 11195 | The @code{org-src-mode} minor mode will be active in the edit buffer. The | 12512 | The @code{org-src-mode} minor mode will be active in the edit buffer. The |
| 11196 | following variables can be used to configure the behavior of the edit | 12513 | following variables can be used to configure the behavior of the edit |
| 11197 | buffer. See also the customization group @code{org-edit-structure} for | 12514 | buffer. See also the customization group @code{org-edit-structure} for |
| 11198 | further configuration options. | 12515 | further configuration options. |
| 11199 | 12516 | ||
| 11200 | @table @code | 12517 | @table @code |
| 11201 | @item org-src-lang-modes | 12518 | @item org-src-lang-modes |
| 11202 | If an Emacs major-mode named @code{<lang>-mode} exists, where | 12519 | If 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, |
| 11204 | then the edit buffer will be placed in that major-mode. This variable | 12521 | then the edit buffer will be placed in that major-mode. This variable |
| 11205 | can be used to map arbitrary language names to existing major modes. | 12522 | can be used to map arbitrary language names to existing major modes. |
| 11206 | @item org-src-window-setup | 12523 | @item org-src-window-setup |
| 11207 | Controls the way Emacs windows are rearranged when the edit buffer is created. | 12524 | Controls 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. | |||
| 11209 | This variable is especially useful for tangling languages such as | 12526 | This variable is especially useful for tangling languages such as |
| 11210 | Python, in which whitespace indentation in the output is critical. | 12527 | Python, 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 |
| 11212 | By default, Org will ask before returning to an open edit buffer. Set | 12529 | By default, Org will ask before returning to an open edit buffer. Set this |
| 11213 | this variable to nil to switch without asking. | 12530 | variable to nil to switch without asking. |
| 11214 | @end table | 12531 | @end table |
| 11215 | 12532 | ||
| 12533 | To turn on native code fontification in the @emph{Org} buffer, configure the | ||
| 12534 | variable @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 | ||
| 11224 | It is possible to export the @emph{contents} of code blocks, the | 12544 | It 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 | 12545 | of code block evaluation, @emph{both} the code and the results of code block |
| 11226 | most languages, the default exports the contents of code blocks. However, for | 12546 | evaluation, or @emph{none}. For most languages, the default exports code. |
| 11227 | some languages (e.g. @code{ditaa}) the default exports the results of code | 12547 | However, for some languages (e.g.@: @code{ditaa}) the default exports the |
| 11228 | block evaluation. For information on exporting code block bodies, see | 12548 | results of code block evaluation. For information on exporting code block |
| 11229 | @ref{Literal examples}. | 12549 | bodies, see @ref{Literal examples}. |
| 11230 | 12550 | ||
| 11231 | The @code{:exports} header argument can be used to specify export | 12551 | The @code{:exports} header argument can be used to specify export |
| 11232 | behavior: | 12552 | behavior: |
| @@ -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 |
| 11237 | The default in most languages. The body of the code block is exported, as | 12557 | The default in most languages. The body of the code block is exported, as |
| 11238 | described in @ref{Literal examples}. | 12558 | described in @ref{Literal examples}. |
| 11239 | @item :exports results | 12559 | @item :exports results |
| 11240 | The code block will be evaluated and the results will be placed in the | 12560 | The code block will be evaluated and the results will be placed in the |
| 11241 | Org-mode buffer for export, either updating previous results of the code | 12561 | Org mode buffer for export, either updating previous results of the code |
| 11242 | block located anywhere in the buffer or, if no previous results exist, | 12562 | block located anywhere in the buffer or, if no previous results exist, |
| 11243 | placing the results immediately after the code block. The body of the code | 12563 | placing the results immediately after the code block. The body of the code |
| 11244 | block will not be exported. | 12564 | block will not be exported. |
| @@ -11251,14 +12571,15 @@ Neither the code block nor its results will be exported. | |||
| 11251 | It is possible to inhibit the evaluation of code blocks during export. | 12571 | It is possible to inhibit the evaluation of code blocks during export. |
| 11252 | Setting the @code{org-export-babel-evaluate} variable to @code{nil} will | 12572 | Setting the @code{org-export-babel-evaluate} variable to @code{nil} will |
| 11253 | ensure that no code blocks are evaluated as part of the export process. This | 12573 | ensure that no code blocks are evaluated as part of the export process. This |
| 11254 | can be useful in situations where potentially untrusted Org-mode files are | 12574 | can be useful in situations where potentially untrusted Org mode files are |
| 11255 | exported in an automated fashion, for example when Org-mode is used as the | 12575 | exported in an automated fashion, for example when Org mode is used as the |
| 11256 | markup language for a wiki. | 12576 | markup 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 |
| 11274 | The default. The code block is not included in the tangled output. | 12595 | The default. The code block is not included in the tangled output. |
| 11275 | @item :tangle yes | 12596 | @item :tangle yes |
| 11276 | Include the code block in the tangled output. The output file name is the | 12597 | Include the code block in the tangled output. The output file name is the |
| 11277 | name of the org file with the extension @samp{.org} replaced by the extension | 12598 | name of the org file with the extension @samp{.org} replaced by the extension |
| 11278 | for the block language. | 12599 | for 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 |
| 11287 | Tangle the current file. Bound to @kbd{C-c C-v t}. | 12608 | Tangle the current file. Bound to @kbd{C-c C-v t}. |
| 11288 | @item org-babel-tangle-file | 12609 | @item org-babel-tangle-file |
| 11289 | Choose a file to tangle. Bound to @kbd{C-c C-v f}. | 12610 | Choose 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 | ||
| 11305 | Code blocks can be evaluated@footnote{Whenever code is evaluated there is a | 12626 | Code blocks can be evaluated@footnote{Whenever code is evaluated there is a |
| 11306 | potential for that code to do harm. Org-mode provides a number of safeguards | 12627 | potential for that code to do harm. Org mode provides safeguards to ensure |
| 11307 | to ensure that it only evaluates code with explicit confirmation from the | 12628 | that code is only evaluated after explicit confirmation from the user. For |
| 11308 | user. For information on these safeguards (and on how to disable them) see | 12629 | information 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 | 12630 | evaluation security}.} and the results of evaluation optionally placed in the |
| 11310 | buffer. By default, evaluation is only turned on for @code{emacs-lisp} code | 12631 | Org mode buffer. By default, the evaluation facility is only enabled for |
| 11311 | blocks, however support exists for evaluating blocks in many languages. See | 12632 | Lisp code blocks specified as @code{emacs-lisp}. However, source code blocks |
| 11312 | @ref{Languages} for a list of supported languages. See @ref{Structure of | 12633 | in many languages can be evaluated within Org mode (see @ref{Languages} for a |
| 11313 | code blocks} for information on the syntax used to define a code block. | 12634 | list of supported languages and @ref{Structure of code blocks} for |
| 12635 | information on the syntax used to define a code block). | ||
| 11314 | 12636 | ||
| 11315 | @kindex C-c C-c | 12637 | @kindex C-c C-c |
| 11316 | There are a number of ways to evaluate code blocks. The simplest is to press | 12638 | There 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 |
| 11319 | evaluation from the @kbd{C-c C-c} key binding.}. This will call the | 12641 | evaluation 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 |
| 11321 | its results into the Org-mode buffer. | 12643 | its results into the Org mode buffer. |
| 12644 | @cindex #+CALL | ||
| 11322 | 12645 | ||
| 11323 | It is also possible to evaluate named code blocks from anywhere in an | 12646 | It is also possible to evaluate named code blocks from anywhere in an |
| 11324 | Org-mode buffer or an Org-mode table. @code{#+call} (or synonymously | 12647 | Org 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 | 12648 | Org mode buffer or in the ``Library of Babel'' (see @ref{Library of Babel}) |
| 11326 | blocks located in the current Org-mode buffer or in the ``Library of Babel'' | 12649 | can 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 | |||
| 12652 | The 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 | |||
| 12659 | The 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> |
| 11337 | The name of the code block to be evaluated. | 12668 | The name of the code block to be evaluated (see @ref{Structure of code blocks}). |
| 11338 | @item <arguments> | 12669 | @item <arguments> |
| 11339 | Arguments specified in this section will be passed to the code block. | 12670 | Arguments specified in this section will be passed to the code block. These |
| 11340 | @item <header arguments> | 12671 | arguments use standard function call syntax, rather than |
| 11341 | Header arguments can be placed after the function invocation. See | 12672 | header argument syntax. For example, a @code{#+CALL:} line that passes the |
| 11342 | @ref{Header arguments} for more information on header arguments. | 12673 | number four to a code block named @code{double}, which declares the header |
| 12674 | argument @code{:var n=2}, would be written as @code{#+CALL: double(n=4)}. | ||
| 12675 | @item <inside header arguments> | ||
| 12676 | Inside header arguments are passed through and applied to the named code | ||
| 12677 | block. These arguments use header argument syntax rather than standard | ||
| 12678 | function call syntax. Inside header arguments affect how the code block is | ||
| 12679 | evaluated. For example, @code{[:results output]} will collect the results of | ||
| 12680 | everything printed to @code{STDOUT} during execution of the code block. | ||
| 12681 | @item <end header arguments> | ||
| 12682 | End header arguments are applied to the calling instance and do not affect | ||
| 12683 | evaluation of the named code block. They affect how the results are | ||
| 12684 | incorporated into the Org mode buffer and how the call line is exported. For | ||
| 12685 | example, @code{:results html} will insert the results of the call line | ||
| 12686 | evaluation in the Org buffer, wrapped in a @code{BEGIN_HTML:} block. | ||
| 12687 | |||
| 12688 | For 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 | ||
| 11352 | The ``Library of Babel'' is a library of code blocks | 12698 | The ``Library of Babel'' consists of code blocks that can be called from any |
| 11353 | that can be called from any Org-mode file. The library is housed in an | 12699 | Org mode file. Code blocks defined in the ``Library of Babel'' can be called |
| 11354 | Org-mode file located in the @samp{contrib} directory of Org-mode. | 12700 | remotely as if they were in the current Org mode buffer (see @ref{Evaluating |
| 11355 | Org-mode users can deposit functions they believe to be generally | 12701 | code blocks} for information on the syntax of remote code block evaluation). |
| 11356 | useful in the library. | 12702 | |
| 12703 | |||
| 12704 | The central repository of code blocks in the ``Library of Babel'' is housed | ||
| 12705 | in an Org mode file located in the @samp{contrib} directory of Org mode. | ||
| 12706 | |||
| 12707 | Users 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 | ||
| 12709 | then loaded into the library with @code{org-babel-lob-ingest}. | ||
| 11357 | 12710 | ||
| 11358 | Code blocks defined in the ``Library of Babel'' can be called remotely as if | ||
| 11359 | they were in the current Org-mode buffer (see @ref{Evaluating code blocks} | ||
| 11360 | for 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 |
| 11363 | Code blocks located in any Org-mode file can be loaded into the ``Library of | 12713 | Code blocks located in any Org mode file can be loaded into the ``Library of |
| 11364 | Babel'' with the @code{org-babel-lob-ingest} function, bound to @kbd{C-c C-v | 12714 | Babel'' with the @code{org-babel-lob-ingest} function, bound to @kbd{C-c C-v |
| 11365 | i}. | 12715 | i}. |
| 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 | ||
| 11392 | Language-specific documentation is available for some languages. If | 12747 | Language-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 | |||
| 11495 | language-specific documentation available online at | 12850 | language-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 |
| 11500 | Buffer-wide header arguments may be specified through the use of a special | 12855 | Buffer-wide header arguments may be specified as properties through the use |
| 11501 | line placed anywhere in an Org-mode file. The line consists of the | 12856 | of @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}). |
| 11503 | specified using the standard header argument syntax. | ||
| 11504 | 12858 | ||
| 11505 | For example the following would set @code{session} to @code{*R*}, and | 12859 | For 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 | |||
| 11508 | inserted into the buffer. | 12862 | inserted 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 | ||
| 11517 | Header arguments are also read from Org-mode properties (see @ref{Property | 12872 | Header arguments are also read from Org mode properties (see @ref{Property |
| 11518 | syntax}), which can be set on a buffer-wide or per-heading basis. An example | 12873 | syntax}), which can be set on a buffer-wide or per-heading basis. An example |
| 11519 | of setting a header argument for all code blocks in a buffer is | 12874 | of 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 | ||
| 11525 | When properties are used to set default header arguments, they are looked up | 12881 | When properties are used to set default header arguments, they are looked up |
| 11526 | with inheritance, so the value of the @code{:cache} header argument will default | 12882 | with inheritance, regardless of the value of |
| 11527 | to @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 |
| 11528 | heading: | 12884 | the @code{:cache} header argument will default to @code{yes} in all code |
| 12885 | blocks 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: | |||
| 11539 | Properties defined in this way override the properties set in | 12896 | Properties 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 |
| 11542 | in Org-mode documents. | 12899 | in 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 | ||
| 11547 | The most common way to assign values to header arguments is at the | 12904 | The most common way to assign values to header arguments is at the |
| 11548 | code block level. This can be done by listing a sequence of header | 12905 | code block level. This can be done by listing a sequence of header |
| 11549 | arguments and their values as part of the @code{#+begin_src} line. | 12906 | arguments and their values as part of the @code{#+BEGIN_SRC} line. |
| 11550 | Properties set in this way override both the values of | 12907 | Properties 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 |
| 11552 | properties. In the following example, the @code{:results} header argument | 12909 | properties. In the following example, the @code{:results} header argument |
| 11553 | is set to @code{silent}, meaning the results of execution will not be | 12910 | is set to @code{silent}, meaning the results of execution will not be |
| 11554 | inserted in the buffer, and the @code{:exports} header argument is set to | 12911 | inserted 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 |
| 11556 | preserved on export to HTML or LaTeX. | 12913 | preserved 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 |
| 11561 | fac 0 = 1 | 12918 | fac 0 = 1 |
| 11562 | fac n = n * fac (n-1) | 12919 | fac n = n * fac (n-1) |
| 11563 | #+end_src | 12920 | #+END_SRC |
| 11564 | @end example | 12921 | @end example |
| 11565 | Similarly, it is possible to set header arguments for inline code blocks: | 12922 | Similarly, it is possible to set header arguments for inline code blocks |
| 11566 | 12923 | ||
| 11567 | @example | 12924 | @example |
| 11568 | src_haskell[:exports both]@{fac 5@} | 12925 | src_haskell[:exports both]@{fac 5@} |
| 11569 | @end example | 12926 | @end example |
| 11570 | 12927 | ||
| 12928 | Code 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 | |||
| 12934 | Multi-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 | |||
| 12945 | Multi-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 | ||
| 11575 | At the most specific level, header arguments for ``Library of Babel'' or | 12961 | At the most specific level, header arguments for ``Library of Babel'' or |
| 11576 | function call lines can be set as shown below: | 12962 | @code{#+CALL:} lines can be set as shown in the two examples below. For more |
| 12963 | information on the structure of @code{#+CALL:} lines see @ref{Evaluating code | ||
| 12964 | blocks}. | ||
| 12965 | |||
| 12966 | The following will apply the @code{:exports results} header argument to the | ||
| 12967 | evaluation of the @code{#+CALL:} line. | ||
| 12968 | @example | ||
| 12969 | #+CALL: factorial(n=5) :exports results | ||
| 12970 | @end example | ||
| 11577 | 12971 | ||
| 12972 | The following will apply the @code{:session special} header argument to the | ||
| 12973 | evaluation 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 |
| 11584 | The following header arguments are defined: | 12980 | Header arguments consist of an initial colon followed by the name of the |
| 12981 | argument 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 | ||
| 13012 | Additional 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} |
| 11611 | The @code{:var} header argument is used to pass arguments to code blocks. | 13017 | The @code{:var} header argument is used to pass arguments to code blocks. |
| 11612 | The specifics of how arguments are included in a code block vary by language; | 13018 | The specifics of how arguments are included in a code block vary by language; |
| 11613 | these are addressed in the language-specific documentation. However, the | 13019 | these are addressed in the language-specific documentation. However, the |
| 11614 | syntax used to specify arguments is the same across all languages. The | 13020 | syntax used to specify arguments is the same across all languages. In every |
| 11615 | values passed to arguments can be literal values, values from org-mode tables | 13021 | case, variables require a default value when they are declared. |
| 11616 | and literal example blocks, or the results of other code blocks. | 13022 | |
| 13023 | The values passed to arguments can either be literal values, references, or | ||
| 13024 | Emacs Lisp code (see @ref{var, Emacs Lisp evaluation of variables}). References | ||
| 13025 | include 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 | ||
| 13028 | code blocks. | ||
| 11617 | 13029 | ||
| 11618 | These values can be indexed in a manner similar to arrays---see the | 13030 | Argument values can be indexed in a manner similar to arrays (see @ref{var, |
| 11619 | ``indexable variable values'' heading below. | 13031 | Indexable variable values}). |
| 11620 | 13032 | ||
| 11621 | The following syntax is used to pass arguments to code blocks using the | 13033 | The 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 | ||
| 11628 | where @code{assign} can take one of the following forms | 13040 | The 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 | ||
| 13042 | literal example, another code block (with or without arguments), or the | ||
| 13043 | results of evaluating another code block. | ||
| 11629 | 13044 | ||
| 11630 | @itemize @bullet | 13045 | Here are examples of passing values by reference: |
| 11631 | @item literal value | 13046 | |
| 11632 | either a string @code{"string"} or a number @code{9}. | 13047 | @table @dfn |
| 11633 | @item reference | ||
| 11634 | a table name: | ||
| 11635 | 13048 | ||
| 13049 | @item table | ||
| 13050 | an 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 | ||
| 11652 | a code block name, as assigned by @code{#+srcname:}, followed by | 13067 | @item list |
| 11653 | parentheses: | 13068 | a simple list named with a @code{#+NAME:} line (note that nesting is not |
| 13069 | carried 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 | ||
| 13087 | a code block name (from the example above), as assigned by @code{#+NAME:}, | ||
| 13088 | optionally 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 | ||
| 11664 | In addition, an argument can be passed to the code block referenced | 13099 | @item code block with arguments |
| 11665 | by @code{:var}. The argument is passed within the parentheses following the | 13100 | a code block name, as assigned by @code{#+NAME:}, followed by parentheses and |
| 11666 | code block name: | 13101 | optional arguments passed within the parentheses following the |
| 13102 | code 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 | ||
| 13123 | a literal example block named with a @code{#+NAME:} line | ||
| 13124 | |||
| 13125 | @example | ||
| 13126 | #+NAME: literal-example | ||
| 13127 | #+BEGIN_EXAMPLE | ||
| 13128 | A literal example | ||
| 13129 | on 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 |
| 11688 | It is also possible to specify arguments in a potentially more natural way | 13146 | It is also possible to specify arguments in a potentially more natural way |
| 11689 | using the @code{#+source:} line of a code block. As in the following | 13147 | using the @code{#+NAME:} line of a code block. As in the following |
| 11690 | example arguments can be packed inside of parenthesis, separated by commas, | 13148 | example, arguments can be packed inside of parentheses, separated by commas, |
| 11691 | following the source name. | 13149 | following 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 |
| 11701 | It is possible to reference portions of variable values by ``indexing'' into | 13159 | It is possible to reference portions of variable values by ``indexing'' into |
| 11702 | the variables. Indexes are 0 based with negative values counting back from | 13160 | the variables. Indexes are 0 based with negative values counting back from |
| 11703 | the end. If an index is separated by @code{,}s then each subsequent section | 13161 | the end. If an index is separated by @code{,}s then each subsequent section |
| 11704 | will index into the next deepest nesting or dimension of the value. The | 13162 | will index into the next deepest nesting or dimension of the value. Note |
| 13163 | that this indexing occurs @emph{before} other table related header arguments | ||
| 13164 | like @code{:hlines}, @code{:colnames} and @code{:rownames} are applied. The | ||
| 11705 | following example assigns the last cell of the first row the table | 13165 | following 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} | |||
| 11726 | to @code{data}. | 13186 | to @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 | |||
| 11749 | column is referenced. | 13209 | column 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 | |||
| 11768 | another by commas, as shown in the following example. | 13228 | another 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 | |||
| 13248 | Emacs lisp code can be used to initialize variable values. When a variable | ||
| 13249 | value starts with @code{(}, @code{[}, @code{'} or @code{`} it will be | ||
| 13250 | evaluated as Emacs Lisp and the result of the evaluation will be assigned as | ||
| 13251 | the variable value. The following example demonstrates use of this | ||
| 13252 | evaluation to reliably pass the file-name of the Org mode buffer to a code | ||
| 13253 | block---note that evaluation of header arguments is guaranteed to take place | ||
| 13254 | in the original Org mode file, while there is no such guarantee for | ||
| 13255 | evaluation 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 | |||
| 13263 | Note that values read from tables and lists will not be evaluated as | ||
| 13264 | Emacs 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 |
| 11798 | return---which has implications for how they will be inserted into the | 13291 | return---which has implications for how they will be inserted into the |
| 11799 | Org-mode buffer | 13292 | Org 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 |
| 11802 | block should be handled. | 13295 | block should be handled. |
| @@ -11812,7 +13305,7 @@ This is the default. The result is the value of the last statement in the | |||
| 11812 | code block. This header argument places the evaluation in functional | 13305 | code block. This header argument places the evaluation in functional |
| 11813 | mode. Note that in some languages, e.g., Python, use of this result type | 13306 | mode. Note that in some languages, e.g., Python, use of this result type |
| 11814 | requires that a @code{return} statement be included in the body of the source | 13307 | requires that a @code{return} statement be included in the body of the source |
| 11815 | code block. E.g., @code{:results value}. | 13308 | code block. E.g., @code{:results value}. |
| 11816 | @item @code{output} | 13309 | @item @code{output} |
| 11817 | The result is the collection of everything printed to STDOUT during the | 13310 | The result is the collection of everything printed to STDOUT during the |
| 11818 | execution of the code block. This header argument places the | 13311 | execution 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} |
| 11830 | The results should be interpreted as an Org-mode table. If a single value is | 13323 | The results should be interpreted as an Org mode table. If a single value is |
| 11831 | returned, it will be converted into a table with one row and one column. | 13324 | returned, it will be converted into a table with one row and one column. |
| 11832 | E.g., @code{:results value table}. | 13325 | E.g., @code{:results value table}. |
| 11833 | @item @code{list} | 13326 | @item @code{list} |
| 11834 | The results should be interpreted as an Org-mode list. If a single scalar | 13327 | The results should be interpreted as an Org mode list. If a single scalar |
| 11835 | value is returned it will be converted into a list with only one element. | 13328 | value 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} |
| 11837 | The results should be interpreted literally---they will not be | 13330 | The results should be interpreted literally---they will not be |
| 11838 | converted into a table. The results will be inserted into the Org-mode | 13331 | converted into a table. The results will be inserted into the Org mode |
| 11839 | buffer as quoted text. E.g., @code{:results value verbatim}. | 13332 | buffer as quoted text. E.g., @code{:results value verbatim}. |
| 11840 | @item @code{file} | 13333 | @item @code{file} |
| 11841 | The results will be interpreted as the path to a file, and will be inserted | 13334 | The results will be interpreted as the path to a file, and will be inserted |
| 11842 | into the Org-mode buffer as a file link. E.g., @code{:results value file}. | 13335 | into 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} |
| 11844 | The results are interpreted as raw Org-mode code and are inserted directly | 13337 | The results are interpreted as raw Org mode code and are inserted directly |
| 11845 | into the buffer. If the results look like a table they will be aligned as | 13338 | into the buffer. If the results look like a table they will be aligned as |
| 11846 | such by Org-mode. E.g., @code{:results value raw}. | 13339 | such by Org mode. E.g., @code{:results value raw}. |
| 11847 | @item @code{html} | 13340 | @item @code{html} |
| 11848 | Results are assumed to be HTML and will be enclosed in a @code{begin_html} | 13341 | Results are assumed to be HTML and will be enclosed in a @code{begin_html} |
| 11849 | block. E.g., @code{:results value html}. | 13342 | block. E.g., @code{:results value html}. |
| 11850 | @item @code{latex} | 13343 | @item @code{latex} |
| 11851 | Results assumed to be LaTeX and are enclosed in a @code{begin_latex} block. | 13344 | Results assumed to be @LaTeX{} and are enclosed in a @code{begin_latex} block. |
| 11852 | E.g., @code{:results value latex}. | 13345 | E.g., @code{:results value latex}. |
| 11853 | @item @code{code} | 13346 | @item @code{code} |
| 11854 | Result are assumed to be parseable code and are enclosed in a code block. | 13347 | Result are assumed to be parsable code and are enclosed in a code block. |
| 11855 | E.g., @code{:results value code}. | 13348 | E.g., @code{:results value code}. |
| 11856 | @item @code{pp} | 13349 | @item @code{pp} |
| 11857 | The result is converted to pretty-printed code and is enclosed in a code | 13350 | The result is converted to pretty-printed code and is enclosed in a code |
| 11858 | block. This option currently supports Emacs Lisp, Python, and Ruby. E.g., | 13351 | block. 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} | ||
| 13354 | The result is wrapped in a @code{begin_result} block. This can be useful for | ||
| 13355 | inserting @code{raw} or @code{org} syntax results in such a way that their | ||
| 13356 | extend 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} |
| 11868 | The results will be echoed in the minibuffer but will not be inserted into | 13365 | The results will be echoed in the minibuffer but will not be inserted into |
| 11869 | the Org-mode buffer. E.g., @code{:results output silent}. | 13366 | the Org mode buffer. E.g., @code{:results output silent}. |
| 11870 | @item @code{replace} | 13367 | @item @code{replace} |
| 11871 | The default value. Any existing results will be removed, and the new results | 13368 | The default value. Any existing results will be removed, and the new results |
| 11872 | will be inserted into the Org-mode buffer in their place. E.g., | 13369 | will 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} |
| 11875 | If there are pre-existing results of the code block then the new results will | 13372 | If 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 | ||
| 11887 | The header argument @code{:file} is used to specify a path for file output. | 13384 | The header argument @code{:file} is used to specify an external file in which |
| 11888 | An Org-mode style @code{file:} link is inserted into the buffer as the result | 13385 | to 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 |
| 11890 | gnuplot, ditaa and LaTeX code blocks. | 13387 | into the Org mode buffer. Some languages including R, gnuplot, dot, and |
| 11891 | 13388 | ditaa provide special handling of the @code{:file} header argument | |
| 11892 | Note that for some languages, including R, gnuplot, LaTeX and ditaa, | 13389 | automatically wrapping the code block body in the boilerplate code required |
| 11893 | graphical output is sent to the specified file without the file being | 13390 | to save output to the specified file. This is often useful for saving |
| 11894 | referenced explicitly in the code block. See the documentation for the | 13391 | graphical output of a code block to the specified file. |
| 11895 | individual languages for details. In contrast, general purpose languages such | ||
| 11896 | as Python and Ruby require that the code explicitly create output | ||
| 11897 | corresponding to the path indicated by @code{:file}. | ||
| 11898 | 13392 | ||
| 13393 | The argument to @code{:file} should be either a string specifying the path to | ||
| 13394 | a file, or a list of two strings in which case the first element of the list | ||
| 13395 | should 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 | ||
| 11903 | While the @code{:file} header argument can be used to specify the path to the | 13400 | While the @code{:file} header argument can be used to specify the path to the |
| 11904 | output file, @code{:dir} specifies the default directory during code block | 13401 | output file, @code{:dir} specifies the default directory during code block |
| 11905 | execution. If it is absent, then the directory associated with the current | 13402 | execution. If it is absent, then the directory associated with the current |
| 11906 | buffer is used. In other words, supplying @code{:dir path} temporarily has | 13403 | buffer is used. In other words, supplying @code{:dir path} temporarily has |
| 11907 | the same effect as changing the current directory with @kbd{M-x cd path}, and | 13404 | the same effect as changing the current directory with @kbd{M-x cd path}, and |
| 11908 | then not supplying @code{:dir}. Under the surface, @code{:dir} simply sets | 13405 | then not supplying @code{:dir}. Under the surface, @code{:dir} simply sets |
| 11909 | the value of the Emacs variable @code{default-directory}. | 13406 | the value of the Emacs variable @code{default-directory}. |
| 11910 | 13407 | ||
| 11911 | When using @code{:dir}, you should supply a relative path for file output | 13408 | When 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 |
| 11913 | case that path will be interpreted relative to the default directory. | 13410 | case that path will be interpreted relative to the default directory. |
| 11914 | 13411 | ||
| 11915 | In other words, if you want your plot to go into a folder called @file{Work} | 13412 | In other words, if you want your plot to go into a folder called @file{Work} |
| 11916 | in your home directory, you could use | 13413 | in 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 |
| 11920 | matplot(matrix(rnorm(100), 10), type="l") | 13417 | matplot(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 |
| 11925 | A directory on a remote machine can be specified using tramp file syntax, in | 13422 | A directory on a remote machine can be specified using tramp file syntax, in |
| 11926 | which case the code will be evaluated on the remote machine. An example is | 13423 | which 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: |
| 11930 | plot(1:10, main=system("hostname", intern=TRUE)) | 13427 | plot(1:10, main=system("hostname", intern=TRUE)) |
| 11931 | #+end_src | 13428 | #+END_SRC |
| 11932 | @end example | 13429 | @end example |
| 11933 | 13430 | ||
| 11934 | Text results will be returned to the local Org-mode buffer as usual, and file | 13431 | Text results will be returned to the local Org mode buffer as usual, and file |
| 11935 | output will be created on the remote machine with relative paths interpreted | 13432 | output will be created on the remote machine with relative paths interpreted |
| 11936 | relative to the remote directory. An Org-mode link to the remote file will be | 13433 | relative to the remote directory. An Org mode link to the remote file will be |
| 11937 | created. | 13434 | created. |
| 11938 | 13435 | ||
| 11939 | So, in the above example a plot will be created on the remote machine, | 13436 | So, 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 | ||
| 11946 | Most of this functionality follows immediately from the fact that @code{:dir} | 13443 | Most of this functionality follows immediately from the fact that @code{:dir} |
| 11947 | sets the value of the Emacs variable @code{default-directory}, thanks to | 13444 | sets the value of the Emacs variable @code{default-directory}, thanks to |
| 11948 | tramp. Those using XEmacs, or GNU Emacs prior to version 23 may need to | 13445 | tramp. Those using XEmacs, or GNU Emacs prior to version 23 may need to |
| 11949 | install tramp separately in order for these features to work correctly. | 13446 | install 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 | |||
| 11957 | currently made to alter the directory associated with an existing session. | 13454 | currently 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 |
| 11961 | to retain portability of exported material between machines, during export | 13458 | to retain portability of exported material between machines, during export |
| 11962 | links inserted into the buffer will *not* be expanded against @code{default | 13459 | links inserted into the buffer will @emph{not} be expanded against @code{default |
| 11963 | directory}. Therefore, if @code{default-directory} is altered using | 13460 | directory}. 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 |
| 11965 | which the link does not point. | 13462 | which 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 | ||
| 11971 | The @code{:exports} header argument specifies what should be included in HTML | 13468 | The @code{:exports} header argument specifies what should be included in HTML |
| 11972 | or LaTeX exports of the Org-mode file. | 13469 | or @LaTeX{} exports of the Org mode file. |
| 11973 | 13470 | ||
| 11974 | @itemize @bullet | 13471 | @itemize @bullet |
| 11975 | @item @code{code} | 13472 | @item @code{code} |
| 11976 | The default. The body of code is included into the exported file. E.g., | 13473 | The 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} |
| 11979 | The result of evaluating the code is included in the exported file. E.g., | 13476 | The 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} |
| 11982 | Both the code and results are included in the exported file. E.g., | 13479 | Both 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} |
| 11985 | Nothing is included in the exported file. E.g., @code{:exports none}. | 13482 | Nothing 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 | ||
| 11991 | The @code{:tangle} header argument specifies whether or not the code | 13488 | The @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} |
| 11996 | The code block is exported to a source code file named after the | 13493 | The code block is exported to a source code file named after the full path |
| 11997 | basename (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. |
| 11998 | yes}. | 13495 | E.g., @code{:tangle yes}. |
| 11999 | @item @code{no} | 13496 | @item @code{no} |
| 12000 | The default. The code block is not exported to a source code file. | 13497 | The default. The code block is not exported to a source code file. |
| 12001 | E.g., @code{:tangle no}. | 13498 | E.g., @code{:tangle no}. |
| 12002 | @item other | 13499 | @item other |
| 12003 | Any other string passed to the @code{:tangle} header argument is interpreted | 13500 | Any other string passed to the @code{:tangle} header argument is interpreted |
| 12004 | as a file basename to which the block will be exported. E.g., @code{:tangle | 13501 | as a path (directory and file name relative to the directory of the Org mode |
| 12005 | basename}. | 13502 | file) 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 | |||
| 13508 | The @code{:mkdirp} header argument can be used to create parent directories | ||
| 13509 | of tangled files when missing. This can be set to @code{yes} to enable | ||
| 13510 | directory 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} |
| 12010 | By default code blocks are tangled to source-code files without any insertion | 13514 | By default code blocks are tangled to source-code files without any insertion |
| 12011 | of comments beyond those which may already exist in the body of the code | 13515 | of 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} |
| 12022 | A synonym for ``link'' to maintain backwards compatibility. | 13526 | A synonym for ``link'' to maintain backwards compatibility. |
| 12023 | @item @code{org} | 13527 | @item @code{org} |
| 12024 | Include text from the org-mode file as a comment. | 13528 | Include text from the Org mode file as a comment. |
| 12025 | 13529 | ||
| 12026 | The text is picked from the leading context of the tangled code and is | 13530 | The text is picked from the leading context of the tangled code and is |
| 12027 | limited by the nearest headline or source block as the case may be. | 13531 | limited by the nearest headline or source block as the case may be. |
| 12028 | @item @code{both} | 13532 | @item @code{both} |
| 12029 | Turns on both the ``link'' and ``org'' comment options. | 13533 | Turns on both the ``link'' and ``org'' comment options. |
| 13534 | @item @code{noweb} | ||
| 13535 | Turns on the ``link'' comment option, and additionally wraps expanded noweb | ||
| 13536 | references 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} | ||
| 13541 | Control in insertion of padding lines around code block bodies in tangled | ||
| 13542 | code files. The default value is @code{yes} which results in insertion of | ||
| 13543 | newlines before and after each tangled code block. The following arguments | ||
| 13544 | are accepted. | ||
| 13545 | |||
| 13546 | @itemize @bullet | ||
| 13547 | @item @code{yes} | ||
| 13548 | Insert newlines before and after each code block body in tangled code files. | ||
| 13549 | @item @code{no} | ||
| 13550 | Do 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 | ||
| 12035 | By default, code blocks are expanded with @code{org-babel-expand-src-block} | 13556 | By 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 | |||
| 12050 | a name. This makes it possible to run concurrent sessions for each | 13571 | a name. This makes it possible to run concurrent sessions for each |
| 12051 | interpreted language. | 13572 | interpreted 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 | ||
| 12056 | The @code{:noweb} header argument controls expansion of ``noweb'' style (see | 13577 | The @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 |
| 12058 | argument can have one of three values: @code{yes} @code{no} or @code{tangle}. | 13579 | argument 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 | |||
| 12096 | be affected by this change, so it is still possible to use inline noweb | 13617 | be affected by this change, so it is still possible to use inline noweb |
| 12097 | references. | 13618 | references. |
| 12098 | 13619 | ||
| 12099 | @node cache, hlines, noweb, Specific header arguments | 13620 | @node noweb-ref, cache, noweb, Specific header arguments |
| 13621 | @subsubsection @code{:noweb-ref} | ||
| 13622 | When 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 | ||
| 13625 | concatenated together to form the replacement text. | ||
| 13626 | |||
| 13627 | By setting this header argument at the sub-tree or file level, simple code | ||
| 13628 | block concatenation may be achieved. For example, when tangling the | ||
| 13629 | following Org mode file, the bodies of code blocks will be concatenated into | ||
| 13630 | the resulting pure code file@footnote{(The example needs property inheritance | ||
| 13631 | to be turned on for the @code{noweb-ref} property, see @ref{Property | ||
| 13632 | inheritance}).}. | ||
| 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 | ||
| 12102 | The @code{:cache} header argument controls the use of in-buffer caching of | 13667 | The @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 | |||
| 12116 | changed since the last time it was evaluated, it will not be re-evaluated. | 13681 | changed 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 | 13684 | Code block caches notice if the value of a variable argument |
| 13685 | to the code block has changed. If this is the case, the cache is | ||
| 13686 | invalidated 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 | ||
| 13688 | changed 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 | |||
| 13711 | The @code{:sep} header argument can be used to control the delimiter used | ||
| 13712 | when writing tabular results out to files external to Org mode. This is used | ||
| 13713 | either 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, | ||
| 13715 | or when writing code block results to an external file (see @ref{file}) | ||
| 13716 | header argument. | ||
| 13717 | |||
| 13718 | By default, when @code{:sep} is not specified output tables are tab | ||
| 13719 | delimited. | ||
| 13720 | |||
| 13721 | @node hlines, colnames, sep, Specific header arguments | ||
| 12120 | @subsubsection @code{:hlines} | 13722 | @subsubsection @code{:hlines} |
| 12121 | 13723 | ||
| 12122 | Tables are frequently represented with one or more horizontal lines, or | 13724 | Tables 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 | |||
| 12131 | default value yields the following results. | 13733 | default 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} |
| 12153 | Leaves hlines in the table. Setting @code{:hlines yes} has this effect. | 13755 | Leaves 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 | ||
| 12180 | The @code{:colnames} header argument accepts the values @code{yes}, | 13782 | The @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}. |
| 13784 | Note that the behavior of the @code{:colnames} header argument may differ | ||
| 13785 | across languages. For example Emacs Lisp code blocks ignore the | ||
| 13786 | @code{:colnames} header argument entirely given the ease with which tables | ||
| 13787 | with 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 | |||
| 12188 | processing, then reapplied to the results. | 13794 | processing, 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 | ||
| 13815 | Please note that column names are not removed before the table is indexed | ||
| 13816 | using variable indexing @xref{var, Indexable variable values}. | ||
| 13817 | |||
| 12209 | @item @code{no} | 13818 | @item @code{no} |
| 12210 | No column name pre-processing takes place | 13819 | No column name pre-processing takes place |
| 12211 | 13820 | ||
| 12212 | @item @code{yes} | 13821 | @item @code{yes} |
| 12213 | Column names are removed and reapplied as with @code{nil} even if the table | 13822 | Column names are removed and reapplied as with @code{nil} even if the table |
| 12214 | does not ``look like'' it has column names (i.e. the second row is not an | 13823 | does not ``look like'' it has column names (i.e.@: the second row is not an |
| 12215 | hline) | 13824 | hline) |
| 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, | |||
| 12230 | and is then reapplied to the results. | 13839 | and 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 | |||
| 13856 | Please note that row names are not removed before the table is indexed using | ||
| 13857 | variable 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 | ||
| 12251 | Setting the @code{:shebang} header argument to a string value | 13864 | Setting 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 |
| 12253 | first line of any tangled file holding the code block, and the file | 13866 | first line of any tangled file holding the code block, and the file |
| 12254 | permissions of the tangled file are set to make it executable. | 13867 | permissions 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} |
| 12258 | The @code{:eval} header argument can be used to limit the evaluation of | 13871 | The @code{:eval} header argument can be used to limit the evaluation of |
| 12259 | specific code blocks. @code{:eval} accepts two arguments ``never'' and | 13872 | specific code blocks. The @code{:eval} header argument can be useful for |
| 12260 | ``query''. @code{:eval never} will ensure that a code block is never | 13873 | protecting against the evaluation of dangerous code blocks or to ensure that |
| 12261 | evaluated, this can be useful for protecting against the evaluation of | 13874 | evaluation will require a query regardless of the value of the |
| 12262 | dangerous code blocks. @code{:eval query} will require a query for every | 13875 | @code{org-confirm-babel-evaluate} variable. The possible values of |
| 12263 | execution 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 | ||
| 13880 | The code block will not be evaluated under any circumstances. | ||
| 13881 | @item query | ||
| 13882 | Evaluation of the code block will require a query. | ||
| 13883 | @item never-export or no-export | ||
| 13884 | The code block will not be evaluated during export but may still be called | ||
| 13885 | interactively. | ||
| 13886 | @item query-export | ||
| 13887 | Evaluation of the code block during export will require a query. | ||
| 13888 | @end table | ||
| 13889 | |||
| 13890 | If this header argument is not set then evaluation is determined by the value | ||
| 13891 | of the @code{org-confirm-babel-evaluate} variable see @ref{Code evaluation | ||
| 13892 | security}. | ||
| 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 | ||
| 12271 | The way in which results are handled depends on whether a session is invoked, | 13899 | The way in which results are handled depends on whether a session is invoked, |
| 12272 | as well as on whether @code{:results value} or @code{:results output} is | 13900 | as well as on whether @code{:results value} or @code{:results output} is |
| 12273 | used. The following table shows the possibilities: | 13901 | used. The following table shows the table possibilities. For a full listing |
| 13902 | of 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 | ||
| 12281 | Note: With @code{:results value}, the result in both @code{:session} and | 13910 | Note: With @code{:results value}, the result in both @code{:session} and |
| 12282 | non-session is returned to Org-mode as a table (a one- or two-dimensional | 13911 | non-session is returned to Org mode as a table (a one- or two-dimensional |
| 12283 | vector of strings or numbers) when appropriate. | 13912 | vector 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} |
| 12287 | This is the default. Internally, the value is obtained by wrapping the code | 13916 | This is the default. Internally, the value is obtained by wrapping the code |
| 12288 | in a function definition in the external language, and evaluating that | 13917 | in a function definition in the external language, and evaluating that |
| 12289 | function. Therefore, code should be written as if it were the body of such a | 13918 | function. Therefore, code should be written as if it were the body of such a |
| 12290 | function. In particular, note that Python does not automatically return a | 13919 | function. In particular, note that Python does not automatically return a |
| 12291 | value from a function unless a @code{return} statement is present, and so a | 13920 | value 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} |
| 12298 | The code is passed to the interpreter as an external process, and the | 13927 | The code is passed to the interpreter as an external process, and the |
| 12299 | contents of the standard output stream are returned as text. (In certain | 13928 | contents of the standard output stream are returned as text. (In certain |
| 12300 | languages this also contains the error output stream; this is an area for | 13929 | languages this also contains the error output stream; this is an area for |
| 12301 | future work.) | 13930 | future work.) |
| 12302 | 13931 | ||
| 12303 | @subsection Session | 13932 | @subsection Session |
| 12304 | @subsubsection @code{:results value} | 13933 | @subsubsection @code{:results value} |
| 12305 | The code is passed to the interpreter running as an interactive Emacs | 13934 | The code is passed to an interpreter running as an interactive Emacs inferior |
| 12306 | inferior process. The result returned is the result of the last evaluation | 13935 | process. Only languages which provide tools for interactive evaluation of |
| 12307 | performed by the interpreter. (This is obtained in a language-specific | 13936 | code have session support, so some language (e.g., C and ditaa) do not |
| 12308 | manner: the value of the variable @code{_} in Python and Ruby, and the value | 13937 | support the @code{:session} header argument, and in other languages (e.g., |
| 12309 | of @code{.Last.value} in R). | 13938 | Python and Haskell) which have limitations on the code which may be entered |
| 13939 | into interactive sessions, those limitations apply to the code in code blocks | ||
| 13940 | using the @code{:session} header argument as well. | ||
| 13941 | |||
| 13942 | Unless the @code{:results output} option is supplied (see below) the result | ||
| 13943 | returned is the result of the last evaluation performed by the | ||
| 13944 | interpreter. (This is obtained in a language-specific manner: the value of | ||
| 13945 | the variable @code{_} in Python and Ruby, and the value of @code{.Last.value} | ||
| 13946 | in R). | ||
| 12310 | 13947 | ||
| 12311 | @subsubsection @code{:results output} | 13948 | @subsubsection @code{:results output} |
| 12312 | The code is passed to the interpreter running as an interactive Emacs | 13949 | The code is passed to the interpreter running as an interactive Emacs |
| 12313 | inferior process. The result returned is the concatenation of the sequence of | 13950 | inferior 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 |
| 12315 | necessarily the same as what would be sent to @code{STDOUT} if the same code | 13952 | necessarily the same as what would be sent to @code{STDOUT} if the same code |
| 12316 | were passed to a non-interactive interpreter running as an external | 13953 | were passed to a non-interactive interpreter running as an external |
| 12317 | process. For example, compare the following two blocks: | 13954 | process. 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 | ||
| 12331 | In non-session mode, the `2' is not printed and does not appear. | 13968 | In 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 | ||
| 12345 | But in @code{:session} mode, the interactive interpreter receives input `2' | 13982 | But in @code{:session} mode, the interactive interpreter receives input `2' |
| 12346 | and prints out its value, `2'. (Indeed, the other print statements are | 13983 | and prints out its value, `2'. (Indeed, the other print statements are |
| 12347 | unnecessary here). | 13984 | unnecessary 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'' | |||
| 12364 | references are expanded depends upon the value of the @code{:noweb} header | 14001 | references are expanded depends upon the value of the @code{:noweb} header |
| 12365 | argument. If @code{:noweb yes}, then a Noweb reference is expanded before | 14002 | argument. If @code{:noweb yes}, then a Noweb reference is expanded before |
| 12366 | evaluation. If @code{:noweb no}, the default, then the reference is not | 14003 | evaluation. If @code{:noweb no}, the default, then the reference is not |
| 12367 | expanded before evaluation. | 14004 | expanded before evaluation. See the @ref{noweb-ref} header argument for |
| 14005 | a more flexible way to resolve noweb references. | ||
| 12368 | 14006 | ||
| 12369 | Note: the default value, @code{:noweb no}, was chosen to ensure that | 14007 | Note: the default value, @code{:noweb no}, was chosen to ensure that |
| 12370 | correct code is not broken in a language, such as Ruby, where | 14008 | correct 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 | |||
| 12372 | syntactically valid in languages that you use, then please consider setting | 14010 | syntactically valid in languages that you use, then please consider setting |
| 12373 | the default value. | 14011 | the default value. |
| 12374 | 14012 | ||
| 14013 | Note: 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. | ||
| 14015 | This will result in faster noweb reference resolution at the expense of not | ||
| 14016 | correctly resolving inherited values of the @code{:noweb-ref} header | ||
| 14017 | argument. | ||
| 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 | ||
| 12379 | Many common Org-mode key sequences are re-bound depending on | 14023 | Many common Org mode key sequences are re-bound depending on |
| 12380 | the context. | 14024 | the context. |
| 12381 | 14025 | ||
| 12382 | Within a code block, the following key bindings | 14026 | Within 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 | ||
| 12396 | In an Org-mode buffer, the following key bindings are active: | 14040 | In 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 | ||
| 12512 | Emacs would not be Emacs without completion, and Org-mode uses it whenever it | 14157 | Emacs would not be Emacs without completion, and Org mode uses it whenever it |
| 12513 | makes sense. If you prefer an @i{iswitchb}- or @i{ido}-like interface for | 14158 | makes sense. If you prefer an @i{iswitchb}- or @i{ido}-like interface for |
| 12514 | some of the completion prompts, you can specify your preference by setting at | 14159 | some of the completion prompts, you can specify your preference by setting at |
| 12515 | most one of the variables @code{org-completion-use-iswitchb} | 14160 | most one of the variables @code{org-completion-use-iswitchb} |
| @@ -12544,12 +14189,12 @@ buffer. | |||
| 12544 | After @samp{[}, complete link abbreviations (@pxref{Link abbreviations}). | 14189 | After @samp{[}, complete link abbreviations (@pxref{Link abbreviations}). |
| 12545 | @item | 14190 | @item |
| 12546 | After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or | 14191 | After @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 |
| 12548 | option keyword is already complete, pressing @kbd{M-@key{TAB}} again | 14193 | option keyword is already complete, pressing @kbd{M-@key{TAB}} again |
| 12549 | will insert example settings for this keyword. | 14194 | will insert example settings for this keyword. |
| 12550 | @item | 14195 | @item |
| 12551 | In the line after @samp{#+STARTUP: }, complete startup keywords, | 14196 | In the line after @samp{#+STARTUP: }, complete startup keywords, |
| 12552 | i.e. valid keys for this line. | 14197 | i.e.@: valid keys for this line. |
| 12553 | @item | 14198 | @item |
| 12554 | Elsewhere, complete dictionary words using Ispell. | 14199 | Elsewhere, 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 | ||
| 12563 | Org-mode supports insertion of empty structural elements (like | 14208 | Org 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 |
| 12565 | strokes. This is achieved through a native template expansion mechanism. | 14210 | strokes. This is achieved through a native template expansion mechanism. |
| 12566 | Note that Emacs has several other template mechanisms which could be used in | 14211 | Note 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 | ||
| 12590 | For example, on an empty line, typing "<e" and then pressing TAB, will expand | 14236 | For example, on an empty line, typing "<e" and then pressing TAB, will expand |
| 12591 | into a complete EXAMPLE template. | 14237 | into a complete EXAMPLE template. |
| 12592 | 14238 | ||
| 12593 | You can install additional templates by customizing the variable | 14239 | You 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 |
| 12595 | additional details. | 14241 | additional 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 | ||
| 12603 | Single keys can be made to execute commands when the cursor is at the | 14249 | Single keys can be made to execute commands when the cursor is at the |
| 12604 | beginning of a headline, i.e. before the first star. Configure the variable | 14250 | beginning 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 |
| 12606 | pre-defined list of commands, and you can add more such commands using the | 14252 | pre-defined list of commands, and you can add more such commands using the |
| 12607 | variable @code{org-speed-commands-user}. Speed keys do not only speed up | 14253 | variable @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 | |||
| 12641 | which take off the default security brakes. | 14287 | which take off the default security brakes. |
| 12642 | 14288 | ||
| 12643 | @defopt org-confirm-babel-evaluate | 14289 | @defopt org-confirm-babel-evaluate |
| 12644 | When set to t user is queried before code block evaluation | 14290 | When t (the default), the user is asked before every code block evaluation. |
| 14291 | When nil, the user is not asked. When set to a function, it is called with | ||
| 14292 | two arguments (language and body of the code block) and should return t to | ||
| 14293 | ask and nil not to ask. | ||
| 12645 | @end defopt | 14294 | @end defopt |
| 12646 | 14295 | ||
| 14296 | For example, here is how to execute "ditaa" code (which is considered safe) | ||
| 14297 | without 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 |
| 12648 | Org has two link types that can directly evaluate code (@pxref{External | 14305 | Org has two link types that can directly evaluate code (@pxref{External |
| 12649 | links}). These links can be problematic because the code to be evaluated is | 14306 | links}). 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 | ||
| 12683 | Org-mode uses special lines in the buffer to define settings on a | 14340 | Org mode uses special lines in the buffer to define settings on a |
| 12684 | per-file basis. These lines start with a @samp{#+} followed by a | 14341 | per-file basis. These lines start with a @samp{#+} followed by a |
| 12685 | keyword, a colon, and then individual words defining a setting. Several | 14342 | keyword, a colon, and then individual words defining a setting. Several |
| 12686 | setting words can be in the same line, but you can also have multiple | 14343 | setting 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 |
| 12740 | This line defines a file that holds more in-buffer setup. Normally this is | 14397 | This line defines a file that holds more in-buffer setup. Normally this is |
| 12741 | entirely ignored. Only when the buffer is parsed for option-setting lines | 14398 | entirely 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 |
| 12743 | settings line, or when exporting), then the contents of this file are parsed | 14400 | settings line, or when exporting), then the contents of this file are parsed |
| 12744 | as if they had been included in the buffer. In particular, the file can be | 14401 | as if they had been included in the buffer. In particular, the file can be |
| 12745 | any other Org-mode file with internal setup. You can visit the file the | 14402 | any other Org mode file with internal setup. You can visit the file the |
| 12746 | cursor is in the line with @kbd{C-c '}. | 14403 | cursor is in the line with @kbd{C-c '}. |
| 12747 | @item #+STARTUP: | 14404 | @item #+STARTUP: |
| 12748 | @cindex #+STARTUP: | 14405 | @cindex #+STARTUP: |
| 12749 | This line sets options to be used at startup of Org-mode, when an | 14406 | This line sets options to be used at startup of Org mode, when an |
| 12750 | Org file is being visited. | 14407 | Org file is being visited. |
| 12751 | 14408 | ||
| 12752 | The first set of options deals with the initial visibility of the outline | 14409 | The 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 |
| 12771 | Dynamic virtual indentation is controlled by the variable | 14428 | Dynamic 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 |
| 12774 | indent @r{start with @code{org-indent-mode} turned on} | 14431 | indent @r{start with @code{org-indent-mode} turned on} |
| 12775 | noindent @r{start with @code{org-indent-mode} turned off} | 14432 | noindent @r{start with @code{org-indent-mode} turned off} |
| @@ -12896,14 +14553,14 @@ fninline @r{define footnotes inline} | |||
| 12896 | fnnoinline @r{define footnotes in separate section} | 14553 | fnnoinline @r{define footnotes in separate section} |
| 12897 | fnlocal @r{define footnotes near first reference, but not inline} | 14554 | fnlocal @r{define footnotes near first reference, but not inline} |
| 12898 | fnprompt @r{prompt for footnote labels} | 14555 | fnprompt @r{prompt for footnote labels} |
| 12899 | fnauto @r{create [fn:1]-like labels automatically (default)} | 14556 | fnauto @r{create @code{[fn:1]}-like labels automatically (default)} |
| 12900 | fnconfirm @r{offer automatic label for editing or confirmation} | 14557 | fnconfirm @r{offer automatic label for editing or confirmation} |
| 12901 | fnplain @r{create [1]-like labels automatically} | 14558 | fnplain @r{create @code{[1]}-like labels automatically} |
| 12902 | fnadjust @r{automatically renumber and sort footnotes} | 14559 | fnadjust @r{automatically renumber and sort footnotes} |
| 12903 | nofnadjust @r{do not renumber and sort automatically} | 14560 | nofnadjust @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 |
| 12906 | To hide blocks on startup, use these keywords. The corresponding variable is | 14563 | To 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 |
| 12991 | If the cursor is on the @code{#+BEGIN} line of a dynamic block, the | 14648 | If the cursor is on the @code{#+BEGIN} line of a dynamic block, the |
| 12992 | block is updated. | 14649 | block is updated. |
| 14650 | @item | ||
| 14651 | If 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 |
| 13161 | Org lives in the world of GNU Emacs and interacts in various ways | 14820 | Org 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 |
| 13180 | been installed properly. As of Emacs 22, Calc is part of the Emacs | 14839 | been installed properly. As of Emacs 22, Calc is part of the Emacs |
| 13181 | distribution. Another possibility for interaction between the two | 14840 | distribution. Another possibility for interaction between the two |
| 13182 | packages is using Calc for embedded calculations. @xref{Embedded Mode, | 14841 | packages 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 | |||
| 13191 | the @file{constants} package which defines a large number of constants | 14850 | the @file{constants} package which defines a large number of constants |
| 13192 | and units, and lets you use unit prefixes like @samp{M} for | 14851 | and 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 |
| 13194 | at @url{http://www.astro.uva.nl/~dominik/Tools}. Org checks for | 14853 | at @url{http://www.astro.uva.nl/~dominik/Tools}. Org checks for |
| 13195 | the function @code{constants-get}, which has to be autoloaded in your | 14854 | the function @code{constants-get}, which has to be autoloaded in your |
| 13196 | setup. See the installation instructions in the file | 14855 | setup. 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 |
| 13201 | Org-mode can make use of the CDLa@TeX{} package to efficiently enter | 14860 | Org 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} |
| 13205 | Imenu allows menu access to an index of items in a file. Org-mode | 14864 | Imenu allows menu access to an index of items in a file. Org mode |
| 13206 | supports Imenu---all you need to do to get the index is the following: | 14865 | supports 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. |
| 13221 | Speedbar is a package that creates a special frame displaying files and | 14880 | Speedbar is a package that creates a special frame displaying files and |
| 13222 | index items in files. Org-mode supports Speedbar and allows you to | 14881 | index items in files. Org mode supports Speedbar and allows you to |
| 13223 | drill into Org files directly from the Speedbar. It also allows you to | 14882 | drill into Org files directly from the Speedbar. It also allows you to |
| 13224 | restrict the scope of agenda commands to a file or a subtree by using | 14883 | restrict the scope of agenda commands to a file or a subtree by using |
| 13225 | the command @kbd{<} in the Speedbar frame. | 14884 | the command @kbd{<} in the Speedbar frame. |
| @@ -13233,8 +14892,8 @@ the command @kbd{<} in the Speedbar frame. | |||
| 13233 | Complex ASCII tables with automatic line wrapping, column- and row-spanning, | 14892 | Complex ASCII tables with automatic line wrapping, column- and row-spanning, |
| 13234 | and alignment can be created using the Emacs table package by Takaaki Ota | 14893 | and 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). |
| 13236 | Org-mode will recognize these tables and export them properly. Because of | 14895 | Org mode will recognize these tables and export them properly. Because of |
| 13237 | interference with other Org-mode functionality, you unfortunately cannot edit | 14896 | interference with other Org mode functionality, you unfortunately cannot edit |
| 13238 | these tables directly in the buffer. Instead, you need to use the command | 14897 | these 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} |
| 13246 | Insert a @file{table.el} table. If there is already a table at point, this | 14905 | Insert a @file{table.el} table. If there is already a table at point, this |
| 13247 | command converts it between the @file{table.el} format and the Org-mode | 14906 | command converts it between the @file{table.el} format and the Org mode |
| 13248 | format. See the documentation string of the command | 14907 | format. 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 |
| 13250 | possible. | 14909 | possible. |
| @@ -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. |
| 13256 | Org-mode recognizes numerical footnotes as provided by this package. | 14915 | Org mode recognizes numerical footnotes as provided by this package. |
| 13257 | However, Org-mode also has its own footnote support (@pxref{Footnotes}), | 14916 | However, Org mode also has its own footnote support (@pxref{Footnotes}), |
| 13258 | which makes using @file{footnote.el} unnecessary. | 14917 | which 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 | |||
| 13271 | timestamps, TODO keywords, priorities, and item bullet types if the cursor is | 14930 | timestamps, TODO keywords, priorities, and item bullet types if the cursor is |
| 13272 | at such a location. By default, @kbd{S-@key{cursor}} commands outside | 14931 | at such a location. By default, @kbd{S-@key{cursor}} commands outside |
| 13273 | special contexts don't do anything, but you can customize the variable | 14932 | special 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 |
| 13275 | selection by (i) using it outside of the special contexts where special | 14934 | selection by (i) using it outside of the special contexts where special |
| 13276 | commands apply, and by (ii) extending an existing active region even if the | 14935 | commands apply, and by (ii) extending an existing active region even if the |
| 13277 | cursor moves across a special context. | 14936 | cursor 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 |
| 13287 | 23, you probably don't want to use another package for this purpose. However, | 14946 | 23, you probably don't want to use another package for this purpose. However, |
| 13288 | if you prefer to leave these keys to a different package while working in | 14947 | if you prefer to leave these keys to a different package while working in |
| 13289 | Org-mode, configure the variable @code{org-replace-disputed-keys}. When set, | 14948 | Org mode, configure the variable @code{org-replace-disputed-keys}. When set, |
| 13290 | Org will move the following key bindings in Org files, and in the agenda | 14949 | Org will move the following key bindings in Org files, and in the agenda |
| 13291 | buffer (but not during date selection). | 14950 | buffer (but not during date selection). |
| 13292 | 14951 | ||
| 13293 | @example | 14952 | @example |
| 13294 | S-UP -> M-p S-DOWN -> M-n | 14953 | S-UP @result{} M-p S-DOWN @result{} M-n |
| 13295 | S-LEFT -> M-- S-RIGHT -> M-+ | 14954 | S-LEFT @result{} M-- S-RIGHT @result{} M-+ |
| 13296 | C-S-LEFT -> M-S-- C-S-RIGHT -> M-S-+ | 14955 | C-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} |
| 13306 | The way Org-mode binds the TAB key (binding to @code{[tab]} instead of | 14965 | The 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 |
| 13308 | fixed this problem: | 14967 | fixed 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 | |||
| 14976 | The latest version of yasnippet doesn't play well with Org mode. If the | ||
| 14977 | above code does not fix the conflict, start by defining the following | ||
| 14978 | function: | ||
| 14979 | |||
| 14980 | @lisp | ||
| 14981 | (defun yas/org-very-safe-expand () | ||
| 14982 | (let ((yas/fallback-behavior 'return-nil)) (yas/expand))) | ||
| 14983 | @end lisp | ||
| 14984 | |||
| 14985 | Then, 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} |
| 13319 | This package also uses the @kbd{S-<cursor>} keys, so everything written | 14998 | This package also uses the @kbd{S-<cursor>} keys, so everything written |
| 13320 | in the paragraph above about CUA mode also applies here. If you want make | 14999 | in the paragraph above about CUA mode also applies here. If you want make |
| 13321 | the windmove function active in locations where Org-mode does not have | 15000 | the windmove function active in locations where Org mode does not have |
| 13322 | special functionality on @kbd{S-@key{cursor}}, add this to your | 15001 | special functionality on @kbd{S-@key{cursor}}, add this to your |
| 13323 | configuration: | 15002 | configuration: |
| 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 / |
| 13336 | Viper uses @kbd{C-c /} and therefore makes this key not access the | 15015 | Viper uses @kbd{C-c /} and therefore makes this key not access the |
| 13337 | corresponding Org-mode command @code{org-sparse-tree}. You need to find | 15016 | corresponding Org mode command @code{org-sparse-tree}. You need to find |
| 13338 | another key for this command, or override the key in | 15017 | another 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 | |||
| 15031 | Org-crypt will encrypt the text of an entry, but not the headline, or | ||
| 15032 | properties. Org-crypt uses the Emacs EasyPG library to encrypt and decrypt | ||
| 15033 | files. | ||
| 15034 | |||
| 15035 | Any text below a headline that has a @samp{:crypt:} tag will be automatically | ||
| 15036 | be encrypted when the file is saved. If you want to use a different tag just | ||
| 15037 | customize the @code{org-crypt-tag-matcher} setting. | ||
| 15038 | |||
| 15039 | To 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 | |||
| 15062 | Excluding the crypt tag from inheritance prevents already encrypted text | ||
| 15063 | being 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 | ||
| 13382 | A large number of add-on packages have been written by various authors. | 15099 | A large number of add-on packages have been written by various authors. |
| 13383 | These packages are not part of Emacs, but they are distributed as contributed | 15100 | These packages are not part of Emacs, but they are distributed as contributed |
| 13384 | packages with the separate release available at the Org-mode home page at | 15101 | packages 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 |
| 13386 | documentation about each package, is maintained by the Worg project at | 15103 | documentation 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 | |||
| 13487 | buffer with @kbd{C-c C-l}. | 15204 | buffer with @kbd{C-c C-l}. |
| 13488 | 15205 | ||
| 13489 | When it makes sense for your new link type, you may also define a function | 15206 | When 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) |
| 13491 | support for inserting such a link with @kbd{C-c C-l}. Such a function should | 15208 | support for inserting such a link with @kbd{C-c C-l}. Such a function should |
| 13492 | not accept any arguments, and return the full link with prefix. | 15209 | not 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 | |||
| 13505 | special context for that add-on and executes functionality appropriate for | 15222 | special context for that add-on and executes functionality appropriate for |
| 13506 | the context. Here is an example from Dan Davison's @file{org-R.el} which | 15223 | the context. Here is an example from Dan Davison's @file{org-R.el} which |
| 13507 | allows you to evaluate commands based on the @file{R} programming language | 15224 | allows 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 |
| 13509 | described in @ref{Working With Source Code} and is now obsolete.}. For this | 15226 | described in @ref{Working With Source Code} and is now obsolete.}. For this |
| 13510 | package, special contexts are lines that start with @code{#+R:} or | 15227 | package, 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 | |||
| 13526 | The function first checks if the cursor is in such a line. If that is the | 15243 | The function first checks if the cursor is in such a line. If that is the |
| 13527 | case, @code{org-R-apply} is called and the function returns @code{t} to | 15244 | case, @code{org-R-apply} is called and the function returns @code{t} to |
| 13528 | signal that action was taken, and @kbd{C-c C-c} will stop looking for other | 15245 | signal that action was taken, and @kbd{C-c C-c} will stop looking for other |
| 13529 | contexts. If the function finds it should do nothing locally, it returns @code{nil} so that other, similar functions can have a try. | 15246 | contexts. 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 | |||
| 13539 | frequent feature request has been to make it work with native tables in | 15257 | frequent feature request has been to make it work with native tables in |
| 13540 | specific languages, for example @LaTeX{}. However, this is extremely | 15258 | specific languages, for example @LaTeX{}. However, this is extremely |
| 13541 | hard to do in a general way, would lead to a customization nightmare, | 15259 | hard to do in a general way, would lead to a customization nightmare, |
| 13542 | and would take away much of the simplicity of the Orgtbl-mode table | 15260 | and would take away much of the simplicity of the Orgtbl mode table |
| 13543 | editor. | 15261 | editor. |
| 13544 | 15262 | ||
| 13545 | This appendix describes a different approach. We keep the Orgtbl mode | 15263 | This 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 |
| 13590 | in the receiver lines. @code{translation_function} is the Lisp function | 15308 | in the receiver lines. @code{translation_function} is the Lisp function |
| 13591 | that does the translation. Furthermore, the line can contain a list of | 15309 | that does the translation. Furthermore, the line can contain a list of |
| 13592 | arguments (alternating key and value) at the end. The arguments will be | 15310 | arguments (alternating key and value) at the end. The arguments will be |
| 13593 | passed as a property list to the translation function for | 15311 | passed 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 | |||
| 13630 | key. | 15348 | key. |
| 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. | |||
| 13690 | Now let's assume you want to make the table header by hand, because you | 15408 | Now let's assume you want to make the table header by hand, because you |
| 13691 | want to control how columns are aligned, etc@. In this case we make sure | 15409 | want to control how columns are aligned, etc@. In this case we make sure |
| 13692 | that the table translator skips the first 2 lines of the source | 15410 | that the table translator skips the first 2 lines of the source |
| 13693 | table, and tell the command to work as a @i{splice}, i.e. to not produce | 15411 | table, and tell the command to work as a @i{splice}, i.e.@: to not produce |
| 13694 | header and footer commands of the target table: | 15412 | header and footer commands of the target table: |
| 13695 | 15413 | ||
| 13696 | @example | 15414 | @example |
| @@ -13725,7 +15443,7 @@ tabular environment. Default is nil. | |||
| 13725 | A format to be used to wrap each field, it should contain @code{%s} for the | 15443 | A format to be used to wrap each field, it should contain @code{%s} for the |
| 13726 | original field value. For example, to wrap each field value in dollars, | 15444 | original field value. For example, to wrap each field value in dollars, |
| 13727 | you could use @code{:fmt "$%s$"}. This may also be a property list with | 15445 | you could use @code{:fmt "$%s$"}. This may also be a property list with |
| 13728 | column numbers and formats. for example @code{:fmt (2 "$%s$" 4 "%s\\%%")}. | 15446 | column numbers and formats, for example @code{:fmt (2 "$%s$" 4 "%s\\%%")}. |
| 13729 | A function of one argument can be used in place of the strings; the | 15447 | A function of one argument can be used in place of the strings; the |
| 13730 | function must return a formatted string. | 15448 | function must return a formatted string. |
| 13731 | 15449 | ||
| @@ -13740,7 +15458,7 @@ applied. Similar to @code{fmt}, functions of two arguments can be | |||
| 13740 | supplied instead of strings. | 15458 | supplied 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 | ||
| 13774 | As you can see, the properties passed into the function (variable | 15492 | As 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 |
| 13777 | ones set by the @samp{ORGTBL SEND} line) take precedence. So if you | 15495 | ones set by the @samp{ORGTBL SEND} line) take precedence. So if you |
| 13778 | would like to use the @LaTeX{} translator, but wanted the line endings to | 15496 | would like to use the @LaTeX{} translator, but wanted the line endings to |
| 13779 | be @samp{\\[2mm]} instead of the default @samp{\\}, you could just | 15497 | be @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 | |||
| 13920 | written in a way such that it does nothing in buffers that are not in | 15638 | written in a way such that it does nothing in buffers that are not in |
| 13921 | @code{org-mode}. | 15639 | @code{org-mode}. |
| 13922 | 15640 | ||
| 15641 | You can narrow the current buffer to the current dynamic block (like any | ||
| 15642 | other 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 | ||
| 13927 | Org provides a special hook that can be used to narrow down the selection | 15650 | Org provides a special hook that can be used to narrow down the selection |
| 13928 | made by these agenda views: @code{todo}, @code{alltodo}, @code{tags}, @code{tags-todo}, | 15651 | made 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 |
| 13930 | if the match should indeed be part of the agenda view, and if not, how | 15653 | that is used at each match to verify if the match should indeed be part of |
| 13931 | much should be skipped. | 15654 | the agenda view, and if not, how much should be skipped. You can specify a |
| 15655 | global condition that will be applied to all agenda views, this condition | ||
| 15656 | would be stored in the variable @code{org-agenda-skip-function-global}. More | ||
| 15657 | commonly, such a definition is applied only to specific custom searches, | ||
| 15658 | using @code{org-agenda-skip-function}. | ||
| 13932 | 15659 | ||
| 13933 | Let's say you want to produce a list of projects that contain a WAITING | 15660 | Let's say you want to produce a list of projects that contain a WAITING |
| 13934 | tag anywhere in the project tree. Let's further assume that you have | 15661 | tag 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} | |||
| 13981 | and @code{org-agenda-skip-subtree-if} in this form, for example: | 15708 | and @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) |
| 13985 | Skip current entry if it has been scheduled. | 15712 | Skip current entry if it has been scheduled. |
| 13986 | @item '(org-agenda-skip-entry-if 'notscheduled) | 15713 | @item (org-agenda-skip-entry-if 'notscheduled) |
| 13987 | Skip current entry if it has not been scheduled. | 15714 | Skip current entry if it has not been scheduled. |
| 13988 | @item '(org-agenda-skip-entry-if 'deadline) | 15715 | @item (org-agenda-skip-entry-if 'deadline) |
| 13989 | Skip current entry if it has a deadline. | 15716 | Skip 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) |
| 13991 | Skip current entry if it has a deadline, or if it is scheduled. | 15718 | Skip 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")) |
| 13993 | Skip current entry if the TODO keyword is TODO or WAITING. | 15720 | Skip 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) |
| 13995 | Skip current entry if the TODO keyword marks a DONE state. | 15722 | Skip 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) |
| 13997 | Skip current entry if it has any timestamp, may also be deadline or scheduled. | 15724 | Skip 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") |
| 13999 | Skip current entry if the regular expression matches in the entry. | 15726 | Skip 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") |
| 14001 | Skip current entry unless the regular expression matches. | 15728 | Skip 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") |
| 14003 | Same as above, but check and skip the entire subtree. | 15730 | Same 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 |
| 14052 | emacs -batch -l ~/.emacs \ | 15779 | emacs -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 | |||
| 14219 | moved to the end of the line (presumably of the headline of the | 15946 | moved to the end of the line (presumably of the headline of the |
| 14220 | processed entry) and search continues from there. Under some | 15947 | processed entry) and search continues from there. Under some |
| 14221 | circumstances, this may not produce the wanted results. For example, | 15948 | circumstances, this may not produce the wanted results. For example, |
| 14222 | if you have removed (e.g. archived) the current (sub)tree it could | 15949 | if you have removed (e.g.@: archived) the current (sub)tree it could |
| 14223 | mean that the next entry will be skipped entirely. In such cases, you | 15950 | mean that the next entry will be skipped entirely. In such cases, you |
| 14224 | can specify the position from where search should continue by making | 15951 | can specify the position from where search should continue by making |
| 14225 | FUNC set the variable `org-map-continue-from' to the desired buffer | 15952 | FUNC 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 |
| 14236 | nil @r{the current buffer, respecting the restriction if any} | 15963 | nil @r{the current buffer, respecting the restriction if any} |
| 14237 | tree @r{the subtree started with the entry at point} | 15964 | tree @r{the subtree started with the entry at point} |
| 15965 | region @r{The entries within the active region, if any} | ||
| 14238 | file @r{the current buffer, without restriction} | 15966 | file @r{the current buffer, without restriction} |
| 14239 | file-with-archives | 15967 | file-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 |
| 14316 | system rooted on a ``real'' computer. It does also allow you to record | 16044 | system rooted on a ``real'' computer. It does also allow you to record |
| 14317 | changes to existing entries. Android users should check out | 16045 | changes 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 | ||
| 14342 | MobileOrg needs to interact with Emacs through a directory on a server. If you | 16070 | MobileOrg needs to interact with Emacs through a directory on a server. If you |
| 14343 | are using a public server, you should consider to encrypt the files that are | 16071 | are using a public server, you should consider to encrypt the files that are |
| 14344 | uploaded to the server. This can be done with Org-mode 7.02 and with | 16072 | uploaded 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} |
| 14346 | installation on your system. To turn on encryption, set a password in | 16074 | installation 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 |
| 14356 | Dropbox, or if your version of MobileOrg does not support it, you can use a | 16084 | Dropbox, or if your version of MobileOrg does not support it, you can use a |
| 14357 | webdav server. For more information, check out the documentation of MobileOrg and also this | 16085 | webdav 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}.}. |
| 14359 | When MobileOrg first connects to your Dropbox, it will create a directory | 16087 | When 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 |
| 14361 | Emacs about it: | 16089 | Emacs 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 | ||
| 14367 | Org-mode has commands to put files for @i{MobileOrg} into that directory, | 16095 | Org mode has commands to put files for @i{MobileOrg} into that directory, |
| 14368 | and to read captured notes from there. | 16096 | and 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. | |||
| 14373 | This operation copies all files currently listed in @code{org-mobile-files} | 16101 | This operation copies all files currently listed in @code{org-mobile-files} |
| 14374 | to the directory @code{org-mobile-directory}. By default this list contains | 16102 | to the directory @code{org-mobile-directory}. By default this list contains |
| 14375 | all agenda files (as listed in @code{org-agenda-files}), but additional files | 16103 | all agenda files (as listed in @code{org-agenda-files}), but additional files |
| 14376 | can be included by customizing @code{org-mobiles-files}. File names will be | 16104 | can be included by customizing @code{org-mobile-files}. File names will be |
| 14377 | staged with paths relative to @code{org-directory}, so all files should be | 16105 | staged with paths relative to @code{org-directory}, so all files should be |
| 14378 | inside this directory. The push operation also creates a special Org file | 16106 | inside 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 |
| 14380 | user@footnote{While creating the agendas, Org-mode will force ID properties | 16108 | user@footnote{While creating the agendas, Org mode will force ID properties |
| 14381 | on all referenced entries, so that these entries can be uniquely identified | 16109 | on all referenced entries, so that these entries can be uniquely identified |
| 14382 | if @i{MobileOrg} flags them for further action. If you do not want to get | 16110 | if @i{MobileOrg} flags them for further action. If you do not want to get |
| 14383 | these properties in so many entries, you can set the variable | 16111 | these 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 |
| 14480 | Bastien has written a large number of extensions to Org (most of them | 16208 | Bastien has written a large number of extensions to Org (most of them |
| 14481 | integrated into the core by now), including the LaTeX exporter and the plain | 16209 | integrated into the core by now), including the @LaTeX{} exporter and the plain |
| 14482 | list parser. His support during the early days, when he basically acted as | 16210 | list parser. His support during the early days, when he basically acted as |
| 14483 | co-maintainer, was central to the success of this project. Bastien also | 16211 | co-maintainer, was central to the success of this project. Bastien also |
| 14484 | invented Worg, helped establishing the Web presence of Org, and sponsors | 16212 | invented 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 |
| 14516 | Org-mode website. | 16244 | Org 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. | |||
| 14695 | extension system, added support for mairix, and proposed the mapping API. | 16423 | extension 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, |
| 14698 | LaTeX, 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 |
| 14701 | with links transformation to Org syntax. | 16429 | with 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 |
| 14704 | chapter about publishing. | 16432 | chapter 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. |
| 14707 | enabled source code highlighling in Gnus. | 16435 | @item |
| 16436 | @i{Sebastien Vauban} reported many issues with @LaTeX{} and BEAMER export and | ||
| 16437 | enabled 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 |
| 14710 | Max-Planck-Institute for Neurology. He also inspired the creation of a | 16440 | Max-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 |
| 14731 | and contributed various ideas and code snippets. | 16461 | and 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 |
| 9 | Copyright @copyright{} 1991-2011 | 9 | Copyright @copyright{} 1991-2012 Free Software Foundation, Inc. |
| 10 | Free Software Foundation, Inc. | ||
| 11 | 10 | ||
| 12 | @quotation | 11 | @quotation |
| 13 | Permission is granted to copy, distribute and/or modify this document | 12 | Permission 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 | |||
| 70 | of the various commands and major modes for further information. | 69 | of 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 | |||
| 136 | PCL-CVS is a front-end to CVS versions 1.9 and later. | 135 | PCL-CVS is a front-end to CVS versions 1.9 and later. |
| 137 | It concisely shows the present status of a checked out module in an | 136 | It concisely shows the present status of a checked out module in an |
| 138 | Emacs buffer and provides single-key access to the most frequently used CVS | 137 | Emacs buffer and provides single-key access to the most frequently used CVS |
| 139 | commands. | 138 | commands. Note that the @code{vc-dir} command (@pxref{VC Directory |
| 140 | For Emacs users accustomed to VC, PCL-CVS can be thought of as a replacement | 139 | Mode, , , emacs, The GNU Emacs Manual}) provides similar |
| 141 | for VC-dired (@pxref{VC Directory Mode, , , emacs, The GNU | 140 | functionality, but for several version control systems, including CVS. |
| 142 | Emacs Manual}) specifically designed for CVS. | ||
| 143 | 141 | ||
| 144 | PCL-CVS was originally written many years ago by Per Cederqvist who | 142 | PCL-CVS was originally written many years ago by Per Cederqvist who |
| 145 | proudly maintained it until January 1996, at which point he released the | 143 | proudly 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 | |||
| 1275 | useful if your site has several repositories. | 1273 | useful 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 |
| 1279 | When you enter a log message by typing into the | 1277 | When 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 |
| 1281 | inserts a trailing newline, unless there already is one. This behavior | 1279 | inserts 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 @@ | |||
| 11 | This file describes PGG @value{VERSION}, an Emacs interface to various | 11 | This file describes PGG @value{VERSION}, an Emacs interface to various |
| 12 | PGP implementations. | 12 | PGP implementations. |
| 13 | 13 | ||
| 14 | Copyright @copyright{} 2001, 2003-2011 Free Software Foundation, Inc. | 14 | Copyright @copyright{} 2001, 2003-2012 Free Software Foundation, Inc. |
| 15 | 15 | ||
| 16 | @quotation | 16 | @quotation |
| 17 | Permission is granted to copy, distribute and/or modify this document | 17 | Permission 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 | |||
| 57 | user interface to encrypt, decrypt, sign, and verify MIME messages. | 57 | user 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 | ||
| 359 | Since PGG was designed for accessing and developing PGP functionality, | 359 | Since PGG was designed for accessing and developing PGP functionality, |
| 360 | the architecture had to be designed not just for interoperability but | 360 | the architecture had to be designed not just for interoperability but |
| 361 | also for extensiblity. In this chapter we explore the architecture | 361 | also for extensibility. In this chapter we explore the architecture |
| 362 | while finding out how to write the PGG back end. | 362 | while 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 |
| 8 | Copyright @copyright{} 2006-2011 | 8 | Copyright @copyright{} 2006-2012 |
| 9 | Free Software Foundation, Inc. | 9 | Free 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 |
| 551 | Use this symbol if you need to identify yourself as follows when | 551 | Use this symbol if you need to identify yourself as follows when |
| 552 | connecting to a network: @code{/msg nickserv identify secret}. The | 552 | connecting to a network: @code{/msg nickserv identify secret}. The |
| 553 | necessary arguments are the nickname you want to use this for, and the | 553 | necessary 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 | |||
| 558 | details. (Using @code{/msg nickserv help}, for example.) | 558 | details. (Using @code{/msg nickserv help}, for example.) |
| 559 | 559 | ||
| 560 | @item chanserv | 560 | @item chanserv |
| 561 | @cindex chanserv authentification | 561 | @cindex chanserv authentication |
| 562 | Use this symbol if you need to identify yourself as follows if you want | 562 | Use this symbol if you need to identify yourself as follows if you want |
| 563 | to join a particular channel: @code{/msg chanserv identify #underground | 563 | to join a particular channel: @code{/msg chanserv identify #underground |
| 564 | secret}. The necessary arguments are the nickname and channel you want | 564 | secret}. 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 |
| 573 | Use this symbol if you need to identify yourself in the Bitlbee channel | 573 | Use this symbol if you need to identify yourself in the Bitlbee channel |
| 574 | as follows: @code{identify secret}. The necessary arguments are the | 574 | as follows: @code{identify secret}. The necessary arguments are the |
| 575 | nickname you want to use this for, and the password to use. | 575 | nickname 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 | |||
| 585 | other instant messaging services. You can either install Bitlbee | 585 | other instant messaging services. You can either install Bitlbee |
| 586 | locally or use a public Bitlbee server. There, you need to create an | 586 | locally or use a public Bitlbee server. There, you need to create an |
| 587 | account with a password. This is the nick and password you need to | 587 | account with a password. This is the nick and password you need to |
| 588 | provide for the bitlbee authentification method. | 588 | provide for the bitlbee authentication method. |
| 589 | 589 | ||
| 590 | Later, you will tell Bitlbee about your accounts and passwords on all | 590 | Later, you will tell Bitlbee about your accounts and passwords on all |
| 591 | the other instant messaging services, and Bitlbee will log you in. All | 591 | the 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. | |||
| 27 | This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for | 27 | This 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 | ||
| 30 | Copyright @copyright{} 1997-2011 Free Software Foundation, Inc. | 30 | Copyright @copyright{} 1997-2012 Free Software Foundation, Inc. |
| 31 | 31 | ||
| 32 | @quotation | 32 | @quotation |
| 33 | Permission is granted to copy, distribute and/or modify this document | 33 | Permission 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 | |||
| 90 | Nutshell}). You can go back later to other parts of this document when | 90 | Nutshell}). You can go back later to other parts of this document when |
| 91 | needed. | 91 | needed. |
| 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 | ||
| 162 | Index Support | 162 | Index 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 |
| 1777 | Create a new BibTeX database file which contains all @i{marked} entries | 1777 | Create a new BibTeX database file which contains all @i{marked} entries |
| 1778 | in the selection buffer. If no entries are marked, all entries are | 1778 | in the selection buffer. If no entries are marked, all entries are |
| 1779 | selected. | 1779 | selected. |
| 1780 | 1780 | ||
| 1781 | @item E | 1781 | @item E |
| 1782 | Create a new BibTeX database file which contains all @i{unmarked} | 1782 | Create a new BibTeX database file which contains all @i{unmarked} |
| 1783 | entries in the selection buffer. If no entries are marked, all entries | 1783 | entries in the selection buffer. If no entries are marked, all entries |
| 1784 | are selected. | 1784 | are selected. |
| 1785 | 1785 | ||
| 1786 | @item @key{TAB} | 1786 | @item @key{TAB} |
| 1787 | Enter a citation key with completion. This may also be a key which does | 1787 | Enter a citation key with completion. This may also be a key which does |
| @@ -3215,7 +3215,7 @@ way. | |||
| 3215 | 3215 | ||
| 3216 | Before calling a @b{Ref@TeX{}} function, the style hook should always | 3216 | Before calling a @b{Ref@TeX{}} function, the style hook should always |
| 3217 | test for the availability of the function, so that the style file will | 3217 | test for the availability of the function, so that the style file will |
| 3218 | also work for people who do not use @b{Ref@TeX{}}. | 3218 | also work for people who do not use @b{Ref@TeX{}}. |
| 3219 | 3219 | ||
| 3220 | Additions made with style files in the way described below remain local | 3220 | Additions made with style files in the way described below remain local |
| 3221 | to the current document. For example, if one package uses AMSTeX, the | 3221 | to 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. | |||
| 3714 | Create a new BibTeX database file with all entries referenced in document. | 3714 | Create a new BibTeX database file with all entries referenced in document. |
| 3715 | The command prompts for a filename and writes the collected entries to | 3715 | The command prompts for a filename and writes the collected entries to |
| 3716 | that file. Only entries referenced in the current document with | 3716 | that file. Only entries referenced in the current document with |
| 3717 | any @code{\cite}-like macros are used. | 3717 | any @code{\cite}-like macros are used. |
| 3718 | The sequence in the new file is the same as it was in the old database. | 3718 | The 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 | |||
| 3819 | ordinary TOC window), the automatic recentering is turned on. When the | 3819 | ordinary TOC window), the automatic recentering is turned on. When the |
| 3820 | frame gets destroyed, automatic recentering is turned off again. | 3820 | frame gets destroyed, automatic recentering is turned off again. |
| 3821 | 3821 | ||
| 3822 | This feature can be turned on and off from the menu | 3822 | This 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: | |||
| 4095 | t @r{This means to trust any label prefixes found.} | 4095 | t @r{This means to trust any label prefixes found.} |
| 4096 | regexp @r{If a regexp, only prefixes matched by the regexp are trusted.} | 4096 | regexp @r{If a regexp, only prefixes matched by the regexp are trusted.} |
| 4097 | list @r{List of accepted prefixes, as strings. The colon is part of} | 4097 | list @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:").} |
| 4099 | nil @r{Never trust a label prefix.} | 4099 | nil @r{Never trust a label prefix.} |
| 4100 | @end example | 4100 | @end example |
| 4101 | The only disadvantage of using this feature is that the label context | 4101 | The 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 | ||
| 4125 | If @var{derive}is @code{t}, @b{Ref@TeX{}} will try to derive a sensible | 4125 | If @var{derive} is @code{t}, @b{Ref@TeX{}} will try to derive a sensible |
| 4126 | label from context. A section label for example will be derived from | 4126 | label from context. A section label for example will be derived from |
| 4127 | the section heading. The conversion of the context to a valid label is | 4127 | the section heading. The conversion of the context to a valid label is |
| 4128 | governed by the specifications given in | 4128 | governed 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 |
| 5183 | Inserting citation commands now prompts for optional arguments | 5183 | Inserting citation commands now prompts for optional arguments |
| 5184 | when called with a prefix argument. Related new options are | 5184 | when 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 |
| 5188 | New option @code{reftex-trust-label-prefix}. Configure this variable | 5188 | New option @code{reftex-trust-label-prefix}. Configure this variable |
| 5189 | if you'd like RefTeX to base its classification of labels on prefixes. | 5189 | if 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 |
| 5203 | New command @code{reftex-create-bibtex-file} to create a new database | 5203 | New command @code{reftex-create-bibtex-file} to create a new database |
| 5204 | with all entries referenced in the current document. | 5204 | with 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 |
| 5213 | Renaming labels from the toc buffer with key @kbd{M-%}. | 5213 | Renaming 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 |
| 5343 | Environments like theorems can be placed into the TOC by putting | 5343 | Environments like theorems can be placed into the TOC by putting |
| 5344 | entries for @samp{"begin@{theorem@}"} in | 5344 | entries 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}. | |||
| 5425 | document, all labels and associated context. New keys @kbd{i}, @kbd{l}, | 5425 | document, all labels and associated context. New keys @kbd{i}, @kbd{l}, |
| 5426 | and @kbd{c}. New options @code{reftex-toc-include-labels}, | 5426 | and @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 |
| 9 | This manual is for Remember Mode, version 1.9 | 9 | This manual is for Remember Mode, version 1.9 |
| 10 | 10 | ||
| 11 | Copyright @copyright{} 2001, 2004-2005, 2007-2011 | 11 | Copyright @copyright{} 2001, 2004-2005, 2007-2012 |
| 12 | Free Software Foundation, Inc. | 12 | Free 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 | ||
| 393 | From org.texi: | ||
| 394 | Up to version 6.36 Org used a special setup | ||
| 395 | for @file{remember.el}. @file{org-remember.el} is still part of Org mode for | ||
| 396 | backward compatibility with existing setups. You can find the documentation | ||
| 397 | for org-remember at @url{http://orgmode.org/org-remember.pdf}. | ||
| 398 | @end ignore | ||
| 392 | For instructions on how to integrate Remember with Org Mode, | 399 | For instructions on how to integrate Remember with Org Mode, |
| 393 | consult @ref{Remember, , , org}. | 400 | consult @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 |
| 11 | This file describes the Emacs SASL library, version @value{VERSION}. | 11 | This file describes the Emacs SASL library, version @value{VERSION}. |
| 12 | 12 | ||
| 13 | Copyright @copyright{} 2000, 2004-2011 | 13 | Copyright @copyright{} 2000, 2004-2012 |
| 14 | Free Software Foundation, Inc. | 14 | Free 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 @@ | |||
| 14 | This document describes Supercite, an Emacs package for citing and | 14 | This document describes Supercite, an Emacs package for citing and |
| 15 | attributing replies to mail and news messages. | 15 | attributing replies to mail and news messages. |
| 16 | 16 | ||
| 17 | Copyright @copyright{} 1993, 2001-2011 Free Software Foundation, Inc. | 17 | Copyright @copyright{} 1993, 2001-2012 Free Software Foundation, Inc. |
| 18 | 18 | ||
| 19 | @quotation | 19 | @quotation |
| 20 | Permission is granted to copy, distribute and/or modify this document | 20 | Permission 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 | ||
| 61 | The manual is divided | 61 | The manual is divided |
| 62 | into the following chapters. | 62 | into 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 |
| 205 | cited text and want to re-fill it, you must use an add-on package such | 205 | cited text and want to re-fill it, you must use an add-on package such |
| 206 | as @cite{filladapt} or @cite{gin-mode}. These packages can recognize | 206 | as @cite{filladapt} or @cite{gin-mode}. These packages can recognize |
| 207 | Supercited text and will fill them appropriately. Emacs' built-in | 207 | Supercited text and will fill them appropriately. Emacs's built-in |
| 208 | filling routines, e.g@. @code{fill-paragraph}, do not recognize cited | 208 | filling routines, e.g@. @code{fill-paragraph}, do not recognize cited |
| 209 | text and will not re-fill them properly because it cannot guess the | 209 | text 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. | |||
| 786 | One final note. After Supercite is loaded into your Emacs session, it | 786 | One final note. After Supercite is loaded into your Emacs session, it |
| 787 | runs the hook @code{sc-load-hook}. You can put any customizations into | 787 | runs the hook @code{sc-load-hook}. You can put any customizations into |
| 788 | this hook since it is only run once. This will not work, however, if | 788 | this hook since it is only run once. This will not work, however, if |
| 789 | your Emacs maintainer has put Supercite into your dumped Emacs' image. | 789 | your Emacs maintainer has put Supercite into your dumped Emacs image. |
| 790 | In that case, you can use the @code{sc-pre-hook} variable, but this will | 790 | In that case, you can use the @code{sc-pre-hook} variable, but this will |
| 791 | get executed every time @code{sc-cite-original} is called. @xref{Reply | 791 | get executed every time @code{sc-cite-original} is called. @xref{Reply |
| 792 | Buffer Initialization}.@refill | 792 | Buffer Initialization}.@refill |
| @@ -1008,7 +1008,7 @@ fill each cited paragraph in the reply buffer. | |||
| 1008 | 1008 | ||
| 1009 | I usually run with both these variables containing their default values. | 1009 | I usually run with both these variables containing their default values. |
| 1010 | When Supercite's automatic filling breaks on a particular message, I | 1010 | When Supercite's automatic filling breaks on a particular message, I |
| 1011 | will use Emacs' undo feature to undo back before the citation was | 1011 | will use Emacs's undo feature to undo back before the citation was |
| 1012 | applied to the original message. Then I'll toggle the variables and | 1012 | applied to the original message. Then I'll toggle the variables and |
| 1013 | manually cite those paragraphs that I don't want to fill or collapse | 1013 | manually cite those paragraphs that I don't want to fill or collapse |
| 1014 | whitespace on. @xref{Variable Toggling Shortcuts}.@refill | 1014 | whitespace 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 |
| 1690 | The following commands let you set the value of multi-value variables, | 1690 | The following commands let you set the value of multi-value variables, |
| 1691 | in the same way that Emacs' @code{set-variable} does: | 1691 | in 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}) |
| 1780 | Similar to Emacs' standard @code{open-line} commands, but inserts the | 1780 | Similar to Emacs's standard @code{open-line} commands, but inserts the |
| 1781 | citation string in front of the new line. As with @code{open-line}, | 1781 | citation string in front of the new line. As with @code{open-line}, |
| 1782 | an optional numeric argument inserts that many new lines.@refill | 1782 | an 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 | |||
| 1877 | Supercite mailing list participants. | 1877 | Supercite mailing list participants. |
| 1878 | 1878 | ||
| 1879 | With version 3, Supercite underwent an almost complete rewrite, | 1879 | With version 3, Supercite underwent an almost complete rewrite, |
| 1880 | benefitting in a number of ways, including vast improvements in the | 1880 | benefiting in a number of ways, including vast improvements in the |
| 1881 | speed of performance, a big reduction in size of the code and in the use | 1881 | speed of performance, a big reduction in size of the code and in the use |
| 1882 | of Emacs resources, and a much cleaner and flexible internal | 1882 | of Emacs resources, and a much cleaner and flexible internal |
| 1883 | architecture. Most of this work was internal and not of very great | 1883 | architecture. 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 | |||
| 176 | kill it as well. This allows you to insert or jump to that tag with | 176 | kill it as well. This allows you to insert or jump to that tag with |
| 177 | the usual register commands. @xref{Registers,,,emacs,Emacs manual}. | 177 | the usual register commands. @xref{Registers,,,emacs,Emacs manual}. |
| 178 | 178 | ||
| 179 | @item \C-c , @kbd{up} | 179 | @item C-c , @kbd{up} |
| 180 | Transpose the current tag with the previous one | 180 | Transpose 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 |
| 383 | The value of this variable is a list of directories (strings) that are | 383 | The value of this variable is a list of directories (strings) that are |
| 384 | project roots. All subdirectories of a project root are considered | 384 | project roots. All subdirectories of a project root are considered |
| 385 | part of the same project. This variable can be overriden by | 385 | part 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 |
| 550 | If non-@code{nil}, disable display of working messages whie reparsing. | 550 | If 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 | ||
| 611 | If you see an error signalled during idle time, it could be an | 611 | If you see an error signaled during idle time, it could be an |
| 612 | indication of a more serious issue elsewhere. It is not enough to | 612 | indication of a more serious issue elsewhere. It is not enough to |
| 613 | enable @code{debug-on-error}, because the idle scheduler inhibits the | 613 | enable @code{debug-on-error}, because the idle scheduler inhibits the |
| 614 | debugger. Instead, use the following commands to debug the error: | 614 | debugger. 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 | ||
| 883 | These commands are often more accurate than than the @code{find-tag} | 883 | These commands are often more accurate than the @code{find-tag} |
| 884 | command (@pxref{Tags,,,emacs,Emacs manual}), because the Semantic | 884 | command (@pxref{Tags,,,emacs,Emacs manual}), because the Semantic |
| 885 | Analyzer is context-sensitive. | 885 | Analyzer 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 |
| 25 | This manual documents the Semantic library and utilities. | 25 | This manual documents the Semantic library and utilities. |
| 26 | 26 | ||
| 27 | Copyright @copyright{} 1999-2005, 2007, 2009-2011 Free Software Foundation, Inc. | 27 | Copyright @copyright{} 1999-2005, 2007, 2009-2012 Free Software Foundation, Inc. |
| 28 | 28 | ||
| 29 | @quotation | 29 | @quotation |
| 30 | Permission is granted to copy, distribute and/or modify this document | 30 | Permission 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 | |||
| 306 | a prototype. | 306 | a prototype. |
| 307 | 307 | ||
| 308 | @item semantic-tag-ls.el | 308 | @item semantic-tag-ls.el |
| 309 | Language dependant features of a tag, such as parent calculation, slot | 309 | Language dependent features of a tag, such as parent calculation, slot |
| 310 | protection, and other states like abstract, virtual, static, and leaf. | 310 | protection, 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}, | |||
| 349 | which automatically associates files with tables in databases so that | 349 | which automatically associates files with tables in databases so that |
| 350 | tags are @emph{saved} while a buffer is not in memory. | 350 | tags are @emph{saved} while a buffer is not in memory. |
| 351 | 351 | ||
| 352 | The database and tables both also provide applicate cache information, | 352 | The database and tables both also provide applicable cache information, |
| 353 | and cache flushing system. The semanticdb search routines use caches | 353 | and cache flushing system. The semanticdb search routines use caches |
| 354 | to save datastructures that are complex to calculate. | 354 | to 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 |
| 382 | Tracks crossreferences. Cross references are needed when buffer is | 382 | Tracks crossreferences. Cross references are needed when buffer is |
| 383 | reparsed, and must alert other tables that any dependant caches may | 383 | reparsed, and must alert other tables that any dependent caches may |
| 384 | need to be flushed. References are in the form of include files. | 384 | need 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 | |||
| 421 | C++ using statements. | 421 | C++ using statements. |
| 422 | 422 | ||
| 423 | @item semanticdb-typecache.el | 423 | @item semanticdb-typecache.el |
| 424 | The typecache is part of @code{semanticdb}, but is used primarilly by | 424 | The typecache is part of @code{semanticdb}, but is used primarily by |
| 425 | the analyzer to look up datatypes and complex names. The typecache is | 425 | the analyzer to look up datatypes and complex names. The typecache is |
| 426 | bound across source files and builds a master lookup table for data | 426 | bound across source files and builds a master lookup table for data |
| 427 | type names. | 427 | type names. |
| @@ -536,7 +536,7 @@ the buffer. | |||
| 536 | 536 | ||
| 537 | @item bovine parser | 537 | @item bovine parser |
| 538 | A parser using the bovine parser generator. It is an LL parser | 538 | A parser using the bovine parser generator. It is an LL parser |
| 539 | suitible for small simple languages. | 539 | suitable 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 |
| 12 | This file documents SES: the Simple Emacs Spreadsheet. | 12 | This file documents SES: the Simple Emacs Spreadsheet. |
| 13 | 13 | ||
| 14 | Copyright @copyright{} 2002-2011 Free Software Foundation, Inc. | 14 | Copyright @copyright{} 2002-2012 Free Software Foundation, Inc. |
| 15 | 15 | ||
| 16 | @quotation | 16 | @quotation |
| 17 | Permission is granted to copy, distribute and/or modify this document | 17 | Permission is granted to copy, distribute and/or modify this document |
| @@ -446,7 +446,7 @@ list. | |||
| 446 | execute when starting SES mode for a buffer). | 446 | execute when starting SES mode for a buffer). |
| 447 | 447 | ||
| 448 | The variable @code{safe-functions} is a list of possibly-unsafe | 448 | The variable @code{safe-functions} is a list of possibly-unsafe |
| 449 | functions to be treated as safe when analysing formulas and printers. | 449 | functions 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}, |
| 451 | think about how much you trust the person who's suggesting this | 451 | think about how much you trust the person who's suggesting this |
| 452 | change. The value @code{t} turns off all anti-virus protection. A | 452 | change. 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 |
| 12 | This file documents the Emacs Sieve package, for server-side mail filtering. | 12 | This file documents the Emacs Sieve package, for server-side mail filtering. |
| 13 | 13 | ||
| 14 | Copyright @copyright{} 2001-2011 Free Software Foundation, Inc. | 14 | Copyright @copyright{} 2001-2012 Free Software Foundation, Inc. |
| 15 | 15 | ||
| 16 | @quotation | 16 | @quotation |
| 17 | Permission is granted to copy, distribute and/or modify this document | 17 | Permission 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 |
| 6 | Copyright @copyright{} 2003-2011 | 6 | Copyright @copyright{} 2003-2012 |
| 7 | Free Software Foundation, Inc. | 7 | Free 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 | |||
| 129 | machine is often disconnected from the internet. | 130 | machine 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 |
| 133 | this should be described for each mail user agent; for the default | 134 | have not configured anything, then in Emacs 24.1 and later the first |
| 134 | mail user agent the variable @code{send-mail-function} (@pxref{Mail | 135 | time you try to send a mail Emacs will ask how you want to send |
| 135 | Sending,,,emacs}) is used; for the Message and Gnus user agents the | 136 | mail. To use this library, answer @samp{smtp} when prompted. Emacs |
| 136 | variable @code{message-send-mail-function} (@pxref{Mail | 137 | then asks for the name of the SMTP server. |
| 137 | Variables,,,message}) is used. | 138 | |
| 138 | 139 | If you prefer, or if you are using a non-standard mail user agent, | |
| 139 | @example | 140 | you can configure this yourself. The normal way to do this is to set |
| 140 | ;; If you use the default mail user agent. | 141 | the variable @code{send-mail-function} (@pxref{Mail |
| 142 | Sending,,,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 |
| 149 | The default value for this variable is @code{sendmail-query-once}, | ||
| 150 | which interactively asks how you want to send mail. | ||
| 151 | |||
| 152 | Your mail user agent might use a different variable for this purpose. | ||
| 153 | It should inherit from @code{send-mail-function}, but if it does not, | ||
| 154 | or if you prefer, you can set that variable directly. Consult your | ||
| 155 | mail 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 |
| 147 | to use. Your system administrator should provide you with this | 159 | to use. Your system administrator or mail service provider should |
| 148 | information, but often it is the same as the server you receive mail | 160 | supply this information. Often it is some variant of the server you |
| 149 | from. | 161 | receive mail from. If your email address is |
| 162 | @samp{yourname@@example.com}, then the name of the SMTP server is | ||
| 163 | may 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 | ||
| 220 | Most SMTP servers require clients to authenticate themselves before | ||
| 221 | they are allowed to send mail. Authentication usually involves | ||
| 222 | supplying a user name and password. | ||
| 223 | |||
| 224 | If you have not configured anything, then the first time you try to | ||
| 225 | send mail via a server, Emacs (version 24.1 and later) prompts you | ||
| 226 | for the user name and password to use, and then offers to save the | ||
| 227 | information. By default, Emacs stores authentication information in | ||
| 228 | a file @file{~/.authinfo}. | ||
| 229 | |||
| 230 | @cindex authinfo | ||
| 231 | The basic format of the @file{~/.authinfo} file is one line for each | ||
| 232 | set of credentials. Each line consists of pairs of variables and | ||
| 233 | values. A simple example would be: | ||
| 234 | |||
| 235 | @smallexample | ||
| 236 | machine mail.example.org port 25 login myuser password mypassword | ||
| 237 | @end smallexample | ||
| 238 | |||
| 239 | @noindent | ||
| 240 | This specifies that when using the SMTP server called @samp{mail.example.org} | ||
| 241 | on port 25, Emacs should send the user name @samp{myuser} and the | ||
| 242 | password @samp{mypassword}. Either or both of the login and password | ||
| 243 | fields may be absent, in which case Emacs prompts for the information | ||
| 244 | when 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 | ||
| 249 | searches the @file{~/.authinfo} file for a matching entry. If an | ||
| 250 | entry is found, the authentication process is invoked and the | ||
| 251 | credentials are used. If the variable @code{smtpmail-smtp-user} is | ||
| 252 | set to a non-@code{nil} value, then only entries for that user are | ||
| 253 | considered. For more information on the @file{~/.authinfo} | ||
| 254 | file, @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 |
| 260 | The process by which the SMTP library authenticates you to the server | ||
| 261 | is known as ``Simple Authentication and Security Layer'' (SASL). | ||
| 262 | There are various SASL mechanisms, and this library supports three of | ||
| 263 | them: CRAM-MD5, PLAIN, and LOGIN. It tries each of them, in that order, | ||
| 264 | until one succeeds. The first uses a form of encryption to obscure | ||
| 265 | your 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 |
| 210 | Many environments require SMTP clients to authenticate themselves | 274 | For greater security, you can encrypt your connection to the SMTP |
| 211 | before they are allowed to route mail via a server. The two following | 275 | server. If this is to work, both Emacs and the server must support it. |
| 212 | variables contains the authentication information needed for this. | 276 | |
| 213 | 277 | The SMTP library supports the ``Transport Layer Security'' (TLS), and | |
| 214 | The first variable, @code{smtpmail-auth-credentials}, instructs the | 278 | the older ``Secure Sockets Layer'' (SSL) encryption mechanisms. |
| 215 | SMTP library to use a SASL authentication step, currently only the | 279 | It also supports STARTTLS, which is a variant of TLS in which the |
| 216 | CRAM-MD5 and LOGIN mechanisms are supported and will be selected in | 280 | initial connection to the server is made in plain text, requesting a |
| 217 | that order if the server support both. | 281 | switch to an encrypted channel for the rest of the process. |
| 218 | 282 | ||
| 219 | The second variable, @code{smtpmail-starttls-credentials}, instructs | 283 | @vindex smtpmail-stream-type |
| 220 | the SMTP library to connect to the server using STARTTLS. This means | 284 | The variable @code{smtpmail-stream-type} controls what form of |
| 221 | the protocol exchange may be integrity protected and confidential by | 285 | connection the SMTP library uses. The default value is @code{nil}, |
| 222 | using the Transport Layer Security (TLS) protocol, and optionally also | 286 | which means to use a plain connection, but try to switch to a STARTTLS |
| 223 | authentication of the client and server. | 287 | encrypted connection if the server supports it. Other possible values |
| 224 | 288 | are: @code{starttls} - insist on STARTTLS; @code{ssl} - use TLS/SSL; | |
| 225 | TLS is a security protocol that is also known as SSL, although | 289 | and @code{plain} - no encryption. |
| 226 | strictly speaking, SSL is an older variant of TLS. TLS is backwards | 290 | |
| 227 | compatible with SSL. In most mundane situations, the two terms are | 291 | Use of any form of TLS/SSL requires support in Emacs. You can either |
| 228 | equivalent. | 292 | use 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 | |
| 230 | The TLS feature uses the elisp package @file{starttls.el} (see it for | 294 | @footnote{@url{http://www.gnu.org/software/gnutls/}} library. |
| 231 | more information on customization), which in turn require that at | 295 | If your Emacs has GnuTLS support built-in, the function |
| 232 | least one of the following external tools are installed: | 296 | @code{gnutls-available-p} is defined and returns non-@code{nil}. |
| 297 | Otherwise, you must use the @file{starttls.el} library (see that file for | ||
| 298 | more information on customization options, etc.). The Lisp library | ||
| 299 | requires one of the following external tools to be installed: | ||
| 233 | 300 | ||
| 234 | @enumerate | 301 | @enumerate |
| 235 | @item | 302 | @item |
| 236 | The GNUTLS command line tool @samp{gnutls-cli}, you can get it from | 303 | The 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 |
| 238 | tool, mainly because it can verify the server certificates. | 305 | tool, mainly because it can verify server certificates. |
| 239 | 306 | ||
| 240 | @item | 307 | @item |
| 241 | The @samp{starttls} external program, you can get it from | 308 | The @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 | ||
| 245 | It is not uncommon to use both these mechanisms, e.g., to use STARTTLS | 312 | @cindex certificates |
| 246 | to achieve integrity and confidentiality and then use SASL for client | 313 | @cindex keys |
| 247 | authentication. | 314 | The SMTP server may also request that you verify your identity by |
| 315 | sending a certificate and the associated encryption key to the server. | ||
| 316 | If 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 | 319 | machine 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 | ||
| 253 | hostname, port, username and password tuples. When the SMTP library | ||
| 254 | connects to a host on a certain port, this variable is searched to | ||
| 255 | find a matching entry for that hostname and port. If an entry is | ||
| 256 | found, the authentication process is invoked and the credentials are | ||
| 257 | used. | ||
| 258 | |||
| 259 | The hostname field follows the same format as | ||
| 260 | @code{smtpmail-smtp-server} (i.e., a string) and the port field the | ||
| 261 | same format as @code{smtpmail-smtp-service} (i.e., a string or an | ||
| 262 | integer). The username and password fields, which either can be | ||
| 263 | @code{nil} to indicate that the user is prompted for the value | ||
| 264 | interactively, should be strings with the username and password, | ||
| 265 | respectively, information that is normally provided by system | ||
| 266 | administrators. | ||
| 267 | |||
| 268 | @item smtpmail-starttls-credentials | ||
| 269 | @vindex smtpmail-starttls-credentials | ||
| 270 | The variable @code{smtpmail-starttls-credentials} contains a list of | ||
| 271 | tuples with hostname, port, name of file containing client key, and | ||
| 272 | name of file containing client certificate. The processing is similar | ||
| 273 | to 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 | ||
| 277 | The 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 |
| 279 | server name (@code{smtpmail-smtp-server}) is @var{hostname}, the | 324 | prior to Emacs 24.1.) |
| 280 | server port (@code{smtpmail-smtp-service}) is @var{port}, and the | ||
| 281 | username and password are @var{username} and @var{password} | ||
| 282 | respectively. | ||
| 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 |
| 7 | Copyright @copyright{} 1999-2011 Free Software Foundation, Inc. | 7 | Copyright @copyright{} 1999-2012 Free Software Foundation, Inc. |
| 8 | 8 | ||
| 9 | @quotation | 9 | @quotation |
| 10 | Permission is granted to copy, distribute and/or modify this document | 10 | Permission 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 |
| 40 | Copyright @copyright{} 1999-2011 Free Software Foundation, Inc. | 40 | Copyright @copyright{} 1999-2012 Free Software Foundation, Inc. |
| 41 | 41 | ||
| 42 | @quotation | 42 | @quotation |
| 43 | Permission is granted to copy, distribute and/or modify this document | 43 | Permission 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 |
| 530 | Loading or saving a remote file requires that the content of the file | 530 | Loading or saving a remote file requires that the content of the file |
| 531 | be transfered between the two machines. The content of the file can | 531 | be transferred between the two machines. The content of the file can |
| 532 | be transfered using one of two methods: the @dfn{inline method} over | 532 | be transferred using one of two methods: the @dfn{inline method} over |
| 533 | the same connection used to log in to the remote machine, or the | 533 | the 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 |
| 535 | program such as @command{rcp}, @command{scp} or @command{rsync}. | 535 | program 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 | ||
| 869 | Before you use this method, you shall check whether your @option{ssh} | 869 | Before you use this method, you should check whether your @option{ssh} |
| 870 | implementation does support this option. Try from the command line | 870 | implementation supports this option. Try from the command line |
| 871 | 871 | ||
| 872 | @example | 872 | @example |
| 873 | ssh localhost -o ControlMaster=yes | 873 | ssh localhost -o ControlMaster=yes /bin/true |
| 874 | @end example | 874 | @end example |
| 875 | 875 | ||
| 876 | If that command succeeds silently, then you can use @option{scpc}; but | ||
| 877 | if it fails like | ||
| 878 | |||
| 879 | @example | ||
| 880 | command-line: line 0: Bad configuration option: ControlMaster | ||
| 881 | @end example | ||
| 882 | |||
| 883 | then you cannot use it. | ||
| 884 | |||
| 876 | This method supports the @samp{-p} argument. | 885 | This method supports the @samp{-p} argument. |
| 877 | 886 | ||
| 878 | 887 | ||
| @@ -1575,7 +1584,7 @@ password handling. Consider @command{ssh-agent} for @option{ssh}-like | |||
| 1575 | methods, or @command{pageant} for @option{plink}-like methods. | 1584 | methods, or @command{pageant} for @option{plink}-like methods. |
| 1576 | 1585 | ||
| 1577 | However, if you cannot apply such native password handling, | 1586 | However, 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 | ||
| 3183 | This shortens the file openening command to @kbd{C-x C-f /xy | 3192 | This 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 |
| 3185 | name, because the expansion happens after entering the file name only. | 3194 | name, because the expansion happens after entering the file name only. |
| 3186 | 3195 | ||
| @@ -3573,7 +3582,7 @@ The verbosity levels are | |||
| 3573 | 3582 | ||
| 3574 | When @code{tramp-verbose} is greater than or equal to 4, the messages | 3583 | When @code{tramp-verbose} is greater than or equal to 4, the messages |
| 3575 | are also written into a @value{tramp} debug buffer. This debug buffer | 3584 | are also written into a @value{tramp} debug buffer. This debug buffer |
| 3576 | is useful for analysing problems; sending a @value{tramp} bug report | 3585 | is useful for analyzing problems; sending a @value{tramp} bug report |
| 3577 | should be done with @code{tramp-verbose} set to a verbosity level of at | 3586 | should be done with @code{tramp-verbose} set to a verbosity level of at |
| 3578 | least 6 (@pxref{Bug Reports}). | 3587 | least 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 |
| 21 | This file documents the Emacs Lisp URL loading package. | 21 | This file documents the Emacs Lisp URL loading package. |
| 22 | 22 | ||
| 23 | Copyright @copyright{} 1993-1999, 2002, 2004-2011 Free Software Foundation, Inc. | 23 | Copyright @copyright{} 1993-1999, 2002, 2004-2012 Free Software Foundation, Inc. |
| 24 | 24 | ||
| 25 | @quotation | 25 | @quotation |
| 26 | Permission is granted to copy, distribute and/or modify this document | 26 | Permission is granted to copy, distribute and/or modify this document |
| @@ -96,7 +96,7 @@ where @samp{@r{[}} and @samp{@r{]}} delimit optional parts. | |||
| 96 | but you should beware of the security risks of sending cleartext | 96 | but you should beware of the security risks of sending cleartext |
| 97 | passwords. @var{hostname} may be a domain name or a dotted decimal | 97 | passwords. @var{hostname} may be a domain name or a dotted decimal |
| 98 | address. If the @samp{:@var{port}} is omitted then the library will | 98 | address. If the @samp{:@var{port}} is omitted then the library will |
| 99 | use the `well known' port for that service when accessing URLs. With | 99 | use the ``well known'' port for that service when accessing URLs. With |
| 100 | the possible exception of @code{telnet}, it is rare for ports to be | 100 | the possible exception of @code{telnet}, it is rare for ports to be |
| 101 | specified, and it is possible using a non-standard port may have | 101 | specified, and it is possible using a non-standard port may have |
| 102 | undesired consequences if a different service is listening on that | 102 | undesired 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 |
| 146 | is the port number associated with it, or @code{nil}; | 146 | is the port number associated with it, or @code{nil}; |
| 147 | @item file | 147 | @item file |
| 148 | is the `file' part of it, or @code{nil}. This doesn't necessarily | 148 | is the ``file'' part of it, or @code{nil}. This doesn't necessarily |
| 149 | actually refer to a file; | 149 | actually refer to a file; |
| 150 | @item target | 150 | @item target |
| 151 | is the target part, or @code{nil}; | 151 | is the target part, or @code{nil}; |
| @@ -201,13 +201,25 @@ data. @var{url} is either a string or a parsed URL structure. Return | |||
| 201 | info, or mailto URLs that need no further processing). | 201 | info, 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 |
| 205 | Retrieve @var{url} asynchronously and call @var{callback} with args | 205 | Retrieve @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 |
| 207 | has been completely retrieved, with the current buffer containing the | 207 | has been completely retrieved, with the current buffer containing the |
| 208 | object and any MIME headers associated with it. @var{url} is either a | 208 | object and any MIME headers associated with it. @var{url} is either a |
| 209 | string or a parsed URL structure. Returns the buffer @var{url} will | 209 | string or a parsed URL structure. Returns the buffer @var{url} will |
| 210 | load into, or @code{nil} if the process has already completed. | 210 | load into, or @code{nil} if the process has already completed. |
| 211 | If the optional argument @var{silent} is non-@code{nil}, suppress | ||
| 212 | progress messages. If the optional argument @var{no-cookies} is | ||
| 213 | non-@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 | ||
| 219 | This acts like the @code{url-retrieve} function, but with limits on | ||
| 220 | the degree of parallelism. The option @code{url-queue-parallel-processes} | ||
| 221 | controls 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 |
| 461 | otherwise a @var{header} header field is created with @var{contents} | 473 | otherwise a @var{header} header field is created with @var{contents} |
| 462 | as its contents. Note that the URL library does not consider any | 474 | as its contents. Note that the URL library does not consider any |
| 463 | headers `dangerous' so you should check them before sending the | 475 | headers ``dangerous'' so you should check them before sending the |
| 464 | message. | 476 | message. |
| 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. | |||
| 997 | In some circumstances it is desirable to suppress making network | 1009 | In some circumstances it is desirable to suppress making network |
| 998 | connections. A typical case is when rendering HTML in a mail user | 1010 | connections. A typical case is when rendering HTML in a mail user |
| 999 | agent, when external URLs should not be activated, particularly to | 1011 | agent, when external URLs should not be activated, particularly to |
| 1000 | avoid `bugs' which `call home' by fetch single-pixel images and the | 1012 | avoid ``bugs'' which ``call home'' by fetch single-pixel images and the |
| 1001 | like. To arrange this, bind the following variable for the duration | 1013 | like. To arrange this, bind the following variable for the duration |
| 1002 | of such processing. | 1014 | of such processing. |
| 1003 | 1015 | ||
| @@ -1050,7 +1062,7 @@ automatically via @code{url-do-setup} when it is configured to be on. | |||
| 1050 | Note that the size of the history list is currently not limited. | 1062 | Note 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 |
| 1053 | The history `list' is actually a hash table, | 1065 | The 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 |
| 1055 | strings. The times are in the format returned by @code{current-time}. | 1067 | strings. 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 |
| 6 | Copyright @copyright{} 1987, 2001-2011 Free Software Foundation, Inc. | 6 | Copyright @copyright{} 1987, 2001-2012 Free Software Foundation, Inc. |
| 7 | 7 | ||
| 8 | @quotation | 8 | @quotation |
| 9 | Permission is granted to copy, distribute and/or modify this document | 9 | Permission 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 |
| 1706 | before @kbd{/} and the resulting @var{pat} becomes the actual search | 1706 | before @kbd{/} and the resulting @var{pat} becomes the actual search |
| 1707 | pattern. Emacs provides a different and richer class or regular | 1707 | pattern. Emacs provides a different and richer class or regular |
| 1708 | expressions than Vi/Ex, and VIP uses Emacs' regular expressions. See GNU | 1708 | expressions than Vi/Ex, and VIP uses Emacs's regular expressions. See GNU |
| 1709 | Emacs Manual for details of regular expressions. | 1709 | Emacs Manual for details of regular expressions. |
| 1710 | 1710 | ||
| 1711 | Several Ex commands can be entered in a line by separating them by a pipe | 1711 | Several 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 |
| 10 | Copyright @copyright{} 1995-1997, 2001-2011 Free Software Foundation, Inc. | 10 | Copyright @copyright{} 1995-1997, 2001-2012 Free Software Foundation, Inc. |
| 11 | 11 | ||
| 12 | @quotation | 12 | @quotation |
| 13 | Permission is granted to copy, distribute and/or modify this document | 13 | Permission 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}, | |||
| 687 | which is similar to Vi's @kbd{p}. However, unlike @kbd{p}, @kbd{C-y} can be | 687 | which is similar to Vi's @kbd{p}. However, unlike @kbd{p}, @kbd{C-y} can be |
| 688 | used in Insert state of Viper. Emacs also has a kill ring where it keeps | 688 | used in Insert state of Viper. Emacs also has a kill ring where it keeps |
| 689 | pieces of text you deleted while editing buffers. The command @kbd{M-y} is | 689 | pieces of text you deleted while editing buffers. The command @kbd{M-y} is |
| 690 | used to delete the text previously put back by Emacs' @kbd{C-y} or by Vi's | 690 | used 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 | ||
| 693 | This works both in Vi and Insert states. | 693 | This works both in Vi and Insert states. |
| @@ -1289,7 +1289,7 @@ the following example: | |||
| 1289 | The above discussion of the meaning of Viper's words concerns only Viper's | 1289 | The above discussion of the meaning of Viper's words concerns only Viper's |
| 1290 | movement commands. In regular expressions, words remain the same as in | 1290 | movement commands. In regular expressions, words remain the same as in |
| 1291 | Emacs. That is, the expressions @code{\w}, @code{\>}, @code{\<}, etc., use | 1291 | Emacs. That is, the expressions @code{\w}, @code{\>}, @code{\<}, etc., use |
| 1292 | Emacs' idea of what is a word, and they don't look into the value of | 1292 | Emacs's idea of what is a word, and they don't look into the value of |
| 1293 | variable @code{viper-syntax-preference}. This is because Viper doesn't change | 1293 | variable @code{viper-syntax-preference}. This is because Viper doesn't change |
| 1294 | syntax tables in fear of upsetting the various major modes that set these | 1294 | syntax tables in fear of upsetting the various major modes that set these |
| 1295 | tables. | 1295 | tables. |
| @@ -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 |
| 2505 | These faces control the appearance of the minibuffer text in the | 2505 | These faces control the appearance of the minibuffer text in the |
| 2506 | corresponding Viper states. You can change the appearance of these faces | 2506 | corresponding Viper states. You can change the appearance of these faces |
| 2507 | through Emacs' customization widget, which is accessible through the | 2507 | through Emacs's customization widget, which is accessible through the |
| 2508 | menubar. | 2508 | menubar. |
| 2509 | 2509 | ||
| 2510 | Viper is located in this widget under the @emph{Emulations} customization | 2510 | Viper is located in this widget under the @emph{Emulations} customization |
| @@ -3205,7 +3205,7 @@ in the appropriate major mode hooks. | |||
| 3205 | 3205 | ||
| 3206 | The above discussion concerns only the movement commands. In regular | 3206 | The above discussion concerns only the movement commands. In regular |
| 3207 | expressions, words remain the same as in Emacs. That is, the expressions | 3207 | expressions, 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, |
| 3209 | and they don't look into the value of variable | 3209 | and 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 |
| 3211 | syntax tables in order to not thwart the various major modes that set these | 3211 | syntax 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 |
| 11 | Copyright @copyright{} 2000-2011 Free Software Foundation, Inc. | 11 | Copyright @copyright{} 2000-2012 Free Software Foundation, Inc. |
| 12 | 12 | ||
| 13 | @quotation | 13 | @quotation |
| 14 | Permission is granted to copy, distribute and/or modify this document | 14 | Permission 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 |
| 453 | A 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} |
| 456 | are bound to @code{widget-button-press} and | 455 | are 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 @@ | |||
| 18 | This file documents WoMan: A program to browse Unix manual pages `W.O. | 18 | This file documents WoMan: A program to browse Unix manual pages `W.O. |
| 19 | (without) man'. | 19 | (without) man'. |
| 20 | 20 | ||
| 21 | Copyright @copyright{} 2001-2011 Free Software Foundation, Inc. | 21 | Copyright @copyright{} 2001-2012 Free Software Foundation, Inc. |
| 22 | 22 | ||
| 23 | @quotation | 23 | @quotation |
| 24 | Permission is granted to copy, distribute and/or modify this document | 24 | Permission 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 | ||