Mercurial > emacs
comparison man/calc.texi @ 90133:4da4a09e8b1b
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-31
Merge from emacs--cvs-trunk--0
Patches applied:
* emacs--cvs-trunk--0 (patch 206-222)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 45-52)
- Update from CVS
- Update from CVS: texi Makefile.in CVS keyw cruft
- Update from CVS: ChangeLog tweaks
author | Miles Bader <miles@gnu.org> |
---|---|
date | Thu, 31 Mar 2005 09:58:14 +0000 |
parents | 13796b0653c7 c6df9dde5f1d |
children | 7a3341d65a12 |
comparison
equal
deleted
inserted
replaced
90132:4080fe8b4f0f | 90133:4da4a09e8b1b |
---|---|
81 @end iftex | 81 @end iftex |
82 | 82 |
83 @copying | 83 @copying |
84 This file documents Calc, the GNU Emacs calculator. | 84 This file documents Calc, the GNU Emacs calculator. |
85 | 85 |
86 Copyright (C) 1990, 1991, 2001, 2002 Free Software Foundation, Inc. | 86 Copyright (C) 1990, 1991, 2001, 2002, 2005 Free Software Foundation, Inc. |
87 | 87 |
88 @quotation | 88 @quotation |
89 Permission is granted to copy, distribute and/or modify this document | 89 Permission is granted to copy, distribute and/or modify this document |
90 under the terms of the GNU Free Documentation License, Version 1.1 or | 90 under the terms of the GNU Free Documentation License, Version 1.1 or |
91 any later version published by the Free Software Foundation; with the | 91 any later version published by the Free Software Foundation; with the |
109 @center @titlefont{Calc Manual} | 109 @center @titlefont{Calc Manual} |
110 @sp 4 | 110 @sp 4 |
111 @center GNU Emacs Calc Version 2.02g | 111 @center GNU Emacs Calc Version 2.02g |
112 @c [volume] | 112 @c [volume] |
113 @sp 1 | 113 @sp 1 |
114 @center January 2002 | 114 @center March 2005 |
115 @sp 5 | 115 @sp 5 |
116 @center Dave Gillespie | 116 @center Dave Gillespie |
117 @center daveg@@synaptics.com | 117 @center daveg@@synaptics.com |
118 @page | 118 @page |
119 | 119 |
120 @vskip 0pt plus 1filll | 120 @vskip 0pt plus 1filll |
121 Copyright @copyright{} 1990, 1991, 2001, 2002 Free Software Foundation, Inc. | 121 Copyright @copyright{} 1990, 1991, 2001, 2002, 2005 |
122 Free Software Foundation, Inc. | |
122 @insertcopying | 123 @insertcopying |
123 @end titlepage | 124 @end titlepage |
124 | 125 |
125 @c [begin] | 126 @c [begin] |
126 @ifinfo | 127 @ifinfo |
474 Calc tries to include a little something for everyone; as a result it is | 475 Calc tries to include a little something for everyone; as a result it is |
475 large and might be intimidating to the first-time user. If you plan to | 476 large and might be intimidating to the first-time user. If you plan to |
476 use Calc only as a traditional desk calculator, all you really need to | 477 use Calc only as a traditional desk calculator, all you really need to |
477 read is the ``Getting Started'' chapter of this manual and possibly the | 478 read is the ``Getting Started'' chapter of this manual and possibly the |
478 first few sections of the tutorial. As you become more comfortable with | 479 first few sections of the tutorial. As you become more comfortable with |
479 the program you can learn its additional features. In terms of efficiency, | 480 the program you can learn its additional features. Calc does not |
480 scope and depth, Calc cannot replace a powerful tool like Mathematica. | 481 have the scope and depth of a fully-functional symbolic math package, |
481 But Calc has the advantages of convenience, portability, and availability | 482 but Calc has the advantages of convenience, portability, and freedom. |
482 of the source code. And, of course, it's free! | |
483 | 483 |
484 @node About This Manual, Notations Used in This Manual, What is Calc, Getting Started | 484 @node About This Manual, Notations Used in This Manual, What is Calc, Getting Started |
485 @section About This Manual | 485 @section About This Manual |
486 | 486 |
487 @noindent | 487 @noindent |
544 or to the Summary by pressing @kbd{h s} or @kbd{M-# s}. Within Calc, | 544 or to the Summary by pressing @kbd{h s} or @kbd{M-# s}. Within Calc, |
545 you can also go to the part of the manual describing any Calc key, | 545 you can also go to the part of the manual describing any Calc key, |
546 function, or variable using @w{@kbd{h k}}, @kbd{h f}, or @kbd{h v}, | 546 function, or variable using @w{@kbd{h k}}, @kbd{h f}, or @kbd{h v}, |
547 respectively. @xref{Help Commands}. | 547 respectively. @xref{Help Commands}. |
548 | 548 |
549 Printed copies of this manual are also available from the Free Software | 549 The Calc manual can be printed, but because the manual is so large, you |
550 Foundation. | 550 should only make a printed copy if you really need it. To print the |
551 manual, you will need the @TeX{} typesetting program (this is a free | |
552 program by Donald Knuth at Stanford University) as well as the | |
553 @file{texindex} program and @file{texinfo.tex} file, both of which can | |
554 be obtained from the FSF as part of the @code{texinfo} package. | |
555 To print the Calc manual in one huge tome, you will need the | |
556 source code to this manual, @file{calc.texi}, available as part of the | |
557 Emacs source. Once you have this file, type @kbd{texi2dvi calc.texi}. | |
558 Alternatively, change to the @file{man} subdirectory of the Emacs | |
559 source distribution, and type @kbd{make calc.dvi}. (Don't worry if you | |
560 get some ``overfull box'' warnings while @TeX{} runs.) | |
561 The result will be a device-independent output file called | |
562 @file{calc.dvi}, which you must print in whatever way is right | |
563 for your system. On many systems, the command is | |
564 | |
565 @example | |
566 lpr -d calc.dvi | |
567 @end example | |
568 | |
569 @noindent | |
570 or | |
571 | |
572 @example | |
573 dvips calc.dvi | |
574 @end example | |
575 | |
576 @c Printed copies of this manual are also available from the Free Software | |
577 @c Foundation. | |
551 | 578 |
552 @node Notations Used in This Manual, Demonstration of Calc, About This Manual, Getting Started | 579 @node Notations Used in This Manual, Demonstration of Calc, About This Manual, Getting Started |
553 @section Notations Used in This Manual | 580 @section Notations Used in This Manual |
554 | 581 |
555 @noindent | 582 @noindent |
1363 to support fractions as well as floats. All these features inspired me | 1390 to support fractions as well as floats. All these features inspired me |
1364 to look around for other data types that might be worth having. | 1391 to look around for other data types that might be worth having. |
1365 | 1392 |
1366 Around this time, my friend Rick Koshi showed me his nifty new HP-28 | 1393 Around this time, my friend Rick Koshi showed me his nifty new HP-28 |
1367 calculator. It allowed the user to manipulate formulas as well as | 1394 calculator. It allowed the user to manipulate formulas as well as |
1368 numerical quantities, and it could also operate on matrices. I decided | 1395 numerical quantities, and it could also operate on matrices. I |
1369 that these would be good for Calc to have, too. And once things had | 1396 decided that these would be good for Calc to have, too. And once |
1370 gone this far, I figured I might as well take a look at serious algebra | 1397 things had gone this far, I figured I might as well take a look at |
1371 systems like Mathematica, Macsyma, and Maple for further ideas. Since | 1398 serious algebra systems for further ideas. Since these systems did |
1372 these systems did far more than I could ever hope to implement, I decided | 1399 far more than I could ever hope to implement, I decided to focus on |
1373 to focus on rewrite rules and other programming features so that users | 1400 rewrite rules and other programming features so that users could |
1374 could implement what they needed for themselves. | 1401 implement what they needed for themselves. |
1375 | 1402 |
1376 Rick complained that matrices were hard to read, so I put in code to | 1403 Rick complained that matrices were hard to read, so I put in code to |
1377 format them in a 2D style. Once these routines were in place, Big mode | 1404 format them in a 2D style. Once these routines were in place, Big mode |
1378 was obligatory. Gee, what other language modes would be useful? | 1405 was obligatory. Gee, what other language modes would be useful? |
1379 | 1406 |
1410 @cindex Numerical Recipes | 1437 @cindex Numerical Recipes |
1411 @c Should these be expanded into more complete references? | 1438 @c Should these be expanded into more complete references? |
1412 Among the books used in the development of Calc were Knuth's @emph{Art | 1439 Among the books used in the development of Calc were Knuth's @emph{Art |
1413 of Computer Programming} (especially volume II, @emph{Seminumerical | 1440 of Computer Programming} (especially volume II, @emph{Seminumerical |
1414 Algorithms}); @emph{Numerical Recipes} by Press, Flannery, Teukolsky, | 1441 Algorithms}); @emph{Numerical Recipes} by Press, Flannery, Teukolsky, |
1415 and Vetterling; Bevington's @emph{Data Reduction and Error Analysis for | 1442 and Vetterling; Bevington's @emph{Data Reduction and Error Analysis |
1416 the Physical Sciences}; @emph{Concrete Mathematics} by Graham, Knuth, | 1443 for the Physical Sciences}; @emph{Concrete Mathematics} by Graham, |
1417 and Patashnik; Steele's @emph{Common Lisp, the Language}; the @emph{CRC | 1444 Knuth, and Patashnik; Steele's @emph{Common Lisp, the Language}; the |
1418 Standard Math Tables} (William H. Beyer, ed.); and Abramowitz and | 1445 @emph{CRC Standard Math Tables} (William H. Beyer, ed.); and |
1419 Stegun's venerable @emph{Handbook of Mathematical Functions}. I | 1446 Abramowitz and Stegun's venerable @emph{Handbook of Mathematical |
1420 consulted the user's manuals for the HP-28 and HP-48 calculators, as | 1447 Functions}. Also, of course, Calc could not have been written without |
1421 well as for the programs Mathematica, SMP, Macsyma, Maple, MathCAD, | 1448 the excellent @emph{GNU Emacs Lisp Reference Manual}, by Bil Lewis and |
1422 Gnuplot, and others. Also, of course, Calc could not have been written | 1449 Dan LaLiberte. |
1423 without the excellent @emph{GNU Emacs Lisp Reference Manual}, by Bil | |
1424 Lewis and Dan LaLiberte. | |
1425 | 1450 |
1426 Final thanks go to Richard Stallman, without whose fine implementations | 1451 Final thanks go to Richard Stallman, without whose fine implementations |
1427 of the Emacs editor, language, and environment, Calc would have been | 1452 of the Emacs editor, language, and environment, Calc would have been |
1428 finished in two weeks. | 1453 finished in two weeks. |
1429 | 1454 |
1501 does not cover everything in the Calculator, but it touches on most | 1526 does not cover everything in the Calculator, but it touches on most |
1502 general areas. | 1527 general areas. |
1503 | 1528 |
1504 @ifinfo | 1529 @ifinfo |
1505 You may wish to print out a copy of the Calc Summary and keep notes on | 1530 You may wish to print out a copy of the Calc Summary and keep notes on |
1506 it as you learn Calc. @xref{Installation}, to see how to make a printed | 1531 it as you learn Calc. @xref{About This Manual}, to see how to make a |
1507 summary. @xref{Summary}. | 1532 printed summary. @xref{Summary}. |
1508 @end ifinfo | 1533 @end ifinfo |
1509 @iftex | 1534 @iftex |
1510 The Calc Summary at the end of the reference manual includes some blank | 1535 The Calc Summary at the end of the reference manual includes some blank |
1511 space for your own use. You may wish to keep notes there as you learn | 1536 space for your own use. You may wish to keep notes there as you learn |
1512 Calc. | 1537 Calc. |
5599 another good reason to store your rules in variables rather than | 5624 another good reason to store your rules in variables rather than |
5600 entering them on the fly. | 5625 entering them on the fly. |
5601 | 5626 |
5602 (@bullet{}) @strong{Exercise 1.} Type @kbd{m s} to get Symbolic | 5627 (@bullet{}) @strong{Exercise 1.} Type @kbd{m s} to get Symbolic |
5603 mode, then enter the formula @samp{@w{(2 + sqrt(2))} / @w{(1 + sqrt(2))}}. | 5628 mode, then enter the formula @samp{@w{(2 + sqrt(2))} / @w{(1 + sqrt(2))}}. |
5604 Using a rewrite rule, simplify this formula by multiplying both | 5629 Using a rewrite rule, simplify this formula by multiplying the top and |
5605 sides by the conjugate @w{@samp{1 - sqrt(2)}}. The result will have | 5630 bottom by the conjugate @w{@samp{1 - sqrt(2)}}. The result will have |
5606 to be expanded by the distributive law; do this with another | 5631 to be expanded by the distributive law; do this with another |
5607 rewrite. @xref{Rewrites Answer 1, 1}. (@bullet{}) | 5632 rewrite. @xref{Rewrites Answer 1, 1}. (@bullet{}) |
5608 | 5633 |
5609 The @kbd{a r} command can also accept a vector of rewrite rules, or | 5634 The @kbd{a r} command can also accept a vector of rewrite rules, or |
5610 a variable containing a vector of rules. | 5635 a variable containing a vector of rules. |
11292 @texline @math{0 \le a < M}. | 11317 @texline @math{0 \le a < M}. |
11293 @infoline @expr{0 <= a < @var{M}}. | 11318 @infoline @expr{0 <= a < @var{M}}. |
11294 In many applications @expr{a} and @expr{M} will be | 11319 In many applications @expr{a} and @expr{M} will be |
11295 integers but this is not required. | 11320 integers but this is not required. |
11296 | 11321 |
11322 @ignore | |
11323 @mindex M | |
11324 @end ignore | |
11325 @kindex M (modulo forms) | |
11326 @ignore | |
11327 @mindex mod | |
11328 @end ignore | |
11329 @tindex mod (operator) | |
11330 To create a modulo form during numeric entry, press the shift-@kbd{M} | |
11331 key to enter the word @samp{mod}. As a special convenience, pressing | |
11332 shift-@kbd{M} a second time automatically enters the value of @expr{M} | |
11333 that was most recently used before. During algebraic entry, either | |
11334 type @samp{mod} by hand or press @kbd{M-m} (that's @kbd{@key{META}-m}). | |
11335 Once again, pressing this a second time enters the current modulo. | |
11336 | |
11297 Modulo forms are not to be confused with the modulo operator @samp{%}. | 11337 Modulo forms are not to be confused with the modulo operator @samp{%}. |
11298 The expression @samp{27 % 10} means to compute 27 modulo 10 to produce | 11338 The expression @samp{27 % 10} means to compute 27 modulo 10 to produce |
11299 the result 7. Further computations treat this 7 as just a regular integer. | 11339 the result 7. Further computations treat this 7 as just a regular integer. |
11300 The expression @samp{27 mod 10} produces the result @samp{7 mod 10}; | 11340 The expression @samp{27 mod 10} produces the result @samp{7 mod 10}; |
11301 further computations with this value are again reduced modulo 10 so that | 11341 further computations with this value are again reduced modulo 10 so that |
11324 @texline @math{\sqrt a} | 11364 @texline @math{\sqrt a} |
11325 @infoline @expr{sqrt(a)} | 11365 @infoline @expr{sqrt(a)} |
11326 modulo @expr{M}, this is not a useful definition from the | 11366 modulo @expr{M}, this is not a useful definition from the |
11327 number-theoretical point of view.) | 11367 number-theoretical point of view.) |
11328 | 11368 |
11329 @ignore | |
11330 @mindex M | |
11331 @end ignore | |
11332 @kindex M (modulo forms) | |
11333 @ignore | |
11334 @mindex mod | |
11335 @end ignore | |
11336 @tindex mod (operator) | |
11337 To create a modulo form during numeric entry, press the shift-@kbd{M} | |
11338 key to enter the word @samp{mod}. As a special convenience, pressing | |
11339 shift-@kbd{M} a second time automatically enters the value of @expr{M} | |
11340 that was most recently used before. During algebraic entry, either | |
11341 type @samp{mod} by hand or press @kbd{M-m} (that's @kbd{@key{META}-m}). | |
11342 Once again, pressing this a second time enters the current modulo. | |
11343 | |
11344 You can also use @kbd{v p} and @kbd{%} to modify modulo forms. | |
11345 @xref{Building Vectors}. @xref{Basic Arithmetic}. | |
11346 | |
11347 It is possible to mix HMS forms and modulo forms. For example, an | 11369 It is possible to mix HMS forms and modulo forms. For example, an |
11348 HMS form modulo 24 could be used to manipulate clock times; an HMS | 11370 HMS form modulo 24 could be used to manipulate clock times; an HMS |
11349 form modulo 360 would be suitable for angles. Making the modulo @expr{M} | 11371 form modulo 360 would be suitable for angles. Making the modulo @expr{M} |
11350 also be an HMS form eliminates troubles that would arise if the angular | 11372 also be an HMS form eliminates troubles that would arise if the angular |
11351 mode were inadvertently set to Radians, in which case | 11373 mode were inadvertently set to Radians, in which case |
11353 24 radians! | 11375 24 radians! |
11354 | 11376 |
11355 Modulo forms cannot have variables or formulas for components. If you | 11377 Modulo forms cannot have variables or formulas for components. If you |
11356 enter the formula @samp{(x + 2) mod 5}, Calc propagates the modulus | 11378 enter the formula @samp{(x + 2) mod 5}, Calc propagates the modulus |
11357 to each of the coefficients: @samp{(1 mod 5) x + (2 mod 5)}. | 11379 to each of the coefficients: @samp{(1 mod 5) x + (2 mod 5)}. |
11380 | |
11381 You can use @kbd{v p} and @kbd{%} to modify modulo forms. | |
11382 @xref{Packing and Unpacking}. @xref{Basic Arithmetic}. | |
11358 | 11383 |
11359 @ignore | 11384 @ignore |
11360 @starindex | 11385 @starindex |
11361 @end ignore | 11386 @end ignore |
11362 @tindex makemod | 11387 @tindex makemod |
12260 appended to the end of the file. | 12285 appended to the end of the file. |
12261 | 12286 |
12262 @kindex m R | 12287 @kindex m R |
12263 @pindex calc-mode-record-mode | 12288 @pindex calc-mode-record-mode |
12264 The @kbd{m R} (@code{calc-mode-record-mode}) command tells Calc to | 12289 The @kbd{m R} (@code{calc-mode-record-mode}) command tells Calc to |
12265 record the new mode settings (as if by pressing @kbd{m m}) every | 12290 record all the mode settings (as if by pressing @kbd{m m}) every |
12266 time a mode setting changes. If Embedded mode is enabled, other | 12291 time a mode setting changes. If the modes are saved this way, then this |
12267 options are available; @pxref{Mode Settings in Embedded Mode}. | 12292 ``automatic mode recording'' mode is also saved. |
12293 Type @kbd{m R} again to disable this method of recording the mode | |
12294 settings. To turn it off permanently, the @kbd{m m} command will also be | |
12295 necessary. (If Embedded mode is enabled, other options for recording | |
12296 the modes are available; @pxref{Mode Settings in Embedded Mode}.) | |
12268 | 12297 |
12269 @kindex m F | 12298 @kindex m F |
12270 @pindex calc-settings-file-name | 12299 @pindex calc-settings-file-name |
12271 The @kbd{m F} (@code{calc-settings-file-name}) command allows you to | 12300 The @kbd{m F} (@code{calc-settings-file-name}) command allows you to |
12272 choose a different file than the current value of @code{calc-settings-file} | 12301 choose a different file than the current value of @code{calc-settings-file} |
12483 @cindex Fraction mode | 12512 @cindex Fraction mode |
12484 @cindex Division of integers | 12513 @cindex Division of integers |
12485 Division of two integers normally yields a floating-point number if the | 12514 Division of two integers normally yields a floating-point number if the |
12486 result cannot be expressed as an integer. In some cases you would | 12515 result cannot be expressed as an integer. In some cases you would |
12487 rather get an exact fractional answer. One way to accomplish this is | 12516 rather get an exact fractional answer. One way to accomplish this is |
12488 to multiply fractions instead: @kbd{6 @key{RET} 1:4 *} produces @expr{3:2} | 12517 to use the @kbd{:} (@code{calc-fdiv}) [@code{fdiv}] command, which |
12489 even though @kbd{6 @key{RET} 4 /} produces @expr{1.5}. | 12518 divides the two integers on the top of the stack to produce a fraction: |
12519 @kbd{6 @key{RET} 4 :} produces @expr{3:2} even though | |
12520 @kbd{6 @key{RET} 4 /} produces @expr{1.5}. | |
12490 | 12521 |
12491 @kindex m f | 12522 @kindex m f |
12492 @pindex calc-frac-mode | 12523 @pindex calc-frac-mode |
12493 To set the Calculator to produce fractional results for normal integer | 12524 To set the Calculator to produce fractional results for normal integer |
12494 divisions, use the @kbd{m f} (@code{calc-frac-mode}) command. | 12525 divisions, use the @kbd{m f} (@code{calc-frac-mode}) command. |
13289 (@code{calc-group-digits}) to enable @dfn{Grouping} mode, in which digits | 13320 (@code{calc-group-digits}) to enable @dfn{Grouping} mode, in which digits |
13290 are displayed in clumps of 3 or 4 (depending on the current radix) | 13321 are displayed in clumps of 3 or 4 (depending on the current radix) |
13291 separated by commas. | 13322 separated by commas. |
13292 | 13323 |
13293 The @kbd{d g} command toggles grouping on and off. | 13324 The @kbd{d g} command toggles grouping on and off. |
13294 With a numerix prefix of 0, this command displays the current state of | 13325 With a numeric prefix of 0, this command displays the current state of |
13295 the grouping flag; with an argument of minus one it disables grouping; | 13326 the grouping flag; with an argument of minus one it disables grouping; |
13296 with a positive argument @expr{N} it enables grouping on every @expr{N} | 13327 with a positive argument @expr{N} it enables grouping on every @expr{N} |
13297 digits. For floating-point numbers, grouping normally occurs only | 13328 digits. For floating-point numbers, grouping normally occurs only |
13298 before the decimal point. A negative prefix argument @expr{-N} enables | 13329 before the decimal point. A negative prefix argument @expr{-N} enables |
13299 grouping every @expr{N} digits both before and after the decimal point. | 13330 grouping every @expr{N} digits both before and after the decimal point. |
13795 @cindex Narrowing the stack | 13826 @cindex Narrowing the stack |
13796 The @kbd{d t} (@code{calc-truncate-stack}) command moves the @samp{.}@: | 13827 The @kbd{d t} (@code{calc-truncate-stack}) command moves the @samp{.}@: |
13797 line that marks the top-of-stack up or down in the Calculator buffer. | 13828 line that marks the top-of-stack up or down in the Calculator buffer. |
13798 The number right above that line is considered to the be at the top of | 13829 The number right above that line is considered to the be at the top of |
13799 the stack. Any numbers below that line are ``hidden'' from all stack | 13830 the stack. Any numbers below that line are ``hidden'' from all stack |
13800 operations. This is similar to the Emacs ``narrowing'' feature, except | 13831 operations (although still visible to the user). This is similar to the |
13801 that the values below the @samp{.} are @emph{visible}, just temporarily | 13832 Emacs ``narrowing'' feature, except that the values below the @samp{.} |
13802 frozen. This feature allows you to keep several independent calculations | 13833 are @emph{visible}, just temporarily frozen. This feature allows you to |
13803 running at once in different parts of the stack, or to apply a certain | 13834 keep several independent calculations running at once in different parts |
13804 command to an element buried deep in the stack. | 13835 of the stack, or to apply a certain command to an element buried deep in |
13836 the stack. | |
13805 | 13837 |
13806 Pressing @kbd{d t} by itself moves the @samp{.} to the line the cursor | 13838 Pressing @kbd{d t} by itself moves the @samp{.} to the line the cursor |
13807 is on. Thus, this line and all those below it become hidden. To un-hide | 13839 is on. Thus, this line and all those below it become hidden. To un-hide |
13808 these lines, move down to the end of the buffer and press @w{@kbd{d t}}. | 13840 these lines, move down to the end of the buffer and press @w{@kbd{d t}}. |
13809 With a positive numeric prefix argument @expr{n}, @kbd{d t} hides the | 13841 With a positive numeric prefix argument @expr{n}, @kbd{d t} hides the |
13938 | 13970 |
13939 Without being switched into C mode first, Calc would have misinterpreted | 13971 Without being switched into C mode first, Calc would have misinterpreted |
13940 the brackets in @samp{a[1]} and @samp{a[2]}, would not have known that | 13972 the brackets in @samp{a[1]} and @samp{a[2]}, would not have known that |
13941 @code{atan} was equivalent to Calc's built-in @code{arctan} function, | 13973 @code{atan} was equivalent to Calc's built-in @code{arctan} function, |
13942 and would have written the formula back with notations (like implicit | 13974 and would have written the formula back with notations (like implicit |
13943 multiplication) which would not have been legal for a C program. | 13975 multiplication) which would not have been valid for a C program. |
13944 | 13976 |
13945 As another example, suppose you are maintaining a C program and a La@TeX{} | 13977 As another example, suppose you are maintaining a C program and a La@TeX{} |
13946 document, each of which needs a copy of the same formula. You can grab the | 13978 document, each of which needs a copy of the same formula. You can grab the |
13947 formula from the program in C mode, switch to La@TeX{} mode, and yank the | 13979 formula from the program in C mode, switch to La@TeX{} mode, and yank the |
13948 formula into the document in La@TeX{} math-mode format. | 13980 formula into the document in La@TeX{} math-mode format. |
14639 @noindent | 14671 @noindent |
14640 @kindex d M | 14672 @kindex d M |
14641 @pindex calc-mathematica-language | 14673 @pindex calc-mathematica-language |
14642 @cindex Mathematica language | 14674 @cindex Mathematica language |
14643 The @kbd{d M} (@code{calc-mathematica-language}) command selects the | 14675 The @kbd{d M} (@code{calc-mathematica-language}) command selects the |
14644 conventions of Mathematica, a powerful and popular mathematical tool | 14676 conventions of Mathematica. Notable differences in Mathematica mode |
14645 from Wolfram Research, Inc. Notable differences in Mathematica mode | |
14646 are that the names of built-in functions are capitalized, and function | 14677 are that the names of built-in functions are capitalized, and function |
14647 calls use square brackets instead of parentheses. Thus the Calc | 14678 calls use square brackets instead of parentheses. Thus the Calc |
14648 formula @samp{sin(2 x)} is entered and displayed @w{@samp{Sin[2 x]}} in | 14679 formula @samp{sin(2 x)} is entered and displayed @w{@samp{Sin[2 x]}} in |
14649 Mathematica mode. | 14680 Mathematica mode. |
14650 | 14681 |
14663 @noindent | 14694 @noindent |
14664 @kindex d W | 14695 @kindex d W |
14665 @pindex calc-maple-language | 14696 @pindex calc-maple-language |
14666 @cindex Maple language | 14697 @cindex Maple language |
14667 The @kbd{d W} (@code{calc-maple-language}) command selects the | 14698 The @kbd{d W} (@code{calc-maple-language}) command selects the |
14668 conventions of Maple, another mathematical tool from the University | 14699 conventions of Maple. |
14669 of Waterloo. | |
14670 | 14700 |
14671 Maple's language is much like C. Underscores are allowed in symbol | 14701 Maple's language is much like C. Underscores are allowed in symbol |
14672 names; square brackets are used for subscripts; explicit @samp{*}s for | 14702 names; square brackets are used for subscripts; explicit @samp{*}s for |
14673 multiplications are required. Use either @samp{^} or @samp{**} to | 14703 multiplications are required. Use either @samp{^} or @samp{**} to |
14674 denote powers. | 14704 denote powers. |
15470 | 15500 |
15471 @noindent | 15501 @noindent |
15472 This will parse @samp{3 bad token 4 /"\ 5} to @samp{silly(3,4,5)}. | 15502 This will parse @samp{3 bad token 4 /"\ 5} to @samp{silly(3,4,5)}. |
15473 | 15503 |
15474 The token @kbd{#} has a predefined meaning in Calc's formula parser; | 15504 The token @kbd{#} has a predefined meaning in Calc's formula parser; |
15475 it is not legal to use @samp{"#"} in a syntax rule. However, longer | 15505 it is not valid to use @samp{"#"} in a syntax rule. However, longer |
15476 tokens that include the @samp{#} character are allowed. Also, while | 15506 tokens that include the @samp{#} character are allowed. Also, while |
15477 @samp{"$"} and @samp{"\""} are allowed as tokens, their presence in | 15507 @samp{"$"} and @samp{"\""} are allowed as tokens, their presence in |
15478 the syntax table will prevent those characters from working in their | 15508 the syntax table will prevent those characters from working in their |
15479 usual ways (referring to stack entries and quoting strings, | 15509 usual ways (referring to stack entries and quoting strings, |
15480 respectively). | 15510 respectively). |
16036 on numbers, such as addition, absolute value, and square roots. These | 16066 on numbers, such as addition, absolute value, and square roots. These |
16037 commands work by removing the top one or two values from the stack, | 16067 commands work by removing the top one or two values from the stack, |
16038 performing the desired operation, and pushing the result back onto the | 16068 performing the desired operation, and pushing the result back onto the |
16039 stack. If the operation cannot be performed, the result pushed is a | 16069 stack. If the operation cannot be performed, the result pushed is a |
16040 formula instead of a number, such as @samp{2/0} (because division by zero | 16070 formula instead of a number, such as @samp{2/0} (because division by zero |
16041 is illegal) or @samp{sqrt(x)} (because the argument @samp{x} is a formula). | 16071 is invalid) or @samp{sqrt(x)} (because the argument @samp{x} is a formula). |
16042 | 16072 |
16043 Most of the commands described here can be invoked by a single keystroke. | 16073 Most of the commands described here can be invoked by a single keystroke. |
16044 Some of the more obscure ones are two-letter sequences beginning with | 16074 Some of the more obscure ones are two-letter sequences beginning with |
16045 the @kbd{f} (``functions'') prefix key. | 16075 the @kbd{f} (``functions'') prefix key. |
16046 | 16076 |
16240 must be positive real number. | 16270 must be positive real number. |
16241 | 16271 |
16242 @kindex : | 16272 @kindex : |
16243 @pindex calc-fdiv | 16273 @pindex calc-fdiv |
16244 @tindex fdiv | 16274 @tindex fdiv |
16245 The @kbd{:} (@code{calc-fdiv}) command [@code{fdiv} function in a formula] | 16275 The @kbd{:} (@code{calc-fdiv}) [@code{fdiv}] command |
16246 divides the two integers on the top of the stack to produce a fractional | 16276 divides the two integers on the top of the stack to produce a fractional |
16247 result. This is a convenient shorthand for enabling Fraction mode (with | 16277 result. This is a convenient shorthand for enabling Fraction mode (with |
16248 @kbd{m f}) temporarily and using @samp{/}. Note that during numeric entry | 16278 @kbd{m f}) temporarily and using @samp{/}. Note that during numeric entry |
16249 the @kbd{:} key is interpreted as a fraction separator, so to divide 8 by 6 | 16279 the @kbd{:} key is interpreted as a fraction separator, so to divide 8 by 6 |
16250 you would have to type @kbd{8 @key{RET} 6 @key{RET} :}. (Of course, in | 16280 you would have to type @kbd{8 @key{RET} 6 @key{RET} :}. (Of course, in |
17962 formula for the specified number of periods. If the book value | 17992 formula for the specified number of periods. If the book value |
17963 would decrease below @var{salvage}, it only decreases to @var{salvage} | 17993 would decrease below @var{salvage}, it only decreases to @var{salvage} |
17964 and the depreciation is zero for all subsequent periods. The @code{ddb} | 17994 and the depreciation is zero for all subsequent periods. The @code{ddb} |
17965 function returns the amount the book value decreased in the specified | 17995 function returns the amount the book value decreased in the specified |
17966 period. | 17996 period. |
17967 | |
17968 The Calc financial function names were borrowed mostly from Microsoft | |
17969 Excel and Borland's Quattro. The @code{ratel} function corresponds to | |
17970 @samp{@@CGR} in Borland's Reflex. The @code{nper} and @code{nperl} | |
17971 functions correspond to @samp{@@TERM} and @samp{@@CTERM} in Quattro, | |
17972 respectively. Beware that the Calc functions may take their arguments | |
17973 in a different order than the corresponding functions in your favorite | |
17974 spreadsheet. | |
17975 | 17997 |
17976 @node Binary Functions, , Financial Functions, Arithmetic | 17998 @node Binary Functions, , Financial Functions, Arithmetic |
17977 @section Binary Number Functions | 17999 @section Binary Number Functions |
17978 | 18000 |
17979 @noindent | 18001 @noindent |
19534 @samp{pack(@var{mode}, @var{items})} where @var{mode} is a | 19556 @samp{pack(@var{mode}, @var{items})} where @var{mode} is a |
19535 packing mode (an integer or a vector of integers) and @var{items} | 19557 packing mode (an integer or a vector of integers) and @var{items} |
19536 is a vector of objects to be packed (re-packed, really) according | 19558 is a vector of objects to be packed (re-packed, really) according |
19537 to that mode. For example, @samp{pack([3, -4], [a,b,c,d,e,f])} | 19559 to that mode. For example, @samp{pack([3, -4], [a,b,c,d,e,f])} |
19538 yields @samp{[a +/- b, @w{c +/- d}, e +/- f]}. The function is | 19560 yields @samp{[a +/- b, @w{c +/- d}, e +/- f]}. The function is |
19539 left in symbolic form if the packing mode is illegal, or if the | 19561 left in symbolic form if the packing mode is invalid, or if the |
19540 number of data items does not match the number of items required | 19562 number of data items does not match the number of items required |
19541 by the mode. | 19563 by the mode. |
19542 | 19564 |
19543 @kindex v u | 19565 @kindex v u |
19544 @pindex calc-unpack | 19566 @pindex calc-unpack |
19628 @pindex calc-concat | 19650 @pindex calc-concat |
19629 @ignore | 19651 @ignore |
19630 @mindex @null | 19652 @mindex @null |
19631 @end ignore | 19653 @end ignore |
19632 @tindex | | 19654 @tindex | |
19633 The @kbd{|} (@code{calc-concat}) command ``concatenates'' two vectors | 19655 The @kbd{|} (@code{calc-concat}) [@code{vconcat}] command ``concatenates'' two vectors |
19634 into one. For example, after @kbd{@w{[ 1 , 2 ]} [ 3 , 4 ] |}, the stack | 19656 into one. For example, after @kbd{@w{[ 1 , 2 ]} [ 3 , 4 ] |}, the stack |
19635 will contain the single vector @samp{[1, 2, 3, 4]}. If the arguments | 19657 will contain the single vector @samp{[1, 2, 3, 4]}. If the arguments |
19636 are matrices, the rows of the first matrix are concatenated with the | 19658 are matrices, the rows of the first matrix are concatenated with the |
19637 rows of the second. (In other words, two matrices are just two vectors | 19659 rows of the second. (In other words, two matrices are just two vectors |
19638 of row-vectors as far as @kbd{|} is concerned.) | 19660 of row-vectors as far as @kbd{|} is concerned.) |
20029 a one-column matrix. | 20051 a one-column matrix. |
20030 | 20052 |
20031 @kindex v v | 20053 @kindex v v |
20032 @pindex calc-reverse-vector | 20054 @pindex calc-reverse-vector |
20033 @tindex rev | 20055 @tindex rev |
20034 The @kbd{v v} (@code{calc-reverse-vector}) [@code{vec}] command reverses | 20056 The @kbd{v v} (@code{calc-reverse-vector}) [@code{rev}] command reverses |
20035 a vector end-for-end. Given a matrix, it reverses the order of the rows. | 20057 a vector end-for-end. Given a matrix, it reverses the order of the rows. |
20036 (To reverse the columns instead, just use @kbd{v t v v v t}. The same | 20058 (To reverse the columns instead, just use @kbd{v t v v v t}. The same |
20037 principle can be used to apply other vector commands to the columns of | 20059 principle can be used to apply other vector commands to the columns of |
20038 a matrix.) | 20060 a matrix.) |
20039 | 20061 |
22678 @end tex | 22700 @end tex |
22679 | 22701 |
22680 Quotients are simplified by comparing all terms in the numerator | 22702 Quotients are simplified by comparing all terms in the numerator |
22681 with all terms in the denominator for possible cancellation using | 22703 with all terms in the denominator for possible cancellation using |
22682 the distributive law. For example, @expr{a x^2 b / c x^3 d} will | 22704 the distributive law. For example, @expr{a x^2 b / c x^3 d} will |
22683 cancel @expr{x^2} from both sides to get @expr{a b / c x d}. | 22705 cancel @expr{x^2} from the top and bottom to get @expr{a b / c x d}. |
22684 (The terms in the denominator will then be rearranged to @expr{c d x} | 22706 (The terms in the denominator will then be rearranged to @expr{c d x} |
22685 as described above.) If there is any common integer or fractional | 22707 as described above.) If there is any common integer or fractional |
22686 factor in the numerator and denominator, it is cancelled out; | 22708 factor in the numerator and denominator, it is cancelled out; |
22687 for example, @expr{(4 x + 6) / 8 x} simplifies to @expr{(2 x + 3) / 4 x}. | 22709 for example, @expr{(4 x + 6) / 8 x} simplifies to @expr{(2 x + 3) / 4 x}. |
22688 | 22710 |
23432 Note that @code{integ} was called with only one argument. This notation | 23454 Note that @code{integ} was called with only one argument. This notation |
23433 is allowed only within @code{IntegRules}; it means ``integrate this | 23455 is allowed only within @code{IntegRules}; it means ``integrate this |
23434 with respect to the same integration variable.'' If Calc is unable | 23456 with respect to the same integration variable.'' If Calc is unable |
23435 to integrate @code{u}, the integration that invoked @code{IntegRules} | 23457 to integrate @code{u}, the integration that invoked @code{IntegRules} |
23436 also fails. Thus integrating @samp{twice(f(x))} fails, returning the | 23458 also fails. Thus integrating @samp{twice(f(x))} fails, returning the |
23437 unevaluated integral @samp{integ(twice(f(x)), x)}. It is still legal | 23459 unevaluated integral @samp{integ(twice(f(x)), x)}. It is still valid |
23438 to call @code{integ} with two or more arguments, however; in this case, | 23460 to call @code{integ} with two or more arguments, however; in this case, |
23439 if @code{u} is not integrable, @code{twice} itself will still be | 23461 if @code{u} is not integrable, @code{twice} itself will still be |
23440 integrated: If the above rule is changed to @samp{... := twice(integ(u,x))}, | 23462 integrated: If the above rule is changed to @samp{... := twice(integ(u,x))}, |
23441 then integrating @samp{twice(f(x))} will yield @samp{twice(integ(f(x),x))}. | 23463 then integrating @samp{twice(f(x))} will yield @samp{twice(integ(f(x),x))}. |
23442 | 23464 |
25279 | 25301 |
25280 As a special feature, if the limits are infinite (or omitted, as | 25302 As a special feature, if the limits are infinite (or omitted, as |
25281 described above) but the formula includes vectors subscripted by | 25303 described above) but the formula includes vectors subscripted by |
25282 expressions that involve the iteration variable, Calc narrows | 25304 expressions that involve the iteration variable, Calc narrows |
25283 the limits to include only the range of integers which result in | 25305 the limits to include only the range of integers which result in |
25284 legal subscripts for the vector. For example, the sum | 25306 valid subscripts for the vector. For example, the sum |
25285 @samp{sum(k [a,b,c,d,e,f,g]_(2k),k)} evaluates to @samp{b + 2 d + 3 f}. | 25307 @samp{sum(k [a,b,c,d,e,f,g]_(2k),k)} evaluates to @samp{b + 2 d + 3 f}. |
25286 | 25308 |
25287 The limits of a sum do not need to be integers. For example, | 25309 The limits of a sum do not need to be integers. For example, |
25288 @samp{sum(a_k, k, 0, 2 n, n)} produces @samp{a_0 + a_n + a_(2 n)}. | 25310 @samp{sum(a_k, k, 0, 2 n, n)} produces @samp{a_0 + a_n + a_(2 n)}. |
25289 Calc computes the number of iterations using the formula | 25311 Calc computes the number of iterations using the formula |
25290 @samp{1 + (@var{high} - @var{low}) / @var{step}}, which must, | 25312 @samp{1 + (@var{high} - @var{low}) / @var{step}}, which must, |
25291 after simplification as if by @kbd{a s}, evaluate to an integer. | 25313 after simplification as if by @kbd{a s}, evaluate to an integer. |
25292 | 25314 |
25293 If the number of iterations according to the above formula does | 25315 If the number of iterations according to the above formula does |
25294 not come out to an integer, the sum is illegal and will be left | 25316 not come out to an integer, the sum is invalid and will be left |
25295 in symbolic form. However, closed forms are still supplied, and | 25317 in symbolic form. However, closed forms are still supplied, and |
25296 you are on your honor not to misuse the resulting formulas by | 25318 you are on your honor not to misuse the resulting formulas by |
25297 substituting mismatched bounds into them. For example, | 25319 substituting mismatched bounds into them. For example, |
25298 @samp{sum(k, k, 1, 10, 2)} is invalid, but Calc will go ahead and | 25320 @samp{sum(k, k, 1, 10, 2)} is invalid, but Calc will go ahead and |
25299 evaluate the closed form solution for the limits 1 and 10 to get | 25321 evaluate the closed form solution for the limits 1 and 10 to get |
28744 command. | 28766 command. |
28745 | 28767 |
28746 @kindex g A | 28768 @kindex g A |
28747 @pindex calc-graph-add-3d | 28769 @pindex calc-graph-add-3d |
28748 The @kbd{g A} (@code{calc-graph-add-3d}) command adds a 3D curve | 28770 The @kbd{g A} (@code{calc-graph-add-3d}) command adds a 3D curve |
28749 to the graph. It is not legal to intermix 2D and 3D curves in a | 28771 to the graph. It is not valid to intermix 2D and 3D curves in a |
28750 single graph. This command takes three arguments, ``x'', ``y'', | 28772 single graph. This command takes three arguments, ``x'', ``y'', |
28751 and ``z'', from the stack. With a positive prefix @expr{n}, it | 28773 and ``z'', from the stack. With a positive prefix @expr{n}, it |
28752 takes @expr{n+2} arguments (common ``x'' and ``y'', plus @expr{n} | 28774 takes @expr{n+2} arguments (common ``x'' and ``y'', plus @expr{n} |
28753 separate ``z''s). With a zero prefix, it takes three stack entries | 28775 separate ``z''s). With a zero prefix, it takes three stack entries |
28754 but the ``z'' entry is a vector of curve values. With a negative | 28776 but the ``z'' entry is a vector of curve values. With a negative |
30449 @section Mode Settings in Embedded Mode | 30471 @section Mode Settings in Embedded Mode |
30450 | 30472 |
30451 @noindent | 30473 @noindent |
30452 The mode settings can be changed while Calc is in embedded mode, but | 30474 The mode settings can be changed while Calc is in embedded mode, but |
30453 will revert to their original values when embedded mode is ended | 30475 will revert to their original values when embedded mode is ended |
30454 (except for the modes changed while the mode-setting mode was | 30476 (except for the modes saved when the mode-recording mode is |
30455 @code{Save}). | 30477 @code{Save}; see below). |
30456 | 30478 |
30457 Embedded mode has a rather complicated mechanism for handling mode | 30479 Embedded mode has a rather complicated mechanism for handling mode |
30458 settings in Embedded formulas. It is possible to put annotations | 30480 settings in Embedded formulas. It is possible to put annotations |
30459 in the file that specify mode settings either global to the entire | 30481 in the file that specify mode settings either global to the entire |
30460 file or local to a particular formula or formulas. In the latter | 30482 file or local to a particular formula or formulas. In the latter |
30509 after the colons are optional.) The first identifies the kind | 30531 after the colons are optional.) The first identifies the kind |
30510 of mode setting, the second is a name for the mode itself, and | 30532 of mode setting, the second is a name for the mode itself, and |
30511 the third is the value in the form of a Lisp symbol, number, | 30533 the third is the value in the form of a Lisp symbol, number, |
30512 or list. Annotations with unrecognizable text in the first or | 30534 or list. Annotations with unrecognizable text in the first or |
30513 second parts are ignored. The third part is not checked to make | 30535 second parts are ignored. The third part is not checked to make |
30514 sure the value is of a legal type or range; if you write an | 30536 sure the value is of a valid type or range; if you write an |
30515 annotation by hand, be sure to give a proper value or results | 30537 annotation by hand, be sure to give a proper value or results |
30516 will be unpredictable. Mode-setting annotations are case-sensitive. | 30538 will be unpredictable. Mode-setting annotations are case-sensitive. |
30517 | 30539 |
30518 While Embedded mode is enabled, the word @code{Local} appears in | 30540 While Embedded mode is enabled, the word @code{Local} appears in |
30519 the mode line. This is to show that mode setting commands generate | 30541 the mode line. This is to show that mode setting commands generate |
30570 @end example | 30592 @end example |
30571 | 30593 |
30572 We would have to go down to the other formula and press @kbd{M-# u} | 30594 We would have to go down to the other formula and press @kbd{M-# u} |
30573 on it in order to get it to notice the new annotation. | 30595 on it in order to get it to notice the new annotation. |
30574 | 30596 |
30575 Two more mode-recording modes selectable by @kbd{m R} are @code{Save} | 30597 Two more mode-recording modes selectable by @kbd{m R} are available |
30576 (which works even outside of Embedded mode), in which mode settings | 30598 which are also available outside of Embedded mode. |
30577 are recorded permanently in your Calc init file (the file given by the | 30599 (@pxref{General Mode Commands}.) They are @code{Save}, in which mode |
30578 variable @code{calc-settings-file}, typically @file{~/.calc.el}) | 30600 settings are recorded permanently in your Calc init file (the file given |
30601 by the variable @code{calc-settings-file}, typically @file{~/.calc.el}) | |
30579 rather than by annotating the current document, and no-recording | 30602 rather than by annotating the current document, and no-recording |
30580 mode (where there is no symbol like @code{Save} or @code{Local} in | 30603 mode (where there is no symbol like @code{Save} or @code{Local} in |
30581 the mode line), in which mode-changing commands do not leave any | 30604 the mode line), in which mode-changing commands do not leave any |
30582 annotations at all. | 30605 annotations at all. |
30583 | 30606 |
31797 where @var{num} is an integer, and @var{tag} is a string. The effect is | 31820 where @var{num} is an integer, and @var{tag} is a string. The effect is |
31798 to pop @var{num} values off the stack, resimplify them by calling | 31821 to pop @var{num} values off the stack, resimplify them by calling |
31799 @code{calc-normalize}, and hand them to your function according to the | 31822 @code{calc-normalize}, and hand them to your function according to the |
31800 function's argument list. Your function may include @code{&optional} and | 31823 function's argument list. Your function may include @code{&optional} and |
31801 @code{&rest} parameters, so long as calling the function with @var{num} | 31824 @code{&rest} parameters, so long as calling the function with @var{num} |
31802 parameters is legal. | 31825 parameters is valid. |
31803 | 31826 |
31804 Your function must return either a number or a formula in a form | 31827 Your function must return either a number or a formula in a form |
31805 acceptable to Calc, or a list of such numbers or formulas. These value(s) | 31828 acceptable to Calc, or a list of such numbers or formulas. These value(s) |
31806 are pushed onto the stack when the function completes. They are also | 31829 are pushed onto the stack when the function completes. They are also |
31807 recorded in the Calc Trail buffer on a line beginning with @var{tag}, | 31830 recorded in the Calc Trail buffer on a line beginning with @var{tag}, |
32827 been disabled by the @kbd{j e} (@code{calc-enable-selections}) command, | 32850 been disabled by the @kbd{j e} (@code{calc-enable-selections}) command, |
32828 this function returns the selected portions rather than the entire | 32851 this function returns the selected portions rather than the entire |
32829 stack elements. It can be given a third ``selection-mode'' argument | 32852 stack elements. It can be given a third ``selection-mode'' argument |
32830 which selects other behaviors. If it is the symbol @code{t}, then | 32853 which selects other behaviors. If it is the symbol @code{t}, then |
32831 a selection in any of the requested stack elements produces an | 32854 a selection in any of the requested stack elements produces an |
32832 ``illegal operation on selections'' error. If it is the symbol @code{full}, | 32855 ``invalid operation on selections'' error. If it is the symbol @code{full}, |
32833 the whole stack entry is always returned regardless of selections. | 32856 the whole stack entry is always returned regardless of selections. |
32834 If it is the symbol @code{sel}, the selected portion is always returned, | 32857 If it is the symbol @code{sel}, the selected portion is always returned, |
32835 or @code{nil} if there is no selection. (This mode ignores the @kbd{j e} | 32858 or @code{nil} if there is no selection. (This mode ignores the @kbd{j e} |
32836 command.) If the symbol is @code{entry}, the complete stack entry in | 32859 command.) If the symbol is @code{entry}, the complete stack entry in |
32837 list form is returned; the first element of this list will be the whole | 32860 list form is returned; the first element of this list will be the whole |
34608 @ifinfo | 34631 @ifinfo |
34609 @example | 34632 @example |
34610 | 34633 |
34611 @end example | 34634 @end example |
34612 @end ifinfo | 34635 @end ifinfo |
34613 @appendixsec Printed Documentation | |
34614 | |
34615 @noindent | |
34616 Because the Calc manual is so large, you should only make a printed | |
34617 copy if you really need it. To print the manual, you will need the | |
34618 @TeX{} typesetting program (this is a free program by Donald Knuth | |
34619 at Stanford University) as well as the @file{texindex} program and | |
34620 @file{texinfo.tex} file, both of which can be obtained from the FSF | |
34621 as part of the @code{texinfo} package. | |
34622 | |
34623 To print the Calc manual in one huge 470 page tome, you will need the | |
34624 source code to this manual, @file{calc.texi}, available as part of the | |
34625 Emacs source. Once you have this file, type @kbd{texi2dvi calc.texi}. | |
34626 Alternatively, change to the @file{man} subdirectory of the Emacs | |
34627 source distribution, and type @kbd{make calc.dvi}. (Don't worry if you | |
34628 get some ``overfull box'' warnings while @TeX{} runs.) | |
34629 | |
34630 The result will be a device-independent output file called | |
34631 @file{calc.dvi}, which you must print in whatever way is right | |
34632 for your system. On many systems, the command is | |
34633 | |
34634 @example | |
34635 lpr -d calc.dvi | |
34636 @end example | |
34637 | |
34638 @noindent | |
34639 or | |
34640 | |
34641 @example | |
34642 dvips calc.dvi | |
34643 @end example | |
34644 | |
34645 @c the bumpoddpages macro was deleted | |
34646 @ignore | |
34647 @cindex Marginal notes, adjusting | |
34648 Marginal notes for each function and key sequence normally alternate | |
34649 between the left and right sides of the page, which is correct if the | |
34650 manual is going to be bound as double-sided pages. Near the top of | |
34651 the file @file{calc.texi} you will find alternate definitions of | |
34652 the @code{\bumpoddpages} macro that put the marginal notes always on | |
34653 the same side, best if you plan to be binding single-sided pages. | |
34654 @end ignore | |
34655 | 34636 |
34656 @appendixsec Settings File | 34637 @appendixsec Settings File |
34657 | 34638 |
34658 @noindent | 34639 @noindent |
34659 @vindex calc-settings-file | 34640 @vindex calc-settings-file |
34701 @example | 34682 @example |
34702 belanger@@truman.edu | 34683 belanger@@truman.edu |
34703 @end example | 34684 @end example |
34704 | 34685 |
34705 @noindent | 34686 @noindent |
34706 (In the following text, ``I'' refers to the original Calc author, Dave | |
34707 Gillespie). | |
34708 | |
34709 While I cannot guarantee that I will have time to work on your bug, | |
34710 I do try to fix bugs quickly whenever I can. | |
34711 | |
34712 The latest version of Calc is available from Savannah, in the Emacs | |
34713 CVS tree. See @uref{http://savannah.gnu.org/projects/emacs}. | |
34714 | |
34715 There is an automatic command @kbd{M-x report-calc-bug} which helps | 34687 There is an automatic command @kbd{M-x report-calc-bug} which helps |
34716 you to report bugs. This command prompts you for a brief subject | 34688 you to report bugs. This command prompts you for a brief subject |
34717 line, then leaves you in a mail editing buffer. Type @kbd{C-c C-c} to | 34689 line, then leaves you in a mail editing buffer. Type @kbd{C-c C-c} to |
34718 send your mail. Make sure your subject line indicates that you are | 34690 send your mail. Make sure your subject line indicates that you are |
34719 reporting a Calc bug; this command sends mail to the maintainer's | 34691 reporting a Calc bug; this command sends mail to the maintainer's |
34720 regular mailbox. | 34692 regular mailbox. |
34721 | 34693 |
34722 If you have suggestions for additional features for Calc, I would | 34694 If you have suggestions for additional features for Calc, please send |
34723 love to hear them. Some have dared to suggest that Calc is already | 34695 them. Some have dared to suggest that Calc is already top-heavy with |
34724 top-heavy with features; I really don't see what they're talking | 34696 features; this obviously cannot be the case, so if you have ideas, send |
34725 about, so, if you have ideas, send them right in. (I may even have | 34697 them right in. |
34726 time to implement them!) | |
34727 | 34698 |
34728 At the front of the source file, @file{calc.el}, is a list of ideas for | 34699 At the front of the source file, @file{calc.el}, is a list of ideas for |
34729 future work which I have not had time to do. If any enthusiastic souls | 34700 future work. If any enthusiastic souls wish to take it upon themselves |
34730 wish to take it upon themselves to work on these, I would be delighted. | 34701 to work on these, please send a message (using @kbd{M-x report-calc-bug}) |
34731 Please let me know if you plan to contribute to Calc so I can coordinate | 34702 so any efforts can be coordinated. |
34732 your efforts with mine and those of others. I will do my best to help | 34703 |
34733 you in whatever way I can. | 34704 The latest version of Calc is available from Savannah, in the Emacs |
34705 CVS tree. See @uref{http://savannah.gnu.org/projects/emacs}. | |
34734 | 34706 |
34735 @c [summary] | 34707 @c [summary] |
34736 @node Summary, Key Index, Reporting Bugs, Top | 34708 @node Summary, Key Index, Reporting Bugs, Top |
34737 @appendix Calc Summary | 34709 @appendix Calc Summary |
34738 | 34710 |