<\body> provides rudimentary spreadsheet-like facilities with the advantage that the computations can be carried out using any of the plug-ins that can be used as a scripting language. In order to use the spreadsheet facilities, you should therefore start with the selection of a scripting language in the menu . As soon as you have selecting a scripting language, such as , then you may enter a new spreadsheet using or . You may edit the spreadsheet as an ordinary table, except that the key will attempt to reevaluate the cells of the table. In addition, when preceding the contents of a cell by =, then cell will be considered as an input-output switch. More precisely, the input is a formula which will be evaluated using the current scripting language. After the evaluation, only the result of the evaluation is shown in the cell. After pressing a second time in the cell, it will be possible switch back and edit the input. In the formulas, one may refer to the others using names such as for the third row and the fifth column. <\example> On the left-hand side of the figure below, we have displayed a simple table with formulas for evaluating the sums of the first two items of each row. On the right-hand side, we have shown the result after evaluation. <\big-figure|||>|>|>>|>|>|>>>>>>||>|>|>>>|>|>|>>>>>>>>>> Evaluation of a simple spreadsheet. <\example> The cells may contain mathematical formulas and the spreadsheet may take advantage of any of the capacities of the scripting language. For instance, the figure below demonstrates another possible use of . <\big-figure||||)>>>>>|>>|>>|>>>>>>|||)>>>>>||)>>>>>||)>-4*x*sin |)>>>>>||)>-8*x*cos |)>>>>>>>>>>>> Computation of successive derivatives using . supports a few special notations for applying operations on all cells in a subtable. For instance, as in , one may use the notation for indicating all cells , , , , , in the block from to . An alternative notation for can be entered by typing . In a similar way, one may enter the special notation by typing . For instance, d5> stands for the sum of all cells between and . <\example> The figure below shows an example on how to use taking sums of cells. Notice that empty cells count for zero. <\big-figure|||>|>|>>|>|>|>>|>|>|>>|>|>|>>|d1>>|d2>>|c3>>>>>>>||||>|>|>>|>|>|>>|>|>|>>|>|>|>>|d1|>>|d2|>>|c3|>>>>>>>>>> Evaluation of a simple spreadsheet. Notice that copying and pasting of subtables works in the same way as for ordinary tables, with the additional features that the names of the cells and references to cells in the formulas are renumbered automatically. Similarly, automatic renumbering is used when inserting new columns or rows, or when removing existing columns or rows. also allows you to use some of the spreadsheet capacities outside tables. For instance, assuming that you selected a scripting language from , you may insert a new using or . The behaviour is similar to the one of : when pressing , the current input is evaluated and you will see the corresponding output; you may switch back to the input by pressing once more. In particular, the input does not need to be preceded by (as in the case of spreadsheet cells). Contrary to executable switches, you may attach an identifier to the executable input field by disactivating the field or by editing the field in the focus bar. Inside other executable input fields, you may then refer to the value of the field by inserting a using or . As a variant to executable input fields, you may sometimes prefer to insert plain using or . These fields can only be used as inputs and pressing inside such a field will only recompute those other fields which depend on it. <\example> The excutable input fields may for instance be nice in pedagogic documents in which parts of the document may be modified and recomputed by the reader. For instance, evaluation of the input fragment <\quote-env> The derivative of >>> equals ,x)|*+1|)>>>>. The second derivative is given by ,x)|*+1|)>+x>>>. yields <\quote-env> The derivative of >>> equals ,x)|*+1|)>>>>. The second derivative is given by ,x)|*+1|)>+x>>>. Of course, if the reader changes the input function > into something else and presses , then the first and second derivatives will be updated automatically. We notice that field references can also be used inside spreadsheet cells in order to refer to some computational markup outside the table. Inversely, each spreadsheet also carries an invisible field which can be edited by deactivating the spreadsheet or from the focus bar (when selecting the entire spreadsheet). The field of the spreadsheet is used as a prefix for refering to the contents of cells outside the table or from within other spreadsheets. For instance, if equals , then will refer to the field inside the table. <\initial> <\collection>