calc: Customizing Calc

 
 Appendix C Customizing Calc
 ***************************
 
 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.  (SeeCustomizing Key Bindings (emacs)Key
 Bindings, 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; SeeInit File (emacs)Init File.)
 
    Some of the customizable variables are regular expressions.  A
 regular expression is basically a pattern that Calc can search for.  See
 SeeRegular Expression Search (emacs)Regexp Search. to see how
 regular expressions work.
 
  -- Variable: calc-settings-file
      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"’.
 
  -- Variable: calc-gnuplot-name
      See SeeGraphics.
      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 SeeGraphical Devices Devices. .
      The default value of ‘calc-gnuplot-name’ is ‘"gnuplot"’.
 
  -- Variable: calc-gnuplot-plot-command
  -- Variable: calc-gnuplot-print-command
      See SeeGraphical Devices 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"’.
 
  -- Variable: calc-language-alist
      See SeeBasic 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, SeeMode 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))
 
  -- Variable: calc-embedded-announce-formula
  -- Variable: calc-embedded-announce-formula-alist
      See SeeCustomizing 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’.
 
  -- Variable: calc-embedded-open-formula
  -- Variable: calc-embedded-close-formula
  -- Variable: calc-embedded-open-close-formula-alist
      See SeeCustomizing 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:
        1. The TeX and LaTeX math delimiters ‘$ $’, ‘$$ $$’, ‘\[ \]’, and
           ‘\( \)’;
        2. Lines beginning with ‘\begin’ and ‘\end’ (except matrix
           delimiters);
        3. Lines beginning with ‘@’ (Texinfo delimiters).
        4. Lines beginning with ‘.EQ’ and ‘.EN’ (“eqn” delimiters);
        5. Lines containing a single ‘%’ or ‘.\"’ symbol and nothing
           else.
 
      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’.
 
  -- Variable: calc-embedded-word-regexp
  -- Variable: calc-embedded-word-regexp-alist
      See SeeCustomizing 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’.
 
  -- Variable: calc-embedded-open-plain
  -- Variable: calc-embedded-close-plain
  -- Variable: calc-embedded-open-close-plain-alist
      See SeeCustomizing 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’.
 
  -- Variable: calc-embedded-open-new-formula
  -- Variable: calc-embedded-close-new-formula
  -- Variable: calc-embedded-open-close-new-formula-alist
      See SeeCustomizing 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’.
 
  -- Variable: calc-embedded-open-mode
  -- Variable: calc-embedded-close-mode
  -- Variable: calc-embedded-open-close-mode-alist
      See SeeCustomizing 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’.
 
  -- Variable: calc-lu-power-reference
  -- Variable: calc-lu-field-reference
      See SeeLogarithmic 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"’.
 
  -- Variable: calc-note-threshold
      See SeeMusical 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.
 
  -- Variable: calc-highlight-selections-with-faces
  -- Variable: calc-selected-face
  -- Variable: calc-nonselected-face
      See SeeDisplaying 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’.
 
  -- Variable: calc-multiplication-has-precedence
      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’.
 
  -- Variable: calc-context-sensitive-enter
      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’.
 
  -- Variable: calc-undo-length
      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’.
 
  -- Variable: calc-gregorian-switch
      See SeeDate 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’.