Next: Reporting Bugs, Previous: GNU Free Documentation License, Up: The GNU Emacs Calculator [Contents][Index]
The usual prefix for Calc is the key sequence C-x *. If you wish to use a different prefix, you can put
(global-set-key "NEWPREFIX" 'calc-dispatch)
in your .emacs file. (See Customizing Key Bindings in The GNU Emacs Manual, for more information on binding keys.) A convenient way to start Calc is with C-x * *; to make it equally convenient for users who use a different prefix, the prefix can be followed by =, &, #, \, /, + or - as well as * to start Calc, and so in many cases the last character of the prefix can simply be typed twice.
Calc is controlled by many variables, most of which can be reset from within Calc. Some variables are less involved with actual calculation and can be set outside of Calc using Emacs’s customization facilities. These variables are listed below. Typing M-x customize-variable RET variable-name RET will bring up a buffer in which the variable’s value can be redefined. Typing M-x customize-group RET calc RET will bring up a buffer which contains all of Calc’s customizable variables. (These variables can also be reset by putting the appropriate lines in your .emacs file; See Init File in The GNU Emacs Manual.)
Some of the customizable variables are regular expressions. A regular expression is basically a pattern that Calc can search for. See Regular Expression Search in The GNU Emacs Manual to see how regular expressions work.
The variable calc-settings-file
holds the file name in
which commands like m m and Z P store “permanent”
definitions.
If calc-settings-file
is not your user init file (typically
~/.emacs) and if the variable calc-loaded-settings-file
is
nil
, then Calc will automatically load your settings file (if it
exists) the first time Calc is invoked.
The default value for this variable is "~/.emacs.d/calc.el"
unless the file ~/.calc.el exists, in which case the default
value will be "~/.calc.el"
.
See Graphics.
The variable calc-gnuplot-name
should be the name of the
GNUPLOT program (a string). If you have GNUPLOT installed on your
system but Calc is unable to find it, you may need to set this
variable. You may also need to set some Lisp variables to show Calc how
to run GNUPLOT on your system, see Graphical Devices .
The default value of calc-gnuplot-name
is "gnuplot"
.
See Graphical Devices.
The variables calc-gnuplot-plot-command
and
calc-gnuplot-print-command
represent system commands to
display and print the output of GNUPLOT, respectively. These may be
nil
if no command is necessary, or strings which can include
‘%s’ to signify the name of the file to be displayed or printed.
Or, these variables may contain Lisp expressions which are evaluated
to display or print the output.
The default value of calc-gnuplot-plot-command
is nil
,
and the default value of calc-gnuplot-print-command
is
"lp %s"
.
See Basic Embedded Mode.
The variable calc-language-alist
controls the languages that
Calc will associate with major modes. When Calc embedded mode is
enabled, it will try to use the current major mode to
determine what language should be used. (This can be overridden using
Calc’s mode changing commands, See Mode Settings in Embedded Mode.)
The variable calc-language-alist
consists of a list of pairs of
the form (MAJOR-MODE . LANGUAGE)
; for example,
(latex-mode . latex)
is one such pair. If Calc embedded is
activated in a buffer whose major mode is MAJOR-MODE, it will set itself
to use the language LANGUAGE.
The default value of calc-language-alist
is
((latex-mode . latex) (tex-mode . tex) (plain-tex-mode . tex) (context-mode . tex) (nroff-mode . eqn) (pascal-mode . pascal) (c-mode . c) (c++-mode . c) (fortran-mode . fortran) (f90-mode . fortran))
See Customizing Embedded Mode.
The variable calc-embedded-announce-formula
helps determine
what formulas C-x * a will activate in a buffer. It is a
regular expression, and when activating embedded formulas with
C-x * a, it will tell Calc that what follows is a formula to be
activated. (Calc also uses other patterns to find formulas, such as
‘=>’ and ‘:=’.)
The default pattern is "%Embed\n\\(% .*\n\\)*"
, which checks
for ‘%Embed’ followed by any number of lines beginning with
‘%’ and a space.
The variable calc-embedded-announce-formula-alist
is used to
set calc-embedded-announce-formula
to different regular
expressions depending on the major mode of the editing buffer.
It consists of a list of pairs of the form (MAJOR-MODE .
REGEXP)
, and its default value is
((c++-mode . "//Embed\n\\(// .*\n\\)*") (c-mode . "/\\*Embed\\*/\n\\(/\\* .*\\*/\n\\)*") (f90-mode . "!Embed\n\\(! .*\n\\)*") (fortran-mode . "C Embed\n\\(C .*\n\\)*") (html-helper-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") (html-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") (nroff-mode . "\\\\\"Embed\n\\(\\\\\" .*\n\\)*") (pascal-mode . "{Embed}\n\\({.*}\n\\)*") (sgml-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") (xml-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") (texinfo-mode . "@c Embed\n\\(@c .*\n\\)*"))
Any major modes added to calc-embedded-announce-formula-alist
should also be added to calc-embedded-open-close-plain-alist
and calc-embedded-open-close-mode-alist
.
See Customizing Embedded Mode.
The variables calc-embedded-open-formula
and
calc-embedded-close-formula
control the region that Calc will
activate as a formula when Embedded mode is entered with C-x * e.
They are regular expressions;
Calc normally scans backward and forward in the buffer for the
nearest text matching these regular expressions to be the “formula
delimiters”.
The simplest delimiters are blank lines. Other delimiters that Embedded mode understands by default are:
The variable calc-embedded-open-close-formula-alist
is used to
set calc-embedded-open-formula
and
calc-embedded-close-formula
to different regular
expressions depending on the major mode of the editing buffer.
It consists of a list of lists of the form
(MAJOR-MODE OPEN-FORMULA-REGEXP
CLOSE-FORMULA-REGEXP)
, and its default value is
nil
.
See Customizing Embedded Mode.
The variable calc-embedded-word-regexp
determines the expression
that Calc will activate when Embedded mode is entered with C-x *
w. It is a regular expressions.
The default value of calc-embedded-word-regexp
is
"[-+]?[0-9]+\\(\\.[0-9]+\\)?\\([eE][-+]?[0-9]+\\)?"
.
The variable calc-embedded-word-regexp-alist
is used to
set calc-embedded-word-regexp
to a different regular
expression depending on the major mode of the editing buffer.
It consists of a list of lists of the form
(MAJOR-MODE WORD-REGEXP)
, and its default value is
nil
.
See Customizing Embedded Mode.
The variables calc-embedded-open-plain
and
calc-embedded-open-plain
are used to delimit “plain”
formulas. Note that these are actual strings, not regular
expressions, because Calc must be able to write these string into a
buffer as well as to recognize them.
The default string for calc-embedded-open-plain
is
"%%% "
, note the trailing space. The default string for
calc-embedded-close-plain
is " %%%\n"
, without
the trailing newline here, the first line of a Big mode formula
that followed might be shifted over with respect to the other lines.
The variable calc-embedded-open-close-plain-alist
is used to
set calc-embedded-open-plain
and
calc-embedded-close-plain
to different strings
depending on the major mode of the editing buffer.
It consists of a list of lists of the form
(MAJOR-MODE OPEN-PLAIN-STRING
CLOSE-PLAIN-STRING)
, and its default value is
((c++-mode "// %% " " %%\n") (c-mode "/* %% " " %% */\n") (f90-mode "! %% " " %%\n") (fortran-mode "C %% " " %%\n") (html-helper-mode "<!-- %% " " %% -->\n") (html-mode "<!-- %% " " %% -->\n") (nroff-mode "\\\" %% " " %%\n") (pascal-mode "{%% " " %%}\n") (sgml-mode "<!-- %% " " %% -->\n") (xml-mode "<!-- %% " " %% -->\n") (texinfo-mode "@c %% " " %%\n"))
Any major modes added to calc-embedded-open-close-plain-alist
should also be added to calc-embedded-announce-formula-alist
and calc-embedded-open-close-mode-alist
.
See Customizing Embedded Mode.
The variables calc-embedded-open-new-formula
and
calc-embedded-close-new-formula
are strings which are
inserted before and after a new formula when you type C-x * f.
The default value of calc-embedded-open-new-formula
is
"\n\n"
. If this string begins with a newline character and the
C-x * f is typed at the beginning of a line, C-x * f will skip
this first newline to avoid introducing unnecessary blank lines in the
file. The default value of calc-embedded-close-new-formula
is
also "\n\n"
. The final newline is omitted by C-x * f
if typed at the end of a line. (It follows that if C-x * f is
typed on a blank line, both a leading opening newline and a trailing
closing newline are omitted.)
The variable calc-embedded-open-close-new-formula-alist
is used to
set calc-embedded-open-new-formula
and
calc-embedded-close-new-formula
to different strings
depending on the major mode of the editing buffer.
It consists of a list of lists of the form
(MAJOR-MODE OPEN-NEW-FORMULA-STRING
CLOSE-NEW-FORMULA-STRING)
, and its default value is
nil
.
See Customizing Embedded Mode.
The variables calc-embedded-open-mode
and
calc-embedded-close-mode
are strings which Calc will place before
and after any mode annotations that it inserts. Calc never scans for
these strings; Calc always looks for the annotation itself, so it is not
necessary to add them to user-written annotations.
The default value of calc-embedded-open-mode
is "% "
and the default value of calc-embedded-close-mode
is
"\n"
.
If you change the value of calc-embedded-close-mode
, it is a good
idea still to end with a newline so that mode annotations will appear on
lines by themselves.
The variable calc-embedded-open-close-mode-alist
is used to
set calc-embedded-open-mode
and
calc-embedded-close-mode
to different strings
expressions depending on the major mode of the editing buffer.
It consists of a list of lists of the form
(MAJOR-MODE OPEN-MODE-STRING
CLOSE-MODE-STRING)
, and its default value is
((c++-mode "// " "\n") (c-mode "/* " " */\n") (f90-mode "! " "\n") (fortran-mode "C " "\n") (html-helper-mode "<!-- " " -->\n") (html-mode "<!-- " " -->\n") (nroff-mode "\\\" " "\n") (pascal-mode "{ " " }\n") (sgml-mode "<!-- " " -->\n") (xml-mode "<!-- " " -->\n") (texinfo-mode "@c " "\n"))
Any major modes added to calc-embedded-open-close-mode-alist
should also be added to calc-embedded-announce-formula-alist
and calc-embedded-open-close-plain-alist
.
See Logarithmic Units.
The variables calc-lu-power-reference
and
calc-lu-field-reference
are unit expressions (written as
strings) which Calc will use as reference quantities for logarithmic
units.
The default value of calc-lu-power-reference
is "mW"
and the default value of calc-lu-field-reference
is
"20 uPa"
.
See Musical Notes.
The variable calc-note-threshold
is a number (written as a
string) which determines how close (in cents) a frequency needs to be
to a note to be recognized as that note.
The default value of calc-note-threshold
is 1.
See Displaying Selections.
The variable calc-highlight-selections-with-faces
determines how selected sub-formulas are distinguished.
If calc-highlight-selections-with-faces
is nil
, then
a selected sub-formula is distinguished either by changing every
character not part of the sub-formula with a dot or by changing every
character in the sub-formula with a ‘#’ sign.
If calc-highlight-selections-with-faces
is t
,
then a selected sub-formula is distinguished either by displaying the
non-selected portion of the formula with calc-nonselected-face
or by displaying the selected sub-formula with
calc-nonselected-face
.
The variable calc-multiplication-has-precedence
determines
whether multiplication has precedence over division in algebraic
formulas in normal language modes. If
calc-multiplication-has-precedence
is non-nil
, then
multiplication has precedence (and, for certain obscure reasons, is
right associative), and so for example ‘a/b*c’ will be interpreted
as ‘a/(b*c)’. If calc-multiplication-has-precedence
is
nil
, then multiplication has the same precedence as division
(and, like division, is left associative), and so for example
‘a/b*c’ will be interpreted as ‘(a/b)*c’. The default value
of calc-multiplication-has-precedence
is t
.
The commands calc-enter
and calc-pop
will typically
duplicate the top of the stack. If
calc-context-sensitive-enter
is non-nil
, then the
calc-enter
will copy the element at the cursor to the
top of the stack and calc-pop
will delete the element at the
cursor. The default value of calc-context-sensitive-enter
is
nil
.
The variable calc-undo-length
determines the number of undo
steps that Calc will keep track of when calc-quit
is called.
If calc-undo-length
is a non-negative integer, then this is the
number of undo steps that will be preserved; if
calc-undo-length
has any other value, then all undo steps will
be preserved. The default value of calc-undo-length
is ‘100’.
See Date Forms.
The variable calc-gregorian-switch
is either a list of integers
(YEAR MONTH DAY)
or nil
.
If it is nil
, then Calc’s date forms always represent Gregorian dates.
Otherwise, calc-gregorian-switch
represents the date that the
calendar switches from Julian dates to Gregorian dates;
(YEAR MONTH DAY)
will be the first Gregorian
date. The customization buffer will offer several standard dates to
choose from, or the user can enter their own date.
The default value of calc-gregorian-switch
is nil
.
Next: Reporting Bugs, Previous: GNU Free Documentation License, Up: The GNU Emacs Calculator [Contents][Index]