341b12ba04
The new function is X(SRC,REF), which briefly for a cell in the neighborhood of REF returns the corresponding cell in the neighborhood in SRC. For further details, see the updated documention. In developing and documenting this function, I refined some of the existing error messages (e.g. showing the coordinates when there is an attempt to obtain a cell with a negative coordinate) and improved the error propagation to increase the chance that the innermost error will percolate to the top level.
8184 lines
139 KiB
Plaintext
8184 lines
139 KiB
Plaintext
#LyX 2.3 created this file. For more info see http://www.lyx.org/
|
||
\lyxformat 544
|
||
\begin_document
|
||
\begin_header
|
||
\save_transient_properties true
|
||
\origin unavailable
|
||
\textclass scrartcl
|
||
\begin_preamble
|
||
\usepackage{tikz}
|
||
\usepackage{pgffor}
|
||
\end_preamble
|
||
\options DIV=11
|
||
\use_default_options false
|
||
\maintain_unincluded_children false
|
||
\language english
|
||
\language_package default
|
||
\inputencoding auto
|
||
\fontencoding global
|
||
\font_roman "newcent" "default"
|
||
\font_sans "default" "default"
|
||
\font_typewriter "default" "default"
|
||
\font_math "auto" "auto"
|
||
\font_default_family default
|
||
\use_non_tex_fonts false
|
||
\font_sc false
|
||
\font_osf false
|
||
\font_sf_scale 100 100
|
||
\font_tt_scale 100 100
|
||
\use_microtype false
|
||
\use_dash_ligatures true
|
||
\graphics default
|
||
\default_output_format default
|
||
\output_sync 0
|
||
\bibtex_command default
|
||
\index_command default
|
||
\paperfontsize default
|
||
\spacing single
|
||
\use_hyperref true
|
||
\pdf_title "Teapot User Guide"
|
||
\pdf_author "Michael Haardt, Jörg Walter"
|
||
\pdf_bookmarks true
|
||
\pdf_bookmarksnumbered true
|
||
\pdf_bookmarksopen true
|
||
\pdf_bookmarksopenlevel 2
|
||
\pdf_breaklinks false
|
||
\pdf_pdfborder true
|
||
\pdf_colorlinks false
|
||
\pdf_backref false
|
||
\pdf_pdfusetitle true
|
||
\papersize default
|
||
\use_geometry false
|
||
\use_package amsmath 1
|
||
\use_package amssymb 1
|
||
\use_package cancel 1
|
||
\use_package esint 1
|
||
\use_package mathdots 0
|
||
\use_package mathtools 1
|
||
\use_package mhchem 1
|
||
\use_package stackrel 1
|
||
\use_package stmaryrd 1
|
||
\use_package undertilde 1
|
||
\cite_engine basic
|
||
\cite_engine_type default
|
||
\biblio_style plain
|
||
\use_bibtopic false
|
||
\use_indices false
|
||
\paperorientation portrait
|
||
\suppress_date false
|
||
\justification true
|
||
\use_refstyle 0
|
||
\use_minted 0
|
||
\index Index
|
||
\shortcut idx
|
||
\color #008000
|
||
\end_index
|
||
\secnumdepth 3
|
||
\tocdepth 3
|
||
\paragraph_separation indent
|
||
\paragraph_indentation default
|
||
\is_math_indent 0
|
||
\math_numbering_side default
|
||
\quotes_style english
|
||
\dynamic_quotes 0
|
||
\papercolumns 1
|
||
\papersides 1
|
||
\paperpagestyle fancy
|
||
\tracking_changes false
|
||
\output_changes false
|
||
\html_math_output 0
|
||
\html_css_as_file 0
|
||
\html_be_strict false
|
||
\end_header
|
||
|
||
\begin_body
|
||
|
||
\begin_layout Title
|
||
Teapot User Guide
|
||
\end_layout
|
||
|
||
\begin_layout Author
|
||
Michael Haardt, Jörg Walter, Glen Whitney
|
||
\end_layout
|
||
|
||
\begin_layout Date
|
||
\begin_inset CommandInset href
|
||
LatexCommand href
|
||
name " http://www.syntax-k.de/projekte/teapot"
|
||
target "http://www.syntax-k.de/projekte/teapot"
|
||
literal "false"
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Publishers
|
||
\begin_inset CommandInset href
|
||
LatexCommand href
|
||
name "https://code.studioinfinity.org/glen/teapot-spreadsheet"
|
||
target "https://code.studioinfinity.org/glen/teapot-spreadsheet"
|
||
literal "false"
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Abstract
|
||
For ages, spreadsheet programs have been closely associated with financial
|
||
calculations done by typical end-users.
|
||
But time has shown that there is also hacker's work which can be done with
|
||
them, like calculate monitor timings for various resolutions, or produce
|
||
convincing time statistics which justify the lack of documentation or the
|
||
need for a budget increase to your employer.
|
||
The first part of this user guide explains how the various functions of
|
||
teapot are used, whereas the second part gives an introduction to spreadsheets
|
||
and explains the expression evaluator and its functions.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
\begin_inset CommandInset toc
|
||
LatexCommand tableofcontents
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
\begin_inset Newpage newpage
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Section
|
||
Copyright, Contributors and License
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
|
||
\noun on
|
||
teapot
|
||
\noun default
|
||
(Table Editor And Planner, Or: Teapot), is copyrighted 1995–2006 by Michael
|
||
Haardt, and 2009–2010 by Jörg Walter, and 2019 by Glen Whitney, and is
|
||
licensed under the Gnu General Public License v3 or later.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
The implementation of clocked expressions is modelled after the description
|
||
of clocked evaluation in the PhD work of Jörg Wittenberger at the University
|
||
of Technology in Dresden, Germany.
|
||
The trigonometric functions were inspired by Koniorczyk Mátyás.
|
||
The context output format was contributed by Marko Schuetz.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
The (currently unused) message catalogs were contributed by Guido Müsch,
|
||
Wim van Dorst, and Volodymyr M.
|
||
Lisivka.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
This program is free software: you can redistribute it and/or modify it
|
||
under the terms of the GNU General Public License as published by the Free
|
||
Software Foundation, either version 3 of the License, or (at your option)
|
||
any later version.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||
FOR A PARTICULAR PURPOSE.
|
||
See the GNU General Public License for more details.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
You should have received a copy of the GNU General Public License v3 along
|
||
with this program.
|
||
If not, see <
|
||
\begin_inset CommandInset href
|
||
LatexCommand href
|
||
target "http://www.gnu.org/licenses/"
|
||
literal "false"
|
||
|
||
\end_inset
|
||
|
||
>.
|
||
\end_layout
|
||
|
||
\begin_layout Section
|
||
Introduction to Spreadsheets
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
General Introduction
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
A spreadsheet consists of cells formed by rows and columns.
|
||
Additionally, in many spreadsheets you have a third dimension, which you
|
||
can imagine as various layers laying on top of each other.
|
||
The third dimension allows you to hide intermediate results, calculate
|
||
additional results you do not want to appear in the
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
official
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
tables, keep information per time period (like 12 layers for each month
|
||
in a year) while allowing you to make calculations over the entire time
|
||
interval and much more.
|
||
Figure
|
||
\begin_inset CommandInset ref
|
||
LatexCommand ref
|
||
reference "fig:Three-Dimensional-Spread-Sheet"
|
||
|
||
\end_inset
|
||
|
||
shows the three dimensions:
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
\begin_inset Float figure
|
||
placement h
|
||
wide false
|
||
sideways false
|
||
status open
|
||
|
||
\begin_layout Plain Layout
|
||
\align center
|
||
\begin_inset ERT
|
||
status open
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
{
|
||
\backslash
|
||
color{white}
|
||
\backslash
|
||
hrule}
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
|
||
\backslash
|
||
begin{tikzpicture}[scale=.1,anchor=west]
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
|
||
\backslash
|
||
foreach
|
||
\backslash
|
||
z in {0,2,4,6}
|
||
\backslash
|
||
filldraw[fill=white,ystep=1,xstep=3,shift={(0,0,
|
||
\backslash
|
||
z)}] (0,0) rectangle (60,10) (0,0) grid (60,10);
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
|
||
\backslash
|
||
draw[->] (70,10,10) -- +(30,0,0) node{x};
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
|
||
\backslash
|
||
draw[->] (70,10,10) -- +(0,-10,0) node{y};
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
|
||
\backslash
|
||
draw[->] (70,10,10) -- +(0,0,-10) node{z};
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
|
||
\backslash
|
||
end{tikzpicture}
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
{
|
||
\backslash
|
||
color{white}
|
||
\backslash
|
||
hrule}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset Caption Standard
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset CommandInset label
|
||
LatexCommand label
|
||
name "fig:Three-Dimensional-Spread-Sheet"
|
||
|
||
\end_inset
|
||
|
||
Three-Dimensional Spread Sheet Layout
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
You can think of cells as variables, which value is the value of an associated
|
||
expression.
|
||
The expression may be constant, like 1.23, or it may be a function of other
|
||
cell values.
|
||
The advantage compared to a programmable calculator is that if you change
|
||
a number, you directly see all changes in other cells caused by that.
|
||
Often this allows you to get a feeling how much you may change basic sizes
|
||
with still getting satisfying results without having to solve the problem
|
||
analytically.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Spreadsheets offer many editing functions in order to modify, clear, copy
|
||
and move cells or blocks of cells.
|
||
Besides the usual mathematical functions, there are functions which work
|
||
on blocks of cells, like calculating the sum of a block or counting all
|
||
non-empty elements.
|
||
Further there are functions working on character strings, because most
|
||
likely you also want text besides numbers.
|
||
The next section will introduce you to some of these by examples.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
teapot is a traditional spreadsheet and a typical UNIX program, because
|
||
it does just one thing: Calculations.
|
||
It does not include any graphics functions and never will, but it allows
|
||
to export data in many formats, so you can use your favourite graphics
|
||
software.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
The First Steps
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Now that you have an idea what teapot is about, it is probably a good time
|
||
to take your first steps with it.
|
||
This section will show you how to create and save a sheet which contains
|
||
two numbers and their sum.
|
||
Start the program without any arguments
|
||
\begin_inset Foot
|
||
status collapsed
|
||
|
||
\begin_layout Plain Layout
|
||
If you are using the graphical version of teapot, please see section
|
||
\begin_inset CommandInset ref
|
||
LatexCommand vref
|
||
reference "subsec:Differences-Between-User"
|
||
|
||
\end_inset
|
||
|
||
.
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
teapot
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
You see an empty sheet with the cell cursor being at the upper left corner.
|
||
Further, the status line tells you that this cell is really empty:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
E @(0,0,0)=
|
||
\family default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
The
|
||
\family typewriter
|
||
E
|
||
\family default
|
||
means that you can edit the sheet.
|
||
A
|
||
\family typewriter
|
||
V
|
||
\family default
|
||
would mean that you could only view its contents.
|
||
The meaning of
|
||
\family typewriter
|
||
@()
|
||
\family default
|
||
will be explained soon.
|
||
You are now in the command mode of teapot.
|
||
Press the
|
||
\series bold
|
||
Enter
|
||
\series default
|
||
key to edit this cell.
|
||
A complete list of command mode functions will be given later.
|
||
A prompt will appear below the status line:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
Cell contents:
|
||
\family default
|
||
|
||
\series bold
|
||
1
|
||
\series default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Now the cell at position 0,0,0 has the integer constant 1.
|
||
The status line shows you the cell contents, whereas in the sheet you see
|
||
its value.
|
||
Since constants are identical with their values, both are 1.
|
||
Now move the cell cursor down one row and edit that cell, giving it the
|
||
integer constant
|
||
\family typewriter
|
||
41
|
||
\family default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Now that you have two numbers, move the cell cursor to cell 0,2,0 and give
|
||
that cell the following contents:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
Cell contents:
|
||
\family default
|
||
|
||
\series bold
|
||
@(0,0,0)+@(0,1,0)
|
||
\series default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
If you were confused about the difference between contents and value of
|
||
a cell, it should become more clear now: The status line shows the contents,
|
||
which is the arithmetic expression to calculate the sum of two cells, whereas
|
||
in the sheet you see the value of that expression: 42, which was to be
|
||
expected.
|
||
|
||
\family typewriter
|
||
@(
|
||
\family default
|
||
\shape italic
|
||
x
|
||
\family typewriter
|
||
\shape default
|
||
,
|
||
\family default
|
||
\shape italic
|
||
y
|
||
\family typewriter
|
||
\shape default
|
||
,
|
||
\family default
|
||
\shape italic
|
||
z
|
||
\family typewriter
|
||
\shape default
|
||
)
|
||
\family default
|
||
is a function which takes three coordinates and returns the value of the
|
||
cell at the given position.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
As you can see, the arithmetic expression is not too readable.
|
||
If you would move cells around, it would not even work any more.
|
||
For these reasons, you can use symbolic names instead of coordinates, called
|
||
labels.
|
||
When used in an expression, a label is like a pointer to a cell, its data
|
||
type is
|
||
\emph on
|
||
location
|
||
\emph default
|
||
.
|
||
Move to cell 0,0,0 and use
|
||
\series bold
|
||
/
|
||
\series default
|
||
(slash) in command mode to get into the main menu.
|
||
Depending on your screen size, you may not see all of it.
|
||
In this case, move the highlighted block right (or left) to scroll through
|
||
it and to see all items.
|
||
Now change its label attribute: A)ttributes, L)abel:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
Cell label:
|
||
\family default
|
||
|
||
\series bold
|
||
Paper
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Then go one cell down and change its label to
|
||
\series bold
|
||
Tapes
|
||
\series default
|
||
.
|
||
After, move again one cell down and change the expression to:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
Cell contents:
|
||
\family default
|
||
|
||
\series bold
|
||
@(Paper)+@(Tapes)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
As you see, you can call the function
|
||
\family typewriter
|
||
@
|
||
\family default
|
||
with three integer values or with one location value.
|
||
Now the expression is more understandable, at least to you.
|
||
To someone else, the sheet only contained three numbers, so a little text
|
||
should be added.
|
||
To accomplish that, a new column needs to be inserted: B)lock, I)insert,
|
||
C)olumn, W)hole column.
|
||
The last menu item means that you want to insert a whole new column, not
|
||
only a partial column.
|
||
If you move the cursor around, you will see that everything is still fine,
|
||
because you used labels.
|
||
Go to cell 0,0,0 and edit it:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
Cell contents:
|
||
\family default
|
||
|
||
\series bold
|
||
"Paper:"
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
This is how you enter strings.
|
||
A string is a data type on its own, don't confuse this with labels.
|
||
If you feel like it, leave the quotes and the colon away, and you will
|
||
see the difference, because the result will not be a string, but the value
|
||
of the label
|
||
\family typewriter
|
||
Paper
|
||
\family default
|
||
, which is
|
||
\family typewriter
|
||
&(1,0,0)
|
||
\family default
|
||
.
|
||
Now change the cells below to
|
||
\series bold
|
||
"Tapes:"
|
||
\series default
|
||
and
|
||
\series bold
|
||
"Result:"
|
||
\series default
|
||
.
|
||
This is something that is understandable to others, too.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
As the last step, save your work sheet to a file: F)ile, S)ave.
|
||
The native file format is XDR, so choose that.
|
||
Up to now, your sheet does not have a name, so you will be prompted for
|
||
one:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
New file name:
|
||
\family default
|
||
|
||
\series bold
|
||
firststep
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Unless you see an error message after, your sheet is written to a file.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
If you have come this far, quit (from the main menu) and you have successfully
|
||
completed your first steps on using teapot.
|
||
Now you know cells, the difference between contents and values, you learned
|
||
that labels are a good thing and you can do simple cell modifications as
|
||
well as saving your work.
|
||
This is enough for most applications.
|
||
If the capabilities described in the next section confuse you, then it
|
||
is unlikely that you need them really.
|
||
Just skip that section and don't worry about it.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
You may wonder what happens if you have circular dependencies, i.e.
|
||
you have a cell which evaluates to its own value plus one.
|
||
Well, the answer is that it depends on the order in which you create this
|
||
cell.
|
||
If you first give it the value 1 and after edit it to contain the expression
|
||
which refers to itself plus 1, then you will find that each recalculation,
|
||
like after editing other cells, will increase the value.
|
||
While this may be funny, it is certainly not useful as you can not reset
|
||
the cell and you have little control of its development.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
What you really want is a base value and an iterative expression along with
|
||
a way to control the recalculations.
|
||
teapot supports this by allowing two expressions per cell.
|
||
The expressions you have used so far are the ones which evaluate to the
|
||
base values.
|
||
Each time you edit a cell, the whole sheet will be reset, which means that
|
||
all results are recalculated using the base values.
|
||
After, you can clock the sheet, which is why the iterative part is also
|
||
called clocked expression.
|
||
A clock is an atomic operation, which means that all cell results will
|
||
be recalculated in a way that the new result will only show after the entire
|
||
recalculation.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
An examples will demonstrate how to make use of this feature.
|
||
The notation
|
||
\shape italic
|
||
x
|
||
\shape default
|
||
->
|
||
\shape italic
|
||
y
|
||
\shape default
|
||
means that
|
||
\shape italic
|
||
x
|
||
\shape default
|
||
is the base expression and
|
||
\shape italic
|
||
y
|
||
\shape default
|
||
is the clocked expression.
|
||
Don't let this confuse you, as both are entered separately: teapot does
|
||
not have an -> operator, but it displays the cell contents this way for
|
||
increased overview.
|
||
So, give the cell a base expression of
|
||
\family typewriter
|
||
1
|
||
\family default
|
||
and a clocked expression of
|
||
\family typewriter
|
||
@(0,0,0)+1
|
||
\family default
|
||
(using
|
||
\series bold
|
||
ESC-Enter
|
||
\series default
|
||
or
|
||
\series bold
|
||
Meta-Enter
|
||
\series default
|
||
) and you will see:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
@(0,0,0)=1 -> @(0,0,0)+1
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
The sheet is currently in reset condition and the result is 1.
|
||
Now clock it and you will see how the value increases.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
After this introductory chapter, you should be familiar with the basic concepts
|
||
in spread sheets.
|
||
The next chapters explain all functions available in detail.
|
||
You should read them to get an overview of the possibilities offered by
|
||
teapot.
|
||
Finally, we will come back to using teapot by showing some common problems
|
||
and their solutions.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
\begin_inset CommandInset label
|
||
LatexCommand label
|
||
name "subsec:Differences-Between-User"
|
||
|
||
\end_inset
|
||
|
||
Differences Between User Interfaces
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
|
||
\noun on
|
||
teapot
|
||
\noun default
|
||
comes in two flavours: A mouse-and-keyboard operated graphical application
|
||
and a traditional console-based program.
|
||
Large parts of this manual were written when the GUI version didn't exist,
|
||
so there may be occasional inconsistencies.
|
||
Note that the executable name for the graphical version of teapot is typically
|
||
|
||
\family typewriter
|
||
fteapot
|
||
\family default
|
||
, so to follow the tutorial above with the GUI version, start with that
|
||
command instead of
|
||
\family typewriter
|
||
teapot
|
||
\family default
|
||
.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Most notably, a few key bindings don't exist.
|
||
If something doesn't work as described in here, refer to the pull-down
|
||
menus, where all functionality can be found.
|
||
In addition to the common keys, the GUI variant has extended mouse and
|
||
keyboard bindings that work similarly to other GUI applications.
|
||
The table in the following section attempts to summarize all bindings from
|
||
both variants.
|
||
\end_layout
|
||
|
||
\begin_layout Section
|
||
Command Mode
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Right after starting teapot, you are in the command mode.
|
||
Many functions from the command mode are also available from menus, but
|
||
using keys is faster and some things, like moving the cell cursor, are
|
||
only available through keys.
|
||
Tables
|
||
\begin_inset CommandInset ref
|
||
LatexCommand vref
|
||
reference "tab:Key-Bindings-in"
|
||
|
||
\end_inset
|
||
|
||
through
|
||
\begin_inset CommandInset ref
|
||
LatexCommand vref
|
||
reference "tab:Key-Bindings-in-2"
|
||
plural "false"
|
||
caps "false"
|
||
noprefix "false"
|
||
|
||
\end_inset
|
||
|
||
list all available key bindings
|
||
\begin_inset Foot
|
||
status collapsed
|
||
|
||
\begin_layout Plain Layout
|
||
If you are using the graphical version of teapot, please see section
|
||
\begin_inset CommandInset ref
|
||
LatexCommand vref
|
||
reference "subsec:Differences-Between-User"
|
||
|
||
\end_inset
|
||
|
||
.
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
.
|
||
If a binding is only available in the console variant, it is enclosed in
|
||
square brackets; if the binding only works in the graphical variant, it
|
||
is in curly braces (the mnemonic for this notation is that square brackets
|
||
are
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
plain
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
and curly braces are
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
fancy
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
).
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
\begin_inset Float table
|
||
placement !tbh
|
||
wide false
|
||
sideways false
|
||
status open
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset Tabular
|
||
<lyxtabular version="3" rows="19" columns="3">
|
||
<features tabularvalignment="middle">
|
||
<column alignment="left" valignment="top" width="6cm">
|
||
<column alignment="left" valignment="top">
|
||
<column alignment="left" valignment="top">
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\series bold
|
||
Cursor Motions
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Function Key
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
ASCII Key
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Function
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Next Character/Right Arrow
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-F]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Right
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Prev.
|
||
Character/Left Arrow
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-B]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Left
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Next Line/Down Arrow
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-N]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Down
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Previous Line/Up Arrow
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-P]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Up
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Shift-PageDown}
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
{Click on right of layer number}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[+]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Next Layer
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Shift-PageUp}
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
{Click on left of layer number}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
- (Dash/Minus)
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Previous Layer
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Begin/Home
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-A]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
To column 0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
End
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-E]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
To last column
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Ctrl-Home} {Ctrl-PageUp}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[<]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
To row 0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Ctrl-End} {Ctrl-PageDown}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[>]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
To last row
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Shift-Home}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[_ (Underscore)]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
To Layer 0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Shift-End}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[*]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
To last layer
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-X >]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Jump one page right
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-X >]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Jump one page left
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
PageDown {Ctrl-Down}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-V]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Jump one page down
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
PageUp {Ctrl-Up}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Meta-V]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Jump one page up
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Ctrl-G}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Go to arbitrary location
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
</lyxtabular>
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset Caption Standard
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset CommandInset label
|
||
LatexCommand label
|
||
name "tab:Key-Bindings-in"
|
||
|
||
\end_inset
|
||
|
||
Cursor Motion Key Bindings in Command Mode
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
\begin_inset Float table
|
||
placement !tbh
|
||
wide false
|
||
sideways false
|
||
status open
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset Tabular
|
||
<lyxtabular version="3" rows="14" columns="3">
|
||
<features tabularvalignment="middle">
|
||
<column alignment="left" valignment="top" width="5cm">
|
||
<column alignment="left" valignment="top">
|
||
<column alignment="left" valignment="top">
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\series bold
|
||
Program Control
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Function Key
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
ASCII Key
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Function
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
F10
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[/]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Main menu
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
F3
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-X Ctrl-S] {Ctrl-S}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Save sheet
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Ctrl-Shift-S}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Save sheet as...
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Esc z]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Save sheet and quit
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
F2
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-X Ctrl-R] {Ctrl-O}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Load sheet
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-F}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Activate File menu
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-V}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Activate View menu
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-O}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Activate fOrmat menu
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-H}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Activate Help menu
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Ctrl-L
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Redraw screen
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-C] [Ctrl-G] {Esc}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Abort current action
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Cancel
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-X Ctrl-C] {Ctrl-Q}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Quit
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
</lyxtabular>
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset Caption Standard
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset CommandInset label
|
||
LatexCommand label
|
||
name "tab:Key-Bindings-in-1"
|
||
|
||
\end_inset
|
||
|
||
Program Control Key Bindings in Command Mode
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
\begin_inset Float table
|
||
placement !tbh
|
||
wide false
|
||
sideways false
|
||
status open
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset Tabular
|
||
<lyxtabular version="3" rows="26" columns="3">
|
||
<features tabularvalignment="middle">
|
||
<column alignment="left" valignment="top" width="5cm">
|
||
<column alignment="left" valignment="top">
|
||
<column alignment="left" valignment="top">
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\series bold
|
||
Modify Cells/Blocks
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Function Key
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
ASCII Key
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Function
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Enter
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-J] [Ctrl-M]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Edit cell contents
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Backspace
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-H]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Edit cell and delete last character
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
, @,
|
||
\emph on
|
||
digit
|
||
\emph default
|
||
,
|
||
\emph on
|
||
letter
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Overwrite cell contents
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Meta-Enter
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Esc Ctrl-J] [Esc Ctrl-M]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Edit clocked cell contents
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
.
|
||
(Period)
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Start/End Mark block (see text)
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Shift-Right} {Shift-Left}
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
{Shift-Down} {Shift-Up}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Start Mark and Move
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Ctrl-Insert}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Ctrl-C}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Copy cell/text/block; End Mark
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Shift-Delete}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Ctrl-X}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Designate block for moving; End Mark
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Shift-Insert}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-Y] {Ctrl-V}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Paste/move block
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Delete}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Clear block
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-A}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Set cell label
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-B}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Toggle cell/block bold
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-U}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Toggle cell/block underlined
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-L}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Make cell/block left justified
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-C}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Make cell/block centered
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-R}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Make cell/block right justified
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-P}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Set cell/block precision
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-W}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Set column width
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-S}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Set cell/block scientific notation
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-E}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Toggle cell/block shadowed
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-T}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Toggle cell/block transparent
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Meta-I}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Toggle cell/block ignored
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Ctrl-R
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Reset sheet
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
F9, {Shift-Tab}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-S]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Clock sheet
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
</lyxtabular>
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset Caption Standard
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset CommandInset label
|
||
LatexCommand label
|
||
name "tab:Key-Bindings-in-2"
|
||
|
||
\end_inset
|
||
|
||
Key Bindings that Modify Cells in Command Mode
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
One command-mode key in particular needs additional explanation.
|
||
The .
|
||
(Period) marks blocks: The first time it is pressed marks the beginning
|
||
of a block, which is then extended by moving the cell cursor.
|
||
The next time, it marks the end of the block which lets you move the cell
|
||
cursor after without changing the block.
|
||
The third time, it removes the block marks again.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Section
|
||
The Line Editor
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Many functions in teapot require editing a line of text, e.g.
|
||
editing cell contents, typing file names and the line.
|
||
Similar to the command mode, all things can be reached by control codes
|
||
and most by function keys.
|
||
Table
|
||
\begin_inset CommandInset ref
|
||
LatexCommand vref
|
||
reference "tab:Key-Bindings-forLineEditor"
|
||
|
||
\end_inset
|
||
|
||
lists all available key bindings, again with brackets for those keys that
|
||
only work in the console variant and curly braces for the graphical variant.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
\begin_inset Float table
|
||
wide false
|
||
sideways false
|
||
status open
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset Tabular
|
||
<lyxtabular version="3" rows="16" columns="3">
|
||
<features tabularvalignment="middle">
|
||
<column alignment="left" valignment="top">
|
||
<column alignment="left" valignment="top">
|
||
<column alignment="left" valignment="top">
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Function Key
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
ASCII Key
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Function
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Previous Character/Left Arrow
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-B]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Move cursor left
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Next Character/Right Arrow
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-F]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Move cursor right
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Begin/Home
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-A]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Move cursor to column 0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
End
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-E]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Move cursor to last column
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Enter
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-J] [Ctrl-M]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Finish editing/accept line
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Ctrl-L
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Redraw screen
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-T]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Transpose characters
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-
|
||
\backslash
|
||
]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Go to matching paren
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Cancel [Up Arrow] {Esc}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-G] [Ctrl-C]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Abort editing
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Backspace
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-H]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Delete previous character
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-K]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Delete rest of line
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Delete
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-?] [Ctrl-D]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Delete current character
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Tab]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
File name completion
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Insert
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Toggle insert mode
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
{Tab}
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
[Ctrl-O]
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Toggle motion in sheet (see text)
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
</lyxtabular>
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset Caption Standard
|
||
|
||
\begin_layout Plain Layout
|
||
\begin_inset CommandInset label
|
||
LatexCommand label
|
||
name "tab:Key-Bindings-forLineEditor"
|
||
|
||
\end_inset
|
||
|
||
Key Bindings for the line editor
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Besides the regular line editor functions, you may use Ctrl-O (Tab in the
|
||
GUI version) to temporarily leave the editor in order to move around in
|
||
the sheet if you are editing cell contents.
|
||
Another Ctrl-O (resp.
|
||
Tab) brings you back to the line editor.
|
||
While moving around in the sheet, you can insert the value (v) or position
|
||
(p) at the cursor position in the edited cell.
|
||
Clicking on a cell while editing has the same effect as moving to that
|
||
cell and pressing (p).
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Aborting line editing means that you will return immediately to command
|
||
mode; whatever you started doing will have no effect.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Section
|
||
Interactive Functions
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Most actions are available through the menu.
|
||
Most of these will be applied to all cells within a block if a block of
|
||
cells is marked.
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
\begin_inset CommandInset label
|
||
LatexCommand label
|
||
name "subsec:Cell-Attributes"
|
||
|
||
\end_inset
|
||
|
||
Cell Attributes
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Cells can have several attributes:
|
||
\end_layout
|
||
|
||
\begin_layout Itemize
|
||
A cell label, which is useful because it avoids the need to directly address
|
||
cells by their position.
|
||
A cell label must be different from function names.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Itemize
|
||
The cell adjustment, which determines if the cell value is printed left
|
||
adjusted, right adjusted or centered.
|
||
\end_layout
|
||
|
||
\begin_layout Itemize
|
||
Text attributes, such as bold or underlined.
|
||
\end_layout
|
||
|
||
\begin_layout Itemize
|
||
The precision for the output of floating point values.
|
||
The default is 2 digits after the dot.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Itemize
|
||
Whether floating point numbers should be printed in scientific notation
|
||
(0.123e1) or as decimal number (1.23).
|
||
It only affects the output, if the cell value is a floating point number.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Itemize
|
||
Whether the cell is shadowed by its left neighbour.
|
||
This means that the left neighbour cell additionally uses the room of the
|
||
shadowed cell.
|
||
\end_layout
|
||
|
||
\begin_layout Itemize
|
||
Whether the cell is ignored.
|
||
\end_layout
|
||
|
||
\begin_layout Itemize
|
||
Whether the cell is locked, which prevents accidental edits or clearing
|
||
of the cell.
|
||
Note that block operations override this attribute, because when you deal
|
||
with blocks, you usually know what you are doing.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Itemize
|
||
Whether the cell is
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
transparent
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
or not, which means whether special characters for e.g.
|
||
roff and \SpecialChar LaTeX
|
||
should be quoted (default) or not.
|
||
Not quoting them allows special effects (if you know roff or \SpecialChar LaTeX
|
||
), but is
|
||
of course not portable.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
In addition, each column has a width.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Precision
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
The precision only changes what is printed, teapot always uses the maximum
|
||
precision for calculations.
|
||
It also only affects the output if the cell value is a floating point number.
|
||
Entering an empty precision means to set it to the default value.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Exponential / Decimal
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Forces exponential notation for numbers in a cell.
|
||
Decimal mode will prefer plain decimal numbers unless the result is very
|
||
big or very small.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Adjustment
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Cells contents can be aligned to the left, right or centered.
|
||
By default, text is left adjusted and numbers are right adjusted.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Text attributes
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
These attributes determine how the value of the cell should be displayed,
|
||
in terms of characteristics of the displayed text.
|
||
Currently, bold and underlined attributes are implemented, which may be
|
||
applied independently.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Label
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
This function lets you edit the cell label of the current cell.
|
||
Further it changes all occurences of it in the cell contents to the new
|
||
value, unless you erased the cell label.
|
||
If a block has been marked by the time you edit the cell label, all occurences
|
||
of the label in contents of cells in that block will be changed.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Lock
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
You can lock cells to protect them from accidental editing.
|
||
Note that this protects you from modifying single cells.
|
||
If you modify a block of cells which contains locked cells, those will
|
||
be modified as well.
|
||
This has been done because when using block commands, you usually know
|
||
what you are doing.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Ignore
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Ignored cells will be completely ignored.
|
||
They appear as empty cells on screen and during calculations.
|
||
This is useful for temporarily disabling parts of your calculation, as
|
||
the former content reappears when the ignore is removed again.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Transparent
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Usually, values are quoted as needed so that you get the exact same output
|
||
as on screen.
|
||
Transparent cells will be exported as-is into display-oriented file formats
|
||
(\SpecialChar LaTeX
|
||
, etc.) so that you can embed commands for subsequent processing in cell
|
||
values.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Shadow
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Shadowed cells are effectively nonexistant.
|
||
Instead, their left neighbour cell extends into the shadowed cell, so that
|
||
longer text can be displayed.
|
||
You may think of shadowing as a way to get multi-column cells.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Column Width
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
The column width only affects the screen display, not the formatting of
|
||
the final output (except formatted text files).
|
||
It is intended to let you make better usage of the screen for more overview.
|
||
If the width is too small to display the cell value, a placeholder will
|
||
be displayed.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
Block Functions
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Copy/Move
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
To copy a block of cells, mark it, then move the cell cursor to where the
|
||
upper left corner of the copy should be and issue the copy command.
|
||
Moving works similar, just use the move command.
|
||
Of course you can mark three-dimensional blocks and copy them anywhere
|
||
in the three-dimensional sheet, but doing so requires a good three-dimensional
|
||
imagination to get what you want.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Fill
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
To fill a block of cells, first mark a the block it should be filled with.
|
||
This may be just one cell! Then move the cell cursor to where the upper
|
||
left corner of the block to be filled should be and issue the fill command.
|
||
You will be prompted for how often the marked block should be repeated
|
||
in each dimension.
|
||
For example, you may to repeat a cell 9 times below.
|
||
Mark it, then move down one row.
|
||
Issue the fill command and answer 1 to the number of column repetitions,
|
||
9 to rows and 1 to layers.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Fill With
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
This works in the
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
opposite direction
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
from Fill, but is handy for when you just want to replicate a single cell
|
||
but don't know the exact count of repetitions you want.
|
||
To use this operation, first mark the block you want to fill.
|
||
Then make the current cell be the (single) cell you want to use to fill
|
||
that block.
|
||
Then execute Fill With.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Clear
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Clearing means to delete the cell contents and set all attributes to the
|
||
default value.
|
||
If you want to preserve the attributes, just edit the contents of a cell
|
||
and delete them.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Insert
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Since work sheets can be three-dimensional, you can insert cells in all
|
||
three dimensions, too.
|
||
The inserted cells will be empty and their attributes have the default
|
||
values.
|
||
Cells will always be moved away from the front upper left corner to make
|
||
room for the inserted cells.
|
||
If no block is marked, you will be asked if you really only want to insert
|
||
a cell of if you want to insert a whole row, line or sheet.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Delete
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Deleting works contrary to inserting.
|
||
The deleted cells will be filled by moving neighbour cells to their positions.
|
||
You will be prompted for the direction from where those cells will be taken.
|
||
Deleting an entire column column-wise is done by marking the column, use
|
||
the delete command and chose X direction.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
\begin_inset CommandInset label
|
||
LatexCommand label
|
||
name "subsec:Sort"
|
||
|
||
\end_inset
|
||
|
||
Sort
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Marked blocks of cells can be sorted after one or multiple keys, either
|
||
column-wise, row-wise or depth-wise.
|
||
Sorting a two dimensional block row-wise will sort lines, but if a three
|
||
dimensional block is sorted row-wise, then horizontal layers will be sorted.
|
||
The sort key is specified as vector which is orthogonal to the sorted elements,
|
||
either in ascending or descending order.
|
||
The following example illustrates the sort function.
|
||
The upper left part of the screen should look like this:
|
||
\begin_inset Separator latexpar
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
\align center
|
||
\begin_inset Tabular
|
||
<lyxtabular version="3" rows="5" columns="3">
|
||
<features tabularvalignment="middle">
|
||
<column alignment="center" valignment="top">
|
||
<column alignment="center" valignment="top">
|
||
<column alignment="center" valignment="top">
|
||
<row>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
1
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
1
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
one
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
1
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
2
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
two
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
2
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
3
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
three
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
3
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
4
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
four
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
</lyxtabular>
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
The box shows you which block to mark.
|
||
Now this block should be sorted row-wise, with the sort key being the numbers
|
||
in descending order, i.e.
|
||
we want the lines being numbered 4,3,2,1.
|
||
Go to the block menu, then select sort.
|
||
Use
|
||
\family typewriter
|
||
R)ow
|
||
\family default
|
||
, because that is how we want to sort this block.
|
||
The X position of the sort key vector is 0, because the column 0 contains
|
||
the numbers.
|
||
The Z position is 0, too, because those numbers are on sheet 0.
|
||
Now chose
|
||
\family typewriter
|
||
D)escending
|
||
\family default
|
||
as direction.
|
||
At this point, you could add a secondary key or decide to sort the block
|
||
by the keys entered so far.
|
||
Use
|
||
\family typewriter
|
||
S)ort region
|
||
\family default
|
||
to sort it.
|
||
That's it, the screen should look like this now:
|
||
\begin_inset Separator latexpar
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
\align center
|
||
\begin_inset Tabular
|
||
<lyxtabular version="3" rows="5" columns="3">
|
||
<features tabularvalignment="middle">
|
||
<column alignment="center" valignment="top">
|
||
<column alignment="center" valignment="top">
|
||
<column alignment="center" valignment="top">
|
||
<row>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
1
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
4
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
four
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
1
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
3
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
three
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
2
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
2
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
two
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
3
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
1
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
one
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
</lyxtabular>
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Mirror
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Mirroring a marked block of cells can be done in three directions: Left/right,
|
||
upside/down and front/back.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
Saving and Loading
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
File names
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Usually, you want to overwrite the loaded file.
|
||
For this reason, the loaded file name is remembered.
|
||
If the sheet doesn't have a file name, like after starting an empty sheet,
|
||
you will be asked for a name when saving.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Occasionally, you may want to rename a sheet, like before making critical
|
||
changes or when you load an existing sheet to have a start for making a
|
||
new one.
|
||
The Save As function allows you to save the file under a new name.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
File Formats
|
||
\end_layout
|
||
|
||
\begin_layout Paragraph
|
||
XDR (.tp)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
XDR (eXternal Data Representation) is a standard invented by Sun Microsystems
|
||
which defines a canonical way of storing/transporting data on external
|
||
media.
|
||
Its advantage is that it is widely available and that it defines a portable
|
||
floating point number format.
|
||
The native teapot file format uses XDR so it is portable across different
|
||
machine architectures and operating systems.
|
||
The advantage of this over the portable ASCII format is that due to the
|
||
(usually) missing conversion calculations any floating point constants
|
||
will be saved/loaded exactly without conversion errors.
|
||
\end_layout
|
||
|
||
\begin_layout Paragraph
|
||
ASCII (.tpa)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
The ASCII file format allows easy generation/modification of saved sheets
|
||
by shell scripts.
|
||
Due to binary/ASCII conversion, there may be conversion errors in floating
|
||
point constants.
|
||
The default extension is
|
||
\family typewriter
|
||
.
|
||
\family default
|
||
tpa.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Paragraph
|
||
CSV (.csv)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
CSV (comma seperated value) files only contain the data, not the expressions
|
||
calculating it.
|
||
Many spread sheets can generate this file format and many graphics programs
|
||
like gnuplot(1) can read it.
|
||
The field separator usually is a tab or comma, strings may be enclosed
|
||
in double quotes and decimal numbers have a dot to mark the fractional
|
||
part.
|
||
One popular variation uses semicolons for separating fields and a decimal
|
||
comma instead of a decimal point, which teapot tries to autodetect.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
On load, strings without quotes and with a
|
||
\emph on
|
||
0x
|
||
\emph default
|
||
prefix followed by hexadecimal digits will be converted to integers.
|
||
When loading CSV files, the sheet will not be cleared and the data will
|
||
be load relative to the current cursor position.
|
||
\end_layout
|
||
|
||
\begin_layout Paragraph
|
||
SC SpreadsheetCalculator (.sc)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
teapot can load simple SC sheets to convert them to teapot's native format.
|
||
While loading, teapot converts all references to absolute cell positions
|
||
to labels.
|
||
This allows to insert and delete in such sheets without screwing the whole
|
||
sheet up.
|
||
teapot can not save sheets in SC format, because SC lacks many features.
|
||
For now, only the most basic SC features are supported.
|
||
\end_layout
|
||
|
||
\begin_layout Paragraph
|
||
Lotus 1-2-3 (.wk1)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
teapot can load simple WK1 sheets to convert them to teapot's native format.
|
||
By default, 1-2-3 cell references are relative, so don't be surprised by
|
||
a big amount of relative references in the resulting teapot sheet.
|
||
For now, only the most basic 1-2-3 features are supported.
|
||
\end_layout
|
||
|
||
\begin_layout Paragraph
|
||
Formatted ASCII (.txt)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
The generated formatted ASCII files contain about what you see on the screen.
|
||
If your sheet has more than one layer, then the various layers will be
|
||
saved separated by form feeds.
|
||
\end_layout
|
||
|
||
\begin_layout Paragraph
|
||
Troff tbl (.tbl)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
teapot can generate tbl(1) table bodies in single files which are supposed
|
||
to be used like this:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
.TS
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
|
||
\family default
|
||
\shape italic
|
||
options
|
||
\family typewriter
|
||
\shape default
|
||
;
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
.so
|
||
\family default
|
||
|
||
\shape italic
|
||
filename
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
|
||
\family typewriter
|
||
\shape default
|
||
.TE
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
You will have to use soelim(1) to eliminate the
|
||
\family typewriter
|
||
.so
|
||
\family default
|
||
requests before the tbl run.
|
||
The
|
||
\shape italic
|
||
options
|
||
\family typewriter
|
||
\shape default
|
||
;
|
||
\family default
|
||
are optional.
|
||
If you use GNU roff, you will need to eliminate
|
||
\family typewriter
|
||
.lf
|
||
\family default
|
||
requests, because this GNU roff extension confuses GNU tbl:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
soelim
|
||
\family default
|
||
|
||
\shape italic
|
||
file
|
||
\shape default
|
||
|
||
\family typewriter
|
||
| grep -v '^
|
||
\backslash
|
||
.lf'
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Alternatively, you can generate a stand-alone document, which needs no further
|
||
operations to format and print.
|
||
Note: If no block is marked, the whole sheet will be saved.
|
||
\end_layout
|
||
|
||
\begin_layout Paragraph
|
||
\SpecialChar LaTeX
|
||
(.latex)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
If you generate \SpecialChar LaTeX2e
|
||
tables in single files, you include them in documents using
|
||
the
|
||
\family typewriter
|
||
|
||
\backslash
|
||
include
|
||
\family default
|
||
command.
|
||
Alternatively, you can generate a stand-alone document, which needs no
|
||
further operations to format and print.
|
||
Note: If no block is marked, the whole sheet will be saved.
|
||
\end_layout
|
||
|
||
\begin_layout Paragraph
|
||
Con\SpecialChar TeX
|
||
t (.tex)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Analogous to \SpecialChar LaTeX
|
||
output, this generates input suitable to the Con\SpecialChar TeX
|
||
t macro package.
|
||
\end_layout
|
||
|
||
\begin_layout Paragraph
|
||
HTML (.html)
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
You can generate html table bodies in single files which could be used in
|
||
combination with server-side includes.
|
||
This feature differs between the various servers, so refer to the manual
|
||
for your web server for details, please.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Alternatively, you can generate a stand-alone document.
|
||
Note: If no block is marked, the whole sheet will be saved.
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
Other Functions
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Goto Location
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Sometimes, you directly want to go to a specific position, either to change
|
||
its contents to see which cell a location expression refers to.
|
||
This function lets you enter an expression, which must evaluate to a value
|
||
of the type location.
|
||
If so, the cursor is positioned to that location.
|
||
For example, you could enter
|
||
\family typewriter
|
||
&(10,2)
|
||
\family default
|
||
to go to cell 10,2 of the current layer or you could enter the name of
|
||
a label you want to go to.
|
||
Relative movements are no problem, either.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Shell
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Start a sub shell.
|
||
Exiting from that sub shell will bring you back into teapot.
|
||
This function does not exist in the GUI version.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Version
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
teapot will display its version number and copyright statement.
|
||
\end_layout
|
||
|
||
\begin_layout Subsubsection
|
||
Help
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
If teapot was built with the integrated help viewer, you can access this
|
||
manual from within teapot itself.
|
||
\end_layout
|
||
|
||
\begin_layout Section
|
||
Batch functions
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Besides interactive facilities, teapot has a batch mode.
|
||
Using this batch mode, shell scripts can generate output from teapot sheets.
|
||
This is handy if you use make(1) to generate a bigger document containing
|
||
tables, because you don't have to generate a tbl or \SpecialChar LaTeX
|
||
file each time you
|
||
modified a sheet: make will do so.
|
||
In batch mode, teapot reads batch commands from standard input.
|
||
The following commands are available:
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
goto
|
||
\family default
|
||
\shape italic
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
location
|
||
\series default
|
||
\shape default
|
||
Go to the specified
|
||
\shape italic
|
||
location
|
||
\shape default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
from
|
||
\family default
|
||
\shape italic
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
location
|
||
\series default
|
||
\shape default
|
||
Start marking a block.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
to
|
||
\family default
|
||
\shape italic
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
location
|
||
\series default
|
||
\shape default
|
||
End marking a block.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
sort-x
|
||
\family default
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
d|a
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
y
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
z
|
||
\emph default
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
[
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
d|a
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
y
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
z
|
||
\emph default
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
...
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
]
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
sort-
|
||
\family default
|
||
y
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
d|a
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
z
|
||
\emph default
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
[
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
d|a
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
z
|
||
\emph default
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
...
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
]
|
||
\series default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
sort-
|
||
\family default
|
||
z
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
d|a
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
y
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
[
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
d|a
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
y
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
...
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
]
|
||
\series default
|
||
Sorts the marked block as described in section
|
||
\begin_inset CommandInset ref
|
||
LatexCommand vref
|
||
reference "subsec:Sort"
|
||
|
||
\end_inset
|
||
|
||
, column-wise, row-wise or depth-wise, respectivly.
|
||
"d" or "a" specify the sort order to be descending or ascending.
|
||
|
||
\emph on
|
||
x
|
||
\emph default
|
||
,
|
||
\emph on
|
||
y
|
||
\emph default
|
||
and
|
||
\emph on
|
||
z
|
||
\emph default
|
||
specify the position of the sort key
|
||
\family typewriter
|
||
relative
|
||
\family default
|
||
to the first cell of the marked block.
|
||
Up to eight sort keys can be specified.
|
||
This example reproduces the result from section
|
||
\begin_inset CommandInset ref
|
||
LatexCommand ref
|
||
reference "subsec:Sort"
|
||
|
||
\end_inset
|
||
|
||
:
|
||
\begin_inset Separator latexpar
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_deeper
|
||
\begin_layout Quote
|
||
|
||
\family typewriter
|
||
echo "
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
from &(1,1,0)
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
to &(2,4,0)
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
sort-y d 0 0
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
save-csv result_num.txt
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
" | teapot -b doc/unsorted
|
||
\end_layout
|
||
|
||
\end_deeper
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
save-tbl
|
||
\family default
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
file
|
||
\series default
|
||
\emph default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
save-csv
|
||
\family default
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
file
|
||
\series default
|
||
\emph default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
save-latex
|
||
\family default
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
file
|
||
\series default
|
||
\emph default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
save-context
|
||
\family default
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
file
|
||
\series default
|
||
\emph default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
save-html
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\family default
|
||
\emph on
|
||
file
|
||
\series default
|
||
\emph default
|
||
Save the marked block in the specified format as
|
||
\emph on
|
||
file
|
||
\emph default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
load-csv
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\family default
|
||
\emph on
|
||
file
|
||
\series default
|
||
\emph default
|
||
Load
|
||
\emph on
|
||
file
|
||
\emph default
|
||
in the specified format to the last
|
||
\family typewriter
|
||
goto
|
||
\family default
|
||
location.
|
||
This is the same functionality as the interactive load described in subsection
|
||
|
||
\emph on
|
||
5.12.4
|
||
\emph default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Section
|
||
Expressions
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Cells consist of a base (reset) expression, a clocked expression, and a
|
||
current value.
|
||
If the sheet is currently in the reset state (the default), all cells display
|
||
their base value as current value.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
When the sheet is clocked (see Table
|
||
\begin_inset CommandInset ref
|
||
LatexCommand ref
|
||
reference "tab:Key-Bindings-in"
|
||
|
||
\end_inset
|
||
|
||
), the clocked expression is evaluated, using the current value of referenced
|
||
cells.
|
||
The new current value is the result of that evaluation.
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
Data Types
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
In teapot, each value has an associated data type.
|
||
The following data types exist:
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
Empty Empty cells have 0, 0.0 or
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
as value, depending on context.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
String A string is a sequence of characters enclosed by double quotes:
|
||
\family typewriter
|
||
"This is a string"
|
||
\family default
|
||
.
|
||
A double quote can be part of the string, if it is quoted using a backslash:
|
||
|
||
\family typewriter
|
||
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
|
||
\backslash
|
||
|
||
\family default
|
||
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
.
|
||
If you want the backslash to appear in the output instead of quoting the
|
||
next character, use it to quote itself:
|
||
\family typewriter
|
||
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
|
||
\backslash
|
||
|
||
\backslash
|
||
|
||
\family default
|
||
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
Floating
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
Point Floating point values are inexact, their precision and range depends
|
||
on the implementation of the C type double on your system.
|
||
An example is:
|
||
\family typewriter
|
||
42.0
|
||
\family default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
Integer Integer values are exact, their range depends on the C type long
|
||
on your system.
|
||
An example is:
|
||
\family typewriter
|
||
42
|
||
\family default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
Location Cell labels and the
|
||
\family typewriter
|
||
&()
|
||
\family default
|
||
function have this type, but there are no location constant literals.
|
||
However,
|
||
\family typewriter
|
||
&(3,2,1),
|
||
\family default
|
||
for example, acts very much like a location constant literal.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
Error Syntactical or semantical (type mismatch) errors cause this value,
|
||
as well as division by 0 and the function
|
||
\family typewriter
|
||
error()
|
||
\family default
|
||
.
|
||
An error always has an assigned error message.
|
||
Functions and operators, when applied to a value of the type error, evaluate
|
||
to just that value.
|
||
That way, the first error which was found deep inside a complicated expression
|
||
will be shown.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
Operators
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Unlike other spread sheets, the operators in teapot check the type of the
|
||
values they are applied to, which means the try to add a string to a floating
|
||
point number will result in an type error.
|
||
Operators on locations in the spreadsheet, which are just triples of integers,
|
||
generally operate following typical rules for vectors, with particular
|
||
notes below.
|
||
The following operators are available, listed in ascending precendence:
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
<
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to 1 if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is less than
|
||
\emph on
|
||
y
|
||
\emph default
|
||
.
|
||
If
|
||
\emph on
|
||
x
|
||
\emph default
|
||
or
|
||
\emph on
|
||
y
|
||
\emph default
|
||
are empty, they are considered to be 0 if the other is an integer number,
|
||
0.0 if it is a floating point number and the empty string if it is a string.
|
||
On locations,
|
||
\emph on
|
||
x<y
|
||
\emph default
|
||
if every component of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is less than or equal to the corresponding component of
|
||
\emph on
|
||
y
|
||
\emph default
|
||
and at least one is strictly less.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
<=
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to 1 if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is less than or equal to
|
||
\emph on
|
||
y
|
||
\emph default
|
||
.
|
||
For locations, this must hold for every component.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
>=
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to 1 if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is greater than or equal to
|
||
\emph on
|
||
y
|
||
\emph default
|
||
.
|
||
For locations, this must hold for every component.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
>
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to 1 if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is greater than
|
||
\emph on
|
||
y
|
||
\emph default
|
||
.
|
||
As with <, for locations, every component must be greater than or equal,
|
||
and at least one must be strictly greater.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
==
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to 1 if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is equal to
|
||
\emph on
|
||
y
|
||
\emph default
|
||
.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
~=
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to 1 if the floating point value
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is almost equal to the floating point value
|
||
\emph on
|
||
y
|
||
\emph default
|
||
.
|
||
Almost equal means, the numbers are at most neighbours.
|
||
It is an error to use this with any type but float.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
!=
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to 1 if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is not equal to
|
||
\emph on
|
||
y
|
||
\emph default
|
||
.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
+
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to the sum if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
and
|
||
\emph on
|
||
y
|
||
\emph default
|
||
are numbers.
|
||
If
|
||
\emph on
|
||
x
|
||
\emph default
|
||
and
|
||
\emph on
|
||
y
|
||
\emph default
|
||
are strings, the result is the concatenated string.
|
||
If they are locations, this operates componentwise.
|
||
There is no dedicated logical
|
||
\noun on
|
||
or
|
||
\noun default
|
||
operation, so use
|
||
\family typewriter
|
||
+
|
||
\family default
|
||
for that.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
-
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to the difference if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
and
|
||
\emph on
|
||
y
|
||
\emph default
|
||
are numbers.
|
||
If they are locations, this operates componentwise.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
*
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to the product if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
and
|
||
\emph on
|
||
y
|
||
\emph default
|
||
are numbers.
|
||
There is no dedicated logical
|
||
\noun on
|
||
and
|
||
\noun default
|
||
operation, so use
|
||
\family typewriter
|
||
*
|
||
\family default
|
||
for that.
|
||
You can multiply a location by an integer, or take the dot product of the
|
||
coordinates of two locations (although the use case for that is unclear).
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
/
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to the quotient if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
and
|
||
\emph on
|
||
y
|
||
\emph default
|
||
are numbers.
|
||
You can divide a location by an integer.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x
|
||
\family typewriter
|
||
\emph default
|
||
%
|
||
\family default
|
||
\emph on
|
||
y
|
||
\series default
|
||
\emph default
|
||
evaluates to the remainder of the division if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
and
|
||
\emph on
|
||
y
|
||
\emph default
|
||
are numbers.
|
||
You can mod a location by an integer, or operate on two locations, in which
|
||
case the mod operation applies componentwise.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
x^y
|
||
\series default
|
||
\emph default
|
||
evaluates to
|
||
\emph on
|
||
x
|
||
\emph default
|
||
to the power of
|
||
\emph on
|
||
y
|
||
\emph default
|
||
.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
-
|
||
\family default
|
||
\emph on
|
||
x
|
||
\series default
|
||
\emph default
|
||
evaluates to
|
||
\family typewriter
|
||
-
|
||
\family default
|
||
\emph on
|
||
x
|
||
\emph default
|
||
if
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is a number or location.
|
||
If
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is empty, the result will be empty, too.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\family typewriter
|
||
\series bold
|
||
(
|
||
\family default
|
||
\emph on
|
||
expression
|
||
\family typewriter
|
||
\emph default
|
||
)
|
||
\family default
|
||
\series default
|
||
evaluates to the expression.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series bold
|
||
\emph on
|
||
function
|
||
\family typewriter
|
||
\emph default
|
||
(
|
||
\family default
|
||
\emph on
|
||
argument
|
||
\family typewriter
|
||
\emph default
|
||
,
|
||
\family default
|
||
...
|
||
\family typewriter
|
||
)
|
||
\family default
|
||
\series default
|
||
evaluates to the value of the function applied to the values resulting
|
||
from evaluating the argument expressions.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
Functions
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
This section documents all available functions in alphabetical order.
|
||
The functions are given in a C-like notation, so use
|
||
\family typewriter
|
||
@(0,0,0)
|
||
\family default
|
||
instead of
|
||
\family typewriter
|
||
@(integer 0, integer 0, integer 0)
|
||
\family default
|
||
.
|
||
If no type is given for the result of a function, it means the result type
|
||
depends on the arguments.
|
||
Brackets mark optional arguments.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
@
|
||
\series medium
|
||
([int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph on
|
||
x
|
||
\emph default
|
||
][,[int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
y
|
||
\emph default
|
||
][,[int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
z
|
||
\emph default
|
||
]]])
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
@
|
||
\series medium
|
||
(location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l
|
||
\emph default
|
||
)
|
||
\series default
|
||
returns the value of the cell at the specified location.
|
||
In the first form, if any of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
,
|
||
\emph on
|
||
y
|
||
\emph default
|
||
or
|
||
\emph on
|
||
z
|
||
\emph default
|
||
is omitted, the coordinate of the cell is used.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
location
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
&
|
||
\series medium
|
||
([int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
][,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
[int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
y
|
||
\emph default
|
||
][,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
[int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
z
|
||
\emph default
|
||
]]])
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
&
|
||
\series medium
|
||
(location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l
|
||
\emph default
|
||
)
|
||
\series default
|
||
returns the specified location.
|
||
In the first form, if any of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
,
|
||
\emph on
|
||
y
|
||
\emph default
|
||
or
|
||
\emph on
|
||
z
|
||
\emph default
|
||
is omitted, the coordinate of the cell is used.
|
||
The second form is in fact a no-op, but it is allowed for convenience and
|
||
consistency of expressions.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
R() Exactly the same as
|
||
\series bold
|
||
@
|
||
\series default
|
||
, except the coordinates of the argument are interpreted as an offset to
|
||
the current location (rather than as absolute coordinates in the sheet);
|
||
think
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
R
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
for
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
relative.
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
Thus
|
||
\family sans
|
||
\series bold
|
||
R
|
||
\series default
|
||
(-1)
|
||
\family default
|
||
returns the value of the cell immediately to the left of this one, and
|
||
\family sans
|
||
\series bold
|
||
R
|
||
\series default
|
||
(,,1)
|
||
\family default
|
||
returns the same cell as this one but on the following layer.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
D() Exactly the same as
|
||
\series bold
|
||
&
|
||
\series default
|
||
, except the coordinates of the argument are added to the current location.
|
||
Think
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
D
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
for
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
displaced (by).
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
Thus,
|
||
\family sans
|
||
\series bold
|
||
D
|
||
\series default
|
||
(-1)
|
||
\family default
|
||
returns the location of the cell immediately to the left of this one, and
|
||
\family sans
|
||
\series bold
|
||
D
|
||
\series default
|
||
(,2,1)
|
||
\family default
|
||
returns the location of the cell two below this one on the following layer.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
X(
|
||
\series medium
|
||
label
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
to,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
label
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
from,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
[bool
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
fix_x
|
||
\emph default
|
||
]
|
||
\emph on
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
[bool
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
fix_y
|
||
\emph default
|
||
]
|
||
\emph on
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
[bool
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
fix_z
|
||
\emph default
|
||
]
|
||
\series default
|
||
)
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
Excel reference
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
: returns the value of the cell at a computed target location.
|
||
This target location is the one reached from the current cell via the same
|
||
offset as the cell with label
|
||
\emph on
|
||
to
|
||
\emph default
|
||
has from label
|
||
\emph on
|
||
from.
|
||
|
||
\emph default
|
||
The idea is that if you label the source of data you want to reference,
|
||
say with
|
||
\family sans
|
||
SRC
|
||
\family default
|
||
, and the location of some place you want to start referring to it with
|
||
|
||
\family sans
|
||
REF
|
||
\family default
|
||
, then you can use
|
||
\family sans
|
||
\series bold
|
||
X
|
||
\series default
|
||
(SRC,REF)
|
||
\family default
|
||
to refer to the source data, and fill this formula to neighboring cells
|
||
to refer to the neighbors of the source, and it will all continue to work
|
||
if either the source or the reference is moved around in the sheet.
|
||
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
If the
|
||
\emph on
|
||
fix_DIM
|
||
\emph default
|
||
argument is present and positive, then the corresponding coordinate of
|
||
the target cell is set to match that of
|
||
\emph on
|
||
to
|
||
\emph default
|
||
.
|
||
This corresponds to fixing the row or column (or layer) of the reference,
|
||
as with a
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
$
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
character in Excel.
|
||
Thus
|
||
\family sans
|
||
\series bold
|
||
X
|
||
\series default
|
||
(SRC,REF,1,1,1)
|
||
\family default
|
||
is identical to
|
||
\family sans
|
||
@(SRC)
|
||
\family default
|
||
, but you should certainly prefer the latter for clarity of expression.
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
There is a corresponding location function
|
||
\family sans
|
||
X&()
|
||
\family default
|
||
as well, which takes exactly the same arguments with the same meanings,
|
||
but it is rarely needed.
|
||
It is provided for completeness.
|
||
\begin_inset Newline newline
|
||
\end_inset
|
||
|
||
See the FAQ below for further discussion of cell references.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
string
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
$
|
||
\series medium
|
||
(string
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
env
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the contents of the specified environment variable.
|
||
If the variable does not exist, then an empty string will be returned.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
abs
|
||
\series medium
|
||
(float
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
abs
|
||
\series medium
|
||
(int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph on
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the absolute value of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
acos
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the arc cosine of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
arcosh
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the arc hyperbolic cosine of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
arsinh
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the arc hyperbolic sine of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
artanh
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the arc hyperbolic tangent of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
asin
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the arc sine of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
atan
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the arc tangent of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
bitand
|
||
\series medium
|
||
(int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
v1,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
...
|
||
\emph default
|
||
) evaluates to the bitwise
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
and
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
of all the supplied values.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
bitor
|
||
\series medium
|
||
(int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
v
|
||
\emph default
|
||
1,
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
...) evaluates to the bitwise
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
or
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
of all the supplied values.
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
clock
|
||
\series medium
|
||
(integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
condition
|
||
\emph default
|
||
,[location[,location])
|
||
\series default
|
||
conditionally clocks the specified cell if the condition is not 0.
|
||
If two locations are given, all cells in that range will be clocked.
|
||
The return value of clock is empty.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
cos
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the cosine of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
cosh
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the hyperbolic cosine of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
deg2rad
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the degrees that are equivalent to
|
||
\emph on
|
||
x
|
||
\emph default
|
||
radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
e
|
||
\series medium
|
||
()
|
||
\series default
|
||
evaluates to the Euler constant
|
||
\emph on
|
||
e
|
||
\emph default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
error
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
error
|
||
\series medium
|
||
(string
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
message
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to an error with the specified message.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
eval
|
||
\series medium
|
||
(location)
|
||
\series default
|
||
evaluates to the value of the expression in the cell at the given
|
||
\emph on
|
||
location
|
||
\emph default
|
||
, but evaluated in the context of the cell using eval().
|
||
This function may not be used nested any deeper than 32 times.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
float
|
||
\series medium
|
||
(string
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
s
|
||
\emph default
|
||
)
|
||
\series default
|
||
converts the given string into a floating point number.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
frac
|
||
\series medium
|
||
(float
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the fractional part of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
int
|
||
\series medium
|
||
(float
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
[,integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
neg
|
||
\emph default
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
pos
|
||
\emph default
|
||
])
|
||
\series default
|
||
converts
|
||
\emph on
|
||
x
|
||
\emph default
|
||
to an integer value by cutting off the fractional part.
|
||
If given, the value of
|
||
\emph on
|
||
neg
|
||
\emph default
|
||
and
|
||
\emph on
|
||
pos
|
||
\emph default
|
||
determines how negative and non-negative numbers will be converted:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
\begin_inset Tabular
|
||
<lyxtabular version="3" rows="6" columns="2">
|
||
<features tabularvalignment="middle">
|
||
<column alignment="center" valignment="top">
|
||
<column alignment="left" valignment="top">
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
|
||
\emph on
|
||
neg
|
||
\emph default
|
||
/
|
||
\emph on
|
||
pos
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
Result
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
< -1
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
next smaller integer value
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
-1
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
round downward
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
0
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
cut fractional part off (default)
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
1
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
round upward
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
<row>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
> 1
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
|
||
\begin_inset Text
|
||
|
||
\begin_layout Plain Layout
|
||
next larger integer value
|
||
\end_layout
|
||
|
||
\end_inset
|
||
</cell>
|
||
</row>
|
||
</lyxtabular>
|
||
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
int
|
||
\series medium
|
||
(string
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
s
|
||
\emph default
|
||
)
|
||
\series default
|
||
converts
|
||
\emph on
|
||
s
|
||
\emph default
|
||
to an integer number.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
string
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
len
|
||
\series medium
|
||
(string
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
s
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the length of
|
||
\emph on
|
||
s
|
||
\emph default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
log
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
[,float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
y
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the logarithm of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
.
|
||
If
|
||
\emph on
|
||
y
|
||
\emph default
|
||
is specified, the result will be the natural logarithm, otherwise it will
|
||
be the logarithm to the base of
|
||
\emph on
|
||
y
|
||
\emph default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
location
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
max
|
||
\series medium
|
||
(location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l1
|
||
\emph default
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l2
|
||
\emph default
|
||
)
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
|
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
\emph default
|
||
max
|
||
\series medium
|
||
(
|
||
\emph on
|
||
v1
|
||
\emph default
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph on
|
||
v2
|
||
\emph default
|
||
,
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
...)
|
||
\series default
|
||
evaluates to the maximum in the same way min does for the minimum.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
location
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
min
|
||
\series medium
|
||
(location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l1
|
||
\emph default
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l2
|
||
\emph default
|
||
)
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
|
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
\emph default
|
||
min
|
||
\series medium
|
||
(
|
||
\emph on
|
||
v1
|
||
\emph default
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph on
|
||
v2
|
||
\emph default
|
||
,
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
...)
|
||
\series default
|
||
The first form evaluates to the location of the minimum of all values in
|
||
the block marked by the corners pointed to by
|
||
\emph on
|
||
l1
|
||
\emph default
|
||
and
|
||
\emph on
|
||
l2
|
||
\emph default
|
||
.
|
||
Note that the empty cell is equal to 0, 0.0 and "", so if the first minimum
|
||
is an empty cell, the result will be a pointer to this cell, too.
|
||
If you are not interested in the location of the minimum but the value
|
||
itself, use @(min(
|
||
\emph on
|
||
l1
|
||
\emph default
|
||
,
|
||
\emph on
|
||
l2
|
||
\emph default
|
||
)).
|
||
The second form simply returns the smallest of the specified values, returning
|
||
an error if it encounters two that are not comparable (like a string and
|
||
an integer).
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
n
|
||
\series medium
|
||
(location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l1
|
||
\emph default
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l2
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the number of non-empty cells in the block marked by the corners
|
||
pointed to by
|
||
\emph on
|
||
l1
|
||
\emph default
|
||
and
|
||
\emph on
|
||
l2
|
||
\emph default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
poly
|
||
\series medium
|
||
(float|integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
float|integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
cn
|
||
\emph default
|
||
[,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
...])
|
||
\series default
|
||
evaluates the polynome
|
||
\emph on
|
||
|
||
\begin_inset Formula $c_{n}\cdot x^{n}+\ldots+c_{0}\cdot x^{0}$
|
||
\end_inset
|
||
|
||
|
||
\emph default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
rad2deg
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the radians that are equivalent to
|
||
\emph on
|
||
x
|
||
\emph default
|
||
degrees.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
rnd
|
||
\series medium
|
||
()
|
||
\series default
|
||
evaluates to a pseudo-random number between 0.0 and 1.0.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
sin
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the sine of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
sinh
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the hyperbolic sine of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
string
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
strftime
|
||
\series medium
|
||
(string
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
f
|
||
\emph default
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
[,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
t
|
||
\emph default
|
||
])
|
||
\series default
|
||
evaluates to the time
|
||
\emph on
|
||
t
|
||
\emph default
|
||
formatted according to the format specified in
|
||
\emph on
|
||
f
|
||
\emph default
|
||
.
|
||
Times in
|
||
\emph on
|
||
t
|
||
\emph default
|
||
are counted in seconds since epoch (1970-1-1 0:00).
|
||
If
|
||
\emph on
|
||
t
|
||
\emph default
|
||
is empty or 0, the actual time is used.
|
||
For the format specifications consult the man page of your c library, strftime
|
||
(3).
|
||
Example:
|
||
\emph on
|
||
@(now)=int(strftime("%s"))
|
||
\emph default
|
||
sets the field with label now to the actual time.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
string
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
string
|
||
\series medium
|
||
(location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l
|
||
\emph default
|
||
)
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
string
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
string
|
||
\series medium
|
||
(integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
string
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
string
|
||
\series medium
|
||
(float
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
[,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
[integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
precision
|
||
\emph default
|
||
][,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
scientific
|
||
\emph default
|
||
]])
|
||
\series default
|
||
evaluates to a string containing the current value of the given cell at
|
||
location
|
||
\emph on
|
||
l
|
||
\emph default
|
||
, or to the numeric value
|
||
\emph on
|
||
x
|
||
\emph default
|
||
with the given
|
||
\emph on
|
||
precision
|
||
\emph default
|
||
.
|
||
The
|
||
\emph on
|
||
scientific
|
||
\emph default
|
||
flag determines if decimal (0) or scientific (unequal 0) representation
|
||
is used.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
strptime
|
||
\series medium
|
||
(string
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
f
|
||
\emph default
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
string
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
datetime
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the seconds since epoch (1970-1-1 0:00) of the
|
||
\emph on
|
||
datetime
|
||
\emph default
|
||
string, parsed according to the format specified in
|
||
\emph on
|
||
f
|
||
\emph default
|
||
.
|
||
For the format specifications consult the man page of your c library, strptime
|
||
(3).
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
string
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
substr
|
||
\series medium
|
||
(string
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
s,
|
||
\emph default
|
||
integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x,
|
||
\emph default
|
||
integer
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
y
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the substring of
|
||
\emph on
|
||
s
|
||
\emph default
|
||
between
|
||
\emph on
|
||
x
|
||
\emph default
|
||
and
|
||
\emph on
|
||
y
|
||
\emph default
|
||
, which start at 0.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
sum
|
||
\series medium
|
||
(location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l1
|
||
\emph default
|
||
,
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l2
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the sum of all values in the block marked by the corners pointed
|
||
to by
|
||
\emph on
|
||
l1
|
||
\emph default
|
||
and
|
||
\emph on
|
||
l2
|
||
\emph default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
tan
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the tangent of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
float
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
tanh
|
||
\series medium
|
||
(float|int
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
x
|
||
\emph default
|
||
)
|
||
\series default
|
||
evaluates to the hyperbolic tangent of
|
||
\emph on
|
||
x
|
||
\emph default
|
||
, where
|
||
\emph on
|
||
x
|
||
\emph default
|
||
is given in radians.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
x
|
||
\series medium
|
||
([location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l
|
||
\emph default
|
||
])
|
||
\series default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
y
|
||
\series medium
|
||
([location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l
|
||
\emph default
|
||
])
|
||
\series default
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
|
||
\series medium
|
||
int
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
|
||
\series default
|
||
z
|
||
\series medium
|
||
([location
|
||
\emph on
|
||
|
||
\begin_inset space ~
|
||
\end_inset
|
||
|
||
l
|
||
\emph default
|
||
])
|
||
\series default
|
||
evaluate to the
|
||
\emph on
|
||
x
|
||
\emph default
|
||
,
|
||
\emph on
|
||
y
|
||
\emph default
|
||
and
|
||
\emph on
|
||
z
|
||
\emph default
|
||
position of the given location, of the currently updated cell if none is
|
||
given.
|
||
These functions are usually used in combination with the @ function for
|
||
relative relations to other cell, but see also the convenience functions
|
||
|
||
\family sans
|
||
\series bold
|
||
R
|
||
\series default
|
||
()
|
||
\family default
|
||
and
|
||
\family sans
|
||
\series bold
|
||
D
|
||
\series default
|
||
()
|
||
\family default
|
||
for relative references.
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
Expression Grammar
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
digit::=
|
||
\family typewriter
|
||
0
|
||
\family default
|
||
| ..
|
||
|
|
||
\family typewriter
|
||
9
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
hex_digit::=
|
||
\family typewriter
|
||
0
|
||
\family default
|
||
| ..
|
||
|
|
||
\family typewriter
|
||
9
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
a
|
||
\family default
|
||
| ..
|
||
|
|
||
\family typewriter
|
||
f
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
octal_digit::=
|
||
\family typewriter
|
||
0
|
||
\family default
|
||
| ..
|
||
|
|
||
\family typewriter
|
||
7
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
decimal_integer::=
|
||
\emph on
|
||
digit
|
||
\emph default
|
||
{
|
||
\emph on
|
||
digit
|
||
\emph default
|
||
}
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
hex_integer::=
|
||
\family typewriter
|
||
0x
|
||
\family default
|
||
|
||
\emph on
|
||
hex_digit
|
||
\emph default
|
||
{
|
||
\emph on
|
||
hexdigit
|
||
\emph default
|
||
}
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
octal_integer::=
|
||
\family typewriter
|
||
0
|
||
\family default
|
||
|
||
\emph on
|
||
octal_digit
|
||
\emph default
|
||
{
|
||
\emph on
|
||
octdigit
|
||
\emph default
|
||
}
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
integer::=
|
||
\emph on
|
||
decimal_integer
|
||
\emph default
|
||
|
|
||
\emph on
|
||
hex_integer
|
||
\emph default
|
||
|
|
||
\emph on
|
||
octal_integer
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
float::=
|
||
\emph on
|
||
digit
|
||
\emph default
|
||
{
|
||
\emph on
|
||
digit
|
||
\emph default
|
||
} [
|
||
\family typewriter
|
||
.
|
||
|
||
\family default
|
||
] {
|
||
\emph on
|
||
digit
|
||
\emph default
|
||
} [
|
||
\family typewriter
|
||
e
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
E
|
||
\family default
|
||
[
|
||
\family typewriter
|
||
+
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
-
|
||
\family default
|
||
]
|
||
\emph on
|
||
digit
|
||
\emph default
|
||
{
|
||
\emph on
|
||
digit
|
||
\emph default
|
||
} ]
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
quoted_character::=
|
||
\emph on
|
||
|
||
\backslash
|
||
any_character
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
character::=
|
||
\emph on
|
||
any_character
|
||
\emph default
|
||
|
|
||
\emph on
|
||
quoted_character
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
string::=
|
||
\family typewriter
|
||
"
|
||
\family default
|
||
{
|
||
\emph on
|
||
character
|
||
\emph default
|
||
}
|
||
\family typewriter
|
||
"
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
identifier_character::=
|
||
\family typewriter
|
||
_
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
@
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
&
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
.
|
||
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
$
|
||
\family default
|
||
|
|
||
\emph on
|
||
alpha_character
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
identifier::=
|
||
\emph on
|
||
identifier_character
|
||
\emph default
|
||
{
|
||
\emph on
|
||
identifier_character
|
||
\emph default
|
||
|
|
||
\emph on
|
||
digit
|
||
\emph default
|
||
}
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
function::=
|
||
\emph on
|
||
identifier
|
||
\emph default
|
||
|
||
\family typewriter
|
||
(
|
||
\family default
|
||
[
|
||
\emph on
|
||
term
|
||
\emph default
|
||
] {
|
||
\family typewriter
|
||
,
|
||
\family default
|
||
[
|
||
\emph on
|
||
term
|
||
\emph default
|
||
] }
|
||
\family typewriter
|
||
)
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
label::=
|
||
\emph on
|
||
identifier
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
parenterm::=
|
||
\family typewriter
|
||
(
|
||
\family default
|
||
|
||
\emph on
|
||
term
|
||
\emph default
|
||
|
||
\family typewriter
|
||
)
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
negterm::=
|
||
\family typewriter
|
||
-
|
||
\family default
|
||
|
||
\emph on
|
||
primary
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
primary::=
|
||
\emph on
|
||
function
|
||
\emph default
|
||
|
|
||
\emph on
|
||
label
|
||
\emph default
|
||
|
|
||
\emph on
|
||
parenterm
|
||
\emph default
|
||
|
|
||
\emph on
|
||
negterm
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
powterm::=
|
||
\emph on
|
||
primary
|
||
\emph default
|
||
{
|
||
\family typewriter
|
||
‸
|
||
\family default
|
||
|
||
\emph on
|
||
primary
|
||
\emph default
|
||
}
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
mathterm::=
|
||
\emph on
|
||
powterm
|
||
\emph default
|
||
{
|
||
\family typewriter
|
||
/
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
*
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
%
|
||
\family default
|
||
|
||
\emph on
|
||
powterm
|
||
\emph default
|
||
}
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
factor::=
|
||
\emph on
|
||
mathterm
|
||
\emph default
|
||
{
|
||
\family typewriter
|
||
+
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
-
|
||
\family default
|
||
|
||
\emph on
|
||
mathterm
|
||
\emph default
|
||
}
|
||
\end_layout
|
||
|
||
\begin_layout Description
|
||
term::=
|
||
\emph on
|
||
factor
|
||
\emph default
|
||
{
|
||
\family typewriter
|
||
<
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
<=
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
>=
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
>
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
==
|
||
\family default
|
||
|
|
||
\family typewriter
|
||
!=
|
||
\family default
|
||
|
||
\emph on
|
||
factor
|
||
\emph default
|
||
}
|
||
\end_layout
|
||
|
||
\begin_layout Section
|
||
Frequently Asked Questions
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
Why is 1.0 unequal 1.0?
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
If your machine uses binary floating point arithmetic, and chances are that
|
||
it does, you may eventually find yourself in the following situation:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
You expect to see 1.0 as result, and indeed that is what you get.
|
||
Now you compare this result to the constant 1.0, but surprisingly for many
|
||
users, the result is 0.
|
||
Appearantly, 1.0 is unequal 1.0 for teapot.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
This is not a bug in teapot, in fact it is not a bug at all.
|
||
The problem is, that 0.1 (1.0/10.0) does not have an exact representation
|
||
in binary floating point arithmetic, similar to how 1.0/3.0 does not have
|
||
an exact representation in decimal arithmetic (or binary, for that matter).
|
||
As such, a value very close to 0.1 is used, but when displaying it, it will
|
||
be rounded to 0.1.
|
||
The result is obvious, adding this number which is a little different from
|
||
0.1 ten times leads to a result very close to but not quite 1.0.
|
||
Since it is so close, displaying it rounded to only a few digits precision
|
||
shows 1.0.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
To solve the comparison problem, teapot has the operator
|
||
\family typewriter
|
||
=
|
||
\family default
|
||
(in contrast to the operator ==), which compares two floating point values
|
||
apart from the last significant bit.
|
||
Use this operator to compare the two values from above and the result will
|
||
be 1, meaning they are about equal.
|
||
Don't assume that a number which can be expressed with a finite number
|
||
of decimal digits will be represented exactly in binary floating point
|
||
arithmetic.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
How do I hide intermediate results?
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
If you used flat, two-dimensional spread sheets before, you are probably
|
||
used to hidden cells which contain intermediate results, global constants,
|
||
scratch areas and the like.
|
||
teapot has no way to hide cells, but you have three dimensions.
|
||
Just use one or more layers for such cells and give each cell a label in
|
||
order to reference and find it easily.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
Why is there no conditional evaluation?
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
There is no special operator or function for conditional evaluation.
|
||
I could add one easily, but then next someone would ask for loops and someone
|
||
else for user-defined functions, variables and so on.
|
||
If you need a programming language, you know where to find it.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
But don't worry.
|
||
The answer is, that conditional evaluation comes for free with teapot's
|
||
orthogonal cell addressing.
|
||
As an example, depending on the cell labelled
|
||
\family typewriter
|
||
X
|
||
\family default
|
||
being negative or not, you want the result to be the string
|
||
\family typewriter
|
||
"BAD
|
||
\family default
|
||
or
|
||
\family typewriter
|
||
"GOOD"
|
||
\family default
|
||
.
|
||
This is the solution:
|
||
\end_layout
|
||
|
||
\begin_layout Quote
|
||
eval(BAD + &((@(X)>=0),0,0))
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Note this is making use of the fact that you can add locations in the natural
|
||
way.
|
||
The cell labelled
|
||
\family typewriter
|
||
BAD
|
||
\family default
|
||
contains the string
|
||
\family typewriter
|
||
"BAD"
|
||
\family default
|
||
, its right neighbour contains the string
|
||
\family typewriter
|
||
"GOOD"
|
||
\family default
|
||
.
|
||
If you have nested conditions, you could weight them with 1, 2, 4 and so
|
||
on to address a bigger range of cells.
|
||
Alternatively, you could make use of all three dimensions for nested conditions.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Subsection
|
||
But my references don't do the right thing when I move or copy them!
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
If you are used to other spreadsheets, you have probably noticed that references
|
||
like
|
||
\family sans
|
||
@(0,1,0)
|
||
\family default
|
||
(for the start of the second row) or
|
||
\family sans
|
||
@(MYDATA)
|
||
\family default
|
||
(for a location) are
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
absolute
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
– they always refer to the same location no matter where in the spreadsheet
|
||
they occur.
|
||
And of course sometimes it is convenient, for example when making a column
|
||
of consecutive numbers, to refer to nearby cells in a relative manner,
|
||
either with say
|
||
\family sans
|
||
@(x(),y()-1,z())+1
|
||
\family default
|
||
or
|
||
\family sans
|
||
@(&()+&(0,-1,0))+1
|
||
\family default
|
||
or just
|
||
\family sans
|
||
R(,-1)+1
|
||
\family default
|
||
to add one to the value of the cell just above.
|
||
Then you can fill that expression down and get your column of consecutive
|
||
numbers.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
But these sorts of relative expressions only keep working if the cells move
|
||
together with the cells they refer to.
|
||
If for example you have a row of cells that are all referring to the row
|
||
above with a relative reference (like
|
||
\family sans
|
||
R(,-1)
|
||
\family default
|
||
) and you insert another row in between them, your references will be all
|
||
messed up.
|
||
There is value to
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
Excel-style
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
references that can be used to fill and which also can move around while
|
||
still just
|
||
\begin_inset Quotes eld
|
||
\end_inset
|
||
|
||
referring to what you want.
|
||
\begin_inset Quotes erd
|
||
\end_inset
|
||
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
To provide for this need, teapot has a function
|
||
\family sans
|
||
X(SRC, REF)
|
||
\family default
|
||
to retrieve the value of the cell labeled
|
||
\family sans
|
||
SRC
|
||
\family default
|
||
|
||
\bar under
|
||
from
|
||
\bar default
|
||
the cell labeled
|
||
\family sans
|
||
REF
|
||
\family default
|
||
.
|
||
If the so-labeled cells move around (either the source or the reference)
|
||
it will still work.
|
||
This is not particularly useful in and of itself; what makes it useful
|
||
is that from a cell other than
|
||
\family sans
|
||
REF
|
||
\family default
|
||
, it gives you the value of the cell that stands in the same relation to
|
||
|
||
\family sans
|
||
SRC
|
||
\family default
|
||
as that cell stands to
|
||
\family sans
|
||
REF
|
||
\family default
|
||
.
|
||
So in the cell to the right of
|
||
\family sans
|
||
REF
|
||
\family default
|
||
, it will give you the value of the cell to the right of
|
||
\family sans
|
||
SRC
|
||
\family default
|
||
; in the cell below, it gives you the cell below
|
||
\family sans
|
||
SRC
|
||
\family default
|
||
, etc.
|
||
Now you can fill a block of cells around
|
||
\family sans
|
||
REF
|
||
\family default
|
||
with formulas contaning
|
||
\family sans
|
||
X(SRC,REF)
|
||
\family default
|
||
and they will refer to the analogous block of cells around
|
||
\family sans
|
||
SRC
|
||
\family default
|
||
.
|
||
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
Sometimes you want to make this kind of reference but fix one of the coordinates
|
||
but not the others;
|
||
\family sans
|
||
X()
|
||
\family default
|
||
has optional flags for this, as well, so that
|
||
\family sans
|
||
X(SRC,REF,,,1)
|
||
\family default
|
||
will always be on the same layer as
|
||
\family sans
|
||
SRC
|
||
\family default
|
||
regardless of what layer it is called from or what layer
|
||
\family sans
|
||
REF
|
||
\family default
|
||
is on.
|
||
Thus
|
||
\family sans
|
||
X(SRC,REF,1,1,1)
|
||
\family default
|
||
is just
|
||
\family sans
|
||
@(SRC)
|
||
\family default
|
||
, but the intent of the latter is much clearer.
|
||
\end_layout
|
||
|
||
\begin_layout Standard
|
||
You might ask as a follow-up question: Isnt
|
||
\family sans
|
||
X(SRC, REF)
|
||
\family default
|
||
much more cumbersome than just referring to cells by coordinate and then
|
||
letting Excel just do the right thing as you copy and move either that
|
||
formula or the referred-to data? The response to this is that in a typical
|
||
spreadsheet, there are only a small number of fundamental references, and
|
||
all other references derive from them in this way.
|
||
So you generally only need a few labels, and by taking just a little extra
|
||
time to apply those labels and refer to them in initial formulas, you are
|
||
making the semantics of your references much clearer and in essence documenting
|
||
them within your spreadsheet.
|
||
This extra effort will therefore be repaid in an easier-to-use, easier-to-under
|
||
stand, and easier-to-maintain and update spreadsheet.
|
||
\end_layout
|
||
|
||
\end_body
|
||
\end_document
|