Next: Rearranging with Selections, Previous: Displaying Selections, Up: Selecting Subformulas

Once a selection is made, all Calc commands that manipulate items on the stack will operate on the selected portions of the items instead. (Note that several stack elements may have selections at once, though there can be only one selection at a time in any given stack element.)

The `j e` (`calc-enable-selections`

) command disables the
effect that selections have on Calc commands. The current selections
still exist, but Calc commands operate on whole stack elements anyway.
This mode can be identified by the fact that the ‘`*`’ markers on
the line numbers are gone, even though selections are visible. To
reactivate the selections, press `j e` again.

To extract a sub-formula as a new formula, simply select the sub-formula and press <RET>. This normally duplicates the top stack element; here it duplicates only the selected portion of that element.

To replace a sub-formula with something different, you can enter the new value onto the stack and press <TAB>. This normally exchanges the top two stack elements; here it swaps the value you entered into the selected portion of the formula, returning the old selected portion to the top of the stack.

3 ... ... ___ (a + b) . . . 17 x y . . . 17 x y + V c 2* ............... 2* ............. 2: ------------- . . . . . . . . 2 x + 1 3 3 1: 17 x y 1: (a + b) 1: (a + b)

In this example we select a sub-formula of our original example, enter a new formula, <TAB> it into place, then deselect to see the complete, edited formula.

If you want to swap whole formulas around even though they contain
selections, just use `j e` before and after.

The `j '` (`calc-enter-selection`

) command is another way
to replace a selected sub-formula. This command does an algebraic
entry just like the regular `'` key. When you press <RET>,
the formula you type replaces the original selection. You can use
the ‘`$`’ symbol in the formula to refer to the original
selection. If there is no selection in the formula under the cursor,
the cursor is used to make a temporary selection for the purposes of
the command. Thus, to change a term of a formula, all you have to
do is move the Emacs cursor to that term and press `j '`.

The `j `` (`calc-edit-selection`

) command is a similar
analogue of the ``` (`calc-edit`

) command. It edits the
selected sub-formula in a separate buffer. If there is no
selection, it edits the sub-formula indicated by the cursor.

To delete a sub-formula, press <DEL>. This generally replaces the sub-formula with the constant zero, but in a few suitable contexts it uses the constant one instead. The <DEL> key automatically deselects and re-simplifies the entire formula afterwards. Thus:

### 17 x y + # # 17 x y 17 # y 17 y 1* ------------- 1: ------- 1* ------- 1: ------- 2 x + 1 2 x + 1 2 x + 1 2 x + 1

In this example, we first delete the ‘`sqrt(c)`’ term; Calc
accomplishes this by replacing ‘`sqrt(c)`’ with zero and
resimplifying. We then delete the `x` in the numerator;
since this is part of a product, Calc replaces it with ‘`1`’
and resimplifies.

If you select an element of a vector and press <DEL>, that element is deleted from the vector. If you delete one side of an equation or inequality, only the opposite side remains.

The `j <DEL>` (`calc-del-selection`

) command is like
<DEL> but with the auto-selecting behavior of `j '` and
`j ``. It deletes the selected portion of the formula
indicated by the cursor, or, in the absence of a selection, it
deletes the sub-formula indicated by the cursor position.

(There is also an auto-selecting `j <RET>` (`calc-copy-selection`

)
command.)

Normal arithmetic operations also apply to sub-formulas. Here we
select the denominator, press `5 -` to subtract five from the
denominator, press `n` to negate the denominator, then
press `Q` to take the square root.

.. . .. . .. . .. . 1* ....... 1* ....... 1* ....... 1* .......... 2 x + 1 2 x - 4 4 - 2 x _________ V 4 - 2 x

Certain types of operations on selections are not allowed. For
example, for an arithmetic function like `-` no more than one of
the arguments may be a selected sub-formula. (As the above example
shows, the result of the subtraction is spliced back into the argument
which had the selection; if there were more than one selection involved,
this would not be well-defined.) If you try to subtract two selections,
the command will abort with an error message.

Operations on sub-formulas sometimes leave the formula as a whole
in an “un-natural” state. Consider negating the ‘`2 x`’ term
of our sample formula by selecting it and pressing `n`
(`calc-change-sign`

).

.. . .. . 1* .......... 1* ........... ......... .......... . . . 2 x . . . -2 x

Unselecting the sub-formula reveals that the minus sign, which would
normally have canceled out with the subtraction automatically, has
not been able to do so because the subtraction was not part of the
selected portion. Pressing `=` (`calc-evaluate`

) or doing
any other mathematical operation on the whole formula will cause it
to be simplified.

17 y 17 y 1: ----------- 1: ---------- __________ _________ V 4 - -2 x V 4 + 2 x