mirror of https://github.com/texmacs/doc.git
Fix typos
This commit is contained in:
parent
345a641f34
commit
118570c783
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.3.10>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|The <TeXmacs> format>
|
||||
|
@ -14,7 +14,7 @@
|
|||
|
||||
<branch|XML serialization|tm-tmml.en.tm>
|
||||
|
||||
<branch|<value|scheme> serialization|tm-scm.en.tm>
|
||||
<branch|<scheme> serialization|tm-scm.en.tm>
|
||||
|
||||
<branch|The typesetting process|typesetting.en.tm>
|
||||
|
||||
|
@ -33,8 +33,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.3.10>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Data relation descriptions>
|
||||
|
@ -17,12 +17,12 @@
|
|||
In XML, one uses Data Type Definitions (<abbr|D.T.D.>s) in order to
|
||||
formally specify a subset of the generic XML format. Such a <abbr|D.T.D.>
|
||||
specifies when a given document is valid for a particular purpose. For
|
||||
instance, one has <abbr|D.T.D.>s for documents on the web (XHTML), for
|
||||
mathematics <no-break>(MathML), for two-dimensional graphics (SVG) and so
|
||||
on. Moreover, up to a cetain extent, XML provides mechanisms for combining
|
||||
such <abbr|D.T.D.>s. Finally, a precise description of a <abbr|D.T.D.>
|
||||
usually also provides some kind of reference manual for documents of a
|
||||
certain type.
|
||||
instance, one has <abbr|D.T.D.>s for documents on the web (<name|XHTML>),
|
||||
for mathematics <no-break>(<name|MathML>), for two-dimensional graphics
|
||||
(<name|SVG>) and so on. Moreover, up to a certain extent, XML provides
|
||||
mechanisms for combining such <abbr|D.T.D.>s. Finally, a precise
|
||||
description of a <abbr|D.T.D.> usually also provides some kind of reference
|
||||
manual for documents of a certain type.
|
||||
|
||||
In <TeXmacs>, we have started to go one step further than <abbr|D.T.D.>s:
|
||||
besides being able to decide whether a given document is valid or not, it
|
||||
|
@ -51,10 +51,10 @@
|
|||
One major advantage of the use of <abbr|D.R.D.>s is that it is not
|
||||
necessary to establish rigid hierarchies of object classes like in object
|
||||
oriented programming. This is particularly useful in our context, since
|
||||
properties like accessability, inline-ness, <abbr|etc.> are quite
|
||||
properties like accessibility, inline-ness, <abbr|etc.> are quite
|
||||
independent one from another. In fact, where <abbr|D.T.D.>s may be good
|
||||
enough for the description of passive documents, more fine-grained
|
||||
properties are often usefull when manipulating documents in a more
|
||||
properties are often useful when manipulating documents in a more
|
||||
interactive way.
|
||||
|
||||
<paragraph*|Current <abbr|D.R.D.> properties and applications>
|
||||
|
@ -65,7 +65,7 @@
|
|||
<\itemize>
|
||||
<item>The possible arities of a tag.
|
||||
|
||||
<item>The accessability of a tag and its children.
|
||||
<item>The accessibility of a tag and its children.
|
||||
</itemize>
|
||||
|
||||
In the near future, the following properties will be added:
|
||||
|
@ -109,8 +109,8 @@
|
|||
</tm-fragment>
|
||||
|
||||
<TeXmacs> automatically notices that <markup|hi> is a macro with one
|
||||
element, so it considers <with|mode|math|1> to be the only possible arity
|
||||
of the <markup|hi> tag. Notice that the heuristic determination of the
|
||||
element, so it considers <math|1> to be the only possible arity of the
|
||||
<markup|hi> tag. Notice that the heuristic determination of the
|
||||
<abbr|D.R.D.> is done interactively: when defining a macro inside your
|
||||
document, its properties will automatically be put into the <abbr|D.R.D.>
|
||||
(assuming that you give <TeXmacs> a small amount of free time of the order
|
||||
|
@ -119,7 +119,7 @@
|
|||
|
||||
Sometimes the heuristically defined properties are inadequate. For this
|
||||
case, <TeXmacs> provides the <markup|drd-props> tag in order to
|
||||
<hyper-link|manually override|../stylesheet/prim-macro.en.tm> the default
|
||||
<hlink|manually override|../stylesheet/prim-macro.en.tm> the default
|
||||
properties.
|
||||
|
||||
<tmdoc-copyright|2004|Joris van der Hoeven>
|
||||
|
@ -132,8 +132,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,44 +1,44 @@
|
|||
<TeXmacs|1.0.3.10>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|<value|scheme> serialization>
|
||||
<tmdoc-title|<scheme> serialization>
|
||||
|
||||
Users may write their own extensions to <TeXmacs> in the <value|scheme>
|
||||
extension language. In that context, <TeXmacs> trees are usually
|
||||
represented by <value|scheme> expressions. The <value|scheme> syntax was
|
||||
designed to be predictable, easy to hand-edit, and expose the complete
|
||||
internal structure of the document. For instance, the formula
|
||||
(<reference|tm-tree-ex>) is represented by
|
||||
Users may write their own extensions to <TeXmacs> in the <scheme> extension
|
||||
language. In that context, <TeXmacs> trees are usually represented by
|
||||
<scheme> expressions. The <scheme> syntax was designed to be predictable,
|
||||
easy to hand-edit, and expose the complete internal structure of the
|
||||
document. For instance, the formula (<reference|tm-tree-ex>) is represented
|
||||
by
|
||||
|
||||
<\tm-fragment>
|
||||
<verbatim|(with "mode" "math" (concat "x+y+" (frac "1" "2") "+" (sqrt
|
||||
"y+z")))>
|
||||
</tm-fragment>
|
||||
|
||||
The <value|scheme> representation may also be useful in order to represent
|
||||
complex macros with a lot of programmic content. Finally, <value|scheme> is
|
||||
the safest format when incorporating <TeXmacs> snippets into emails.
|
||||
Indeed, both the standard <TeXmacs> format and the XML serialization may be
|
||||
quite sensitive to white-space.
|
||||
The <scheme> representation may also be useful in order to represent
|
||||
complex macros with a lot of programatic content. Finally, <scheme> is the
|
||||
safest format when incorporating <TeXmacs> snippets into emails. Indeed,
|
||||
both the standard <TeXmacs> format and the XML serialization may be quite
|
||||
sensitive to white-space.
|
||||
|
||||
In order to save or load a document in <value|scheme> format, you may use
|
||||
In order to save or load a document in <scheme> format, you may use
|
||||
<menu|File|Export|Scheme> <abbr|resp.> <menu|File|Import|Scheme>. Files
|
||||
saved in <value|scheme> format can easily be processed by external
|
||||
<value|scheme> programs, in the same way as files saved in XML format can
|
||||
easily be processed by tools for processing XML, like XSLT.
|
||||
saved in <scheme> format can easily be processed by external <scheme>
|
||||
programs, in the same way as files saved in XML format can easily be
|
||||
processed by tools for processing XML, like XSLT.
|
||||
|
||||
In order to copy a document fragment to an email in <value|scheme> format,
|
||||
you may use <menu|Edit|Copy to|Scheme>. Similarly, you may paste external
|
||||
<value|scheme> fragments into <TeXmacs> using <menu|Edit|Paste
|
||||
from|Scheme>. The <value|scheme> format may also used interactively inside
|
||||
<value|scheme> sessions or interactive commands. For instance, typing
|
||||
<shortcut|(interactive exec-interactive-command)> followed by the interactive command
|
||||
In order to copy a document fragment to an email in <scheme> format, you
|
||||
may use <menu|Edit|Copy to|Scheme>. Similarly, you may paste external
|
||||
<scheme> fragments into <TeXmacs> using <menu|Edit|Paste from|Scheme>. The
|
||||
<scheme> format may also used interactively inside <scheme> sessions or
|
||||
interactive commands. For instance, typing <shortcut|(interactive
|
||||
exec-interactive-command)> followed by the interactive command
|
||||
|
||||
<\scheme-fragment>
|
||||
<\scm-code>
|
||||
(insert '(frac "1" "2"))
|
||||
</scheme-fragment>
|
||||
</scm-code>
|
||||
|
||||
inserts the fraction <frac|1|2> at the current cursor position.
|
||||
|
||||
|
@ -52,8 +52,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.4>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Default serialization>
|
||||
|
@ -106,9 +106,11 @@
|
|||
by double newline characters. For instance, the quotation
|
||||
|
||||
<\quote-env>
|
||||
Ik ben de blauwbilgorgel.
|
||||
<\dutch>
|
||||
Ik ben de blauwbilgorgel.
|
||||
|
||||
Als ik niet wok of worgel,
|
||||
Als ik niet wok of worgel,
|
||||
</dutch>
|
||||
</quote-env>
|
||||
|
||||
is serialized as
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<TeXmacs|1.99.4>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|XML serialization>
|
||||
|
||||
For compatability reasons with the XML technology, <TeXmacs> also supports
|
||||
For compatibility reasons with the XML technology, <TeXmacs> also supports
|
||||
the serialization of <TeXmacs> documents in the XML format. However, the
|
||||
XML format is generally more verbose and less readable than the default
|
||||
<TeXmacs> format. In order to save or load a file in the XML format (using
|
||||
|
@ -76,9 +76,11 @@
|
|||
instance, the quotation
|
||||
|
||||
<\quote-env>
|
||||
Ik ben de blauwbilgorgel.
|
||||
<\dutch>
|
||||
Ik ben de blauwbilgorgel.
|
||||
|
||||
Als ik niet wok of worgel,
|
||||
Als ik niet wok of worgel,
|
||||
</dutch>
|
||||
</quote-env>
|
||||
|
||||
is represented as
|
||||
|
@ -113,7 +115,7 @@
|
|||
</verbatim>>
|
||||
</quote-env>
|
||||
|
||||
Conversily, <TeXmacs> provides the <markup|attr> primitive in order to
|
||||
Conversely, <TeXmacs> provides the <markup|attr> primitive in order to
|
||||
represent attributes of XML tags. For instance, the XML fragment
|
||||
|
||||
<\quote-env>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.4>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|<TeXmacs> trees>
|
||||
|
@ -9,7 +9,7 @@
|
|||
<em|trees>. For instance, the tree
|
||||
|
||||
<\equation*>
|
||||
<tree|<with|mode|text|<markup|with>>|mode|math|<tree|<with|mode|text|<markup|concat>>|x+y+|<tree|<with|mode|text|<markup|frac>>|1|2>|+|<tree|<with|mode|text|<markup|sqrt>>|y+z>>>
|
||||
<tree|<text|<markup|with>>|mode|math|<tree|<text|<markup|concat>>|x+y+|<tree|<text|<markup|frac>>|1|2>|+|<tree|<text|<markup|sqrt>>|y+z>>>
|
||||
</equation*>
|
||||
|
||||
typically represents the formula
|
||||
|
@ -30,15 +30,15 @@
|
|||
|
||||
Currently, all strings are represented using the <em|universal <TeXmacs>
|
||||
encoding>. This encoding coincides with the Cork font encoding for all
|
||||
characters except ``<verbatim|\<less\>>'' and ``<verbatim|\<gtr\>>''.
|
||||
Character sequences starting with ``<verbatim|\<less\>>'' and ending with
|
||||
``<verbatim|\<gtr\>>'' are interpreted as special extension characters. For
|
||||
characters except \P<verbatim|\<less\>>\Q and \P<verbatim|\<gtr\>>\Q.
|
||||
Character sequences starting with \P<verbatim|\<less\>>\Q and ending with
|
||||
\P<verbatim|\<gtr\>>\Q are interpreted as special extension characters. For
|
||||
example, <verbatim|\<less\>alpha\<gtr\>> stands for the letter
|
||||
<with|mode|math|\<alpha\>>. The semantics of characters in the universal
|
||||
<TeXmacs> encoding does not depend on the context (currently, cyrillic
|
||||
characters are an exception, but this should change soon). In other words,
|
||||
the universal <TeXmacs> encoding may be seen as an analogue of Unicode. In
|
||||
the future, we might actually switch to Unicode.
|
||||
<math|\<alpha\>>. The semantics of characters in the universal <TeXmacs>
|
||||
encoding does not depend on the context (currently, cyrillic characters are
|
||||
an exception, but this should change soon). In other words, the universal
|
||||
<TeXmacs> encoding may be seen as an analogue of Unicode. In the future, we
|
||||
might actually switch to Unicode.
|
||||
|
||||
The string leafs either contain ordinary text or special data. <TeXmacs>
|
||||
supports the following atomic data types:
|
||||
|
@ -52,20 +52,20 @@
|
|||
<item*|Floating point numbers>Specified using the usual scientific
|
||||
notation.
|
||||
|
||||
<item*|Lengths>Floating point numbers followed by a <hyper-link|length
|
||||
<item*|Lengths>Floating point numbers followed by a <hlink|length
|
||||
unit|lengths.en.tm>, like <verbatim|29.7cm> or <verbatim|2fn>.
|
||||
</description>
|
||||
|
||||
<paragraph*|Serialization and preferred syntax for editing>
|
||||
|
||||
When storing a document as a file on your harddisk or when copying a
|
||||
When storing a document as a file on your hard disk or when copying a
|
||||
document fragment to the clipboard, <TeXmacs> trees have to be represented
|
||||
as strings. The conversion without loss of information of abstract
|
||||
<TeXmacs> trees into strings is called <em|serialization> and the inverse
|
||||
process <em|parsing>. <TeXmacs> provides three ways to serialize trees,
|
||||
which correspond to the standard <hyper-link|<TeXmacs> format|tm-tm.en.tm>,
|
||||
the <hyper-link|XML format|tm-tmml.en.tm> and the
|
||||
<hyper-link|<value|scheme> format|tm-scm.en.tm>.
|
||||
which correspond to the standard <hlink|<TeXmacs> format|tm-tm.en.tm>, the
|
||||
<hlink|XML format|tm-tmml.en.tm> and the <hlink|<scheme>
|
||||
format|tm-scm.en.tm>.
|
||||
|
||||
However, it should be emphasized that the preferred syntax for modifying
|
||||
<TeXmacs> documents is the screen display inside the editor. If that seems
|
||||
|
@ -74,7 +74,7 @@
|
|||
representation of a document, together with its interactive behaviour, is a
|
||||
particularly concrete syntax. Moreover, in the <menu|Document|Source> menu,
|
||||
you may find different ways to customize the way documents are viewed, such
|
||||
as different levels of informative flags and a <hyper-link|``source tree''
|
||||
as different levels of informative flags and a <hlink|\Psource tree\Q
|
||||
mode|../../style/presentation/src-present.en.tm> for editing style files.
|
||||
|
||||
<tmdoc-copyright|2004|Joris van der Hoeven>
|
||||
|
@ -87,8 +87,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.2>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|The typesetting process>
|
||||
|
@ -31,7 +31,7 @@
|
|||
|
||||
The <hlink|stylesheet language|../stylesheet/stylesheet.en.tm> allows the
|
||||
user to write new primitives (macros) on top of the built-in primitives. It
|
||||
contains primitives for definining macros, conditional statements,
|
||||
contains primitives for defining macros, conditional statements,
|
||||
computations, delayed execution, <abbr|etc.> The stylesheet language also
|
||||
provides a special <markup|extern> tag which offers you the full power of
|
||||
the <scheme> extension language in order to write macros.
|
||||
|
@ -57,7 +57,7 @@
|
|||
</tm-fragment>
|
||||
|
||||
serves an exclusively computational purpose. As a general rule, synthetic
|
||||
macros are sometimes easier to write, but the more accessability is
|
||||
macros are sometimes easier to write, but the more accessibility is
|
||||
preserved, the more natural it becomes for the user to edit the markup.
|
||||
|
||||
It should be noticed that <TeXmacs> also produces some auxiliary data as a
|
||||
|
@ -79,4 +79,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,23 +1,23 @@
|
|||
<TeXmacs|1.0.3.10>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Built-in environment variables>
|
||||
|
||||
The way <TeXmacs> <hyper-link|typesets|../basics/typesetting.en.tm>
|
||||
documents is influenced by so called <em|environment variables>. The
|
||||
<hyper-link|style-sheet language|../stylesheet/stylesheet.en.tm> uses a so
|
||||
called <em|environment> (or context) to store both environment variables
|
||||
and <hyper-link|macros|../stylesheet/prim-macro.en.tm>. The environment
|
||||
variables are subdivided into two catagories: built-in variables and
|
||||
additional variables provided by style files. Built-in variables usually
|
||||
affect the layout, while additional variables mostly serve computational
|
||||
purposes. In the next sections of this chapter, we will describe all
|
||||
built-in environment variables.
|
||||
The way <TeXmacs> <hlink|typesets|../basics/typesetting.en.tm> documents is
|
||||
influenced by so called <em|environment variables>. The <hlink|style-sheet
|
||||
language|../stylesheet/stylesheet.en.tm> uses a so called <em|environment>
|
||||
(or context) to store both environment variables and
|
||||
<hlink|macros|../stylesheet/prim-macro.en.tm>. The environment variables
|
||||
are subdivided into two categories: built-in variables and additional
|
||||
variables provided by style files. Built-in variables usually affect the
|
||||
layout, while additional variables mostly serve computational purposes. In
|
||||
the next sections of this chapter, we will describe all built-in
|
||||
environment variables.
|
||||
|
||||
A typical built-in environment variable is <src-var|color>. The value of an
|
||||
environment variable may be <hyper-link|changed|../stylesheet/prim-env.en.tm>
|
||||
environment variable may be <hlink|changed|../stylesheet/prim-env.en.tm>
|
||||
permanently using <markup|assign> and temporarily using the <markup|with>
|
||||
primitive:
|
||||
|
||||
|
@ -50,12 +50,12 @@
|
|||
The typesetting language uses <def-index|dynamic scoping> of variables.
|
||||
That means that macros can access and modify variables in their calling
|
||||
context. In the previous example, the <markup|enumerate> macro locally
|
||||
initializes <src-var|item-nr> to <with|mode|math|0> (uses <markup|with>)
|
||||
and the <markup|item> macro increments it by one and shows its value. Since
|
||||
initializes <src-var|item-nr> to <math|0> (uses <markup|with>) and the
|
||||
<markup|item> macro increments it by one and shows its value. Since
|
||||
<markup|enumerate> locally redefines <src-var|item-nr>, the original value
|
||||
of <src-var|item-nr> is restored on exit.
|
||||
|
||||
Each document comes with an <hyper-link|initial
|
||||
Each document comes with an <hlink|initial
|
||||
environment|../basics/tm-docs.en.tm#init-env> with the initial values of
|
||||
environment values, <abbr|i.e.> their values just before we typeset the
|
||||
document. If an environment variable does not occur in the initial
|
||||
|
@ -96,8 +96,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,11 +1,11 @@
|
|||
<TeXmacs|1.0.3.10>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Fundamental primitives>
|
||||
|
||||
<\explain|<explain-macro|document|par-1|<with|mode|math|\<cdots\>>|par-n><explain-synopsis|vertical
|
||||
<\explain|<explain-macro|document|par-1|<math|\<cdots\>>|par-n><explain-synopsis|vertical
|
||||
sequence of paragraphs>>
|
||||
This primitive is used for sequences of logical paragraphs. A simple,
|
||||
plain text document is made of a sequence of paragraphs. For instance,
|
||||
|
@ -39,7 +39,7 @@
|
|||
least one argument are called ``block environments''.
|
||||
</explain>
|
||||
|
||||
<\explain|<explain-macro|paragraph|unit-1|<with|mode|math|\<cdots\>>|unit-n><explain-synopsis|vertical
|
||||
<\explain|<explain-macro|paragraph|unit-1|<math|\<cdots\>>|unit-n><explain-synopsis|vertical
|
||||
sequence of paragraph units>>
|
||||
This not yet implemented primitive is a variant of <markup|document>.
|
||||
While a document is made up of logical paragraphs, a paragraph is made up
|
||||
|
@ -49,7 +49,7 @@
|
|||
equations are also paragraph units in a larger paragraph.
|
||||
</explain>
|
||||
|
||||
<\explain|<explain-macro|concat|item-1|<with|mode|math|\<cdots\>>|item-n><explain-synopsis|horizontal
|
||||
<\explain|<explain-macro|concat|item-1|<math|\<cdots\>>|item-n><explain-synopsis|horizontal
|
||||
sequence of inline markup>>
|
||||
This primitive is used for sequences of line items, also called ``inline
|
||||
content''. For instance,
|
||||
|
@ -75,7 +75,7 @@
|
|||
</tm-fragment>
|
||||
|
||||
In this example, we need the <markup|concat> tag in order to indicate
|
||||
that ``Some <em|emphasized> text.'' correponds to a single paragraph:
|
||||
that ``Some <em|emphasized> text.'' corresponds to a single paragraph:
|
||||
|
||||
<\tm-fragment>
|
||||
<with|src-special|raw|<\inactive*>
|
||||
|
@ -104,13 +104,12 @@
|
|||
|
||||
<\tm-fragment>
|
||||
<\inactive*>
|
||||
<\surround|<active*|<with|mode|math|<with|color|red|\<lightning\>>>
|
||||
>|>
|
||||
<\surround|<active*|<math|<with|color|red|\<lightning\>>> >|>
|
||||
<\theorem>
|
||||
<active*|Given <with|mode|math|P\<in\>\<bbb-T\>{F}> and
|
||||
<with|mode|math|f\<less\>g\<in\>\<bbb-T\>> with
|
||||
<with|mode|math|P(f)*P(g)\<less\>0>, there exists an
|
||||
<with|mode|math|h\<in\>\<bbb-T\>> with <with|mode|math|P(h)=0>.>
|
||||
<active*|Given <math|P\<in\>\<bbb-T\><around|{|F|}>> and
|
||||
<math|f\<less\>g\<in\>\<bbb-T\>> with
|
||||
<math|P<around|(|f|)>*P<around|(|g|)>\<less\>0>, there exists an
|
||||
<math|h\<in\>\<bbb-T\>> with <math|P<around|(|h|)>=0>.>
|
||||
</theorem>
|
||||
</surround>
|
||||
</inactive*>
|
||||
|
@ -119,12 +118,12 @@
|
|||
produces
|
||||
|
||||
<\tm-fragment>
|
||||
<\surround|<with|mode|math|<with|color|red|\<lightning\>>> |>
|
||||
<\surround|<math|<with|color|red|\<lightning\>>> |>
|
||||
<\theorem>
|
||||
Given <with|mode|math|P\<in\>\<bbb-T\>{F}> and
|
||||
<with|mode|math|f\<less\>g\<in\>\<bbb-T\>> with
|
||||
<with|mode|math|P(f)*P(g)\<less\>0>, there exists an
|
||||
<with|mode|math|h\<in\>\<bbb-T\>> with <with|mode|math|P(h)=0>.
|
||||
Given <math|P\<in\>\<bbb-T\><around|{|F|}>> and
|
||||
<math|f\<less\>g\<in\>\<bbb-T\>> with
|
||||
<math|P<around|(|f|)>*P<around|(|g|)>\<less\>0>, there exists an
|
||||
<math|h\<in\>\<bbb-T\>> with <math|P<around|(|h|)>=0>.
|
||||
</theorem>
|
||||
</surround>
|
||||
</tm-fragment>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.3.10>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Mathematical primitives>
|
||||
|
@ -12,16 +12,16 @@
|
|||
|
||||
<explain-macro|left|large-delimiter|bottom|top>
|
||||
|
||||
<explain-macro|mid|large-delimiter|<with|mode|math|\<cdots\>>>
|
||||
<explain-macro|mid|large-delimiter|<math|\<cdots\>>>
|
||||
|
||||
<explain-macro|right|large-delimiter|<with|mode|math|\<cdots\>>><explain-synopsis|large
|
||||
<explain-macro|right|large-delimiter|<math|\<cdots\>>><explain-synopsis|large
|
||||
delimiters>
|
||||
<|explain>
|
||||
These primitives are used for producing large delimiters, like in the
|
||||
formula
|
||||
|
||||
<\equation*>
|
||||
<left|langle><frac|1|a<rsub|1>><mid|\|><frac|1|a<rsub|2>><mid|\|>\<cdots\><mid|\|><frac|1|a<rsub|n>><right|rangle>.
|
||||
<around*|\<langle\>|<frac|1|a<rsub|1>><mid|\|><frac|1|a<rsub|2>><mid|\|>\<cdots\><mid|\|><frac|1|a<rsub|n>>|\<rangle\>>.
|
||||
</equation*>
|
||||
|
||||
Matching left and right delimiters are automatically sized so as contain
|
||||
|
@ -32,7 +32,7 @@
|
|||
formulas like
|
||||
|
||||
<\equation*>
|
||||
f<left|(><frac|1|x+<frac|1|y+<frac|1|z>>><right|)>
|
||||
f<around*|(|<frac|1|x+<frac|1|y+<frac|1|z>>>|)>
|
||||
</equation*>
|
||||
|
||||
The user may override the automatically determined size by specifying
|
||||
|
@ -46,12 +46,11 @@
|
|||
is rendered as
|
||||
|
||||
<\equation*>
|
||||
f<left|(|-8mm|4mm>x<mid|\||8mm>y<right|)|-4mm|8mm>
|
||||
f<around*|(|x<mid|\||8mm>y|)>
|
||||
</equation*>
|
||||
|
||||
The <src-arg|size> may also be a number <with|mode|math|n>, in which case
|
||||
the <with|mode|math|n>-th available size for the delimiter is taken. For
|
||||
instance,
|
||||
The <src-arg|size> may also be a number <math|n>, in which case the
|
||||
<math|n>-th available size for the delimiter is taken. For instance,
|
||||
|
||||
<\tm-fragment>
|
||||
<inactive*|g<left|(|0><left|(|1><left|(|2><left|(|3>z<right|)|3><right|)|2><right|)|1><right|)|0>>
|
||||
|
@ -60,7 +59,7 @@
|
|||
is rendered as
|
||||
|
||||
<\equation*>
|
||||
g<left|(|0><left|(|1><left|(|2><left|(|3>z<right|)|3><right|)|2><right|)|1><right|)|0>
|
||||
g<around*|(|<around*|(|<around*|(|<around*|(|z|)>|)>|)>|)>
|
||||
</equation*>
|
||||
</explain>
|
||||
|
||||
|
@ -72,16 +71,15 @@
|
|||
This primitive is used in order to produce big operators as in
|
||||
|
||||
<\equation>
|
||||
<label|big-example><big|sum><rsub|i=0><rsup|\<infty\>>a<rsub|i>*z<rsup|i><big|.>
|
||||
<label|big-example><big|sum><rsub|i=0><rsup|\<infty\>>a<rsub|i>*z<rsup|i>
|
||||
</equation>
|
||||
|
||||
The size of the operator depends on whether the formula is rendered in
|
||||
``display style'' or not. Formulas in separate equations, like
|
||||
(<reference|big-example>), are said to be rendered in display style,
|
||||
contrary to formulas which occur in the main text, like
|
||||
<with|mode|math|<big|sum><rsub|i=0><rsup|\<infty\>>a<rsub|i>*z<rsup|i><big|.>>.
|
||||
The user may use <menu|Format|Display style> to override the current
|
||||
settings.
|
||||
<math|<big|sum><rsub|i=0><rsup|\<infty\>>a<rsub|i>*z<rsup|i>>. The user
|
||||
may use <menu|Format|Display style> to override the current settings.
|
||||
|
||||
Notice that the formula (<reference|big-example>) is internally
|
||||
represented as
|
||||
|
@ -98,11 +96,11 @@
|
|||
<explain-macro|frac|num|den><explain-synopsis|fractions>
|
||||
<|explain>
|
||||
The <markup|frac> primitive is used in order to render fractions like
|
||||
<with|mode|math|<frac|x|y>>. In display style, the numerator
|
||||
<src-arg|num> and denominator <src-arg|den> are rendered in the normal
|
||||
size, but display style is turned of when typesetting <src-arg|num> and
|
||||
<src-arg|den>. When the display style is turned of, then the arguments
|
||||
are rendered in script size. For instance, the content
|
||||
<math|<frac|x|y>>. In display style, the numerator <src-arg|num> and
|
||||
denominator <src-arg|den> are rendered in the normal size, but display
|
||||
style is turned of when typesetting <src-arg|num> and <src-arg|den>. When
|
||||
the display style is turned of, then the arguments are rendered in script
|
||||
size. For instance, the content
|
||||
|
||||
<\tm-fragment>
|
||||
<inactive*|<frac|1|a<rsub|0>+<frac|1|a<rsub|1>+<frac|1|a<rsub|2>+\<ddots\>>>>>
|
||||
|
@ -121,12 +119,11 @@
|
|||
<explain-macro|sqrt|content|n><explain-synopsis|roots>
|
||||
<|explain>
|
||||
The <markup|sqrt> primitive is used in order to render square roots like
|
||||
<with|mode|math|<sqrt|x>> or <src-arg|n>-th roots like
|
||||
<with|mode|math|<sqrt|x|3>>. The root symbol is automatically sized so as
|
||||
to encapsulate the <src-arg|content>:
|
||||
<math|<sqrt|x>> or <src-arg|n>-th roots like <math|<sqrt|x|3>>. The root
|
||||
symbol is automatically sized so as to encapsulate the <src-arg|content>:
|
||||
|
||||
<\equation*>
|
||||
<sqrt|<frac|f(x)|y<rsup|2>+z<rsup|2>>|i+j>
|
||||
<sqrt|<frac|f<around|(|x|)>|y<rsup|2>+z<rsup|2>>|i+j>
|
||||
</equation*>
|
||||
</explain>
|
||||
|
||||
|
@ -140,7 +137,7 @@
|
|||
<explain-macro|rsup|script><explain-synopsis|scripts>
|
||||
<|explain>
|
||||
These primitives are used in order to attach a <src-arg|script> to the
|
||||
preceeding box in a horizontal concatenation (in the case of right
|
||||
preceding box in a horizontal concatenation (in the case of right
|
||||
scripts) or the next one (in the case of left scripts). When there is no
|
||||
such box, then the script is attached to an empty box. Moreover, when
|
||||
both a subscript and a superscript are specified on the same side, then
|
||||
|
@ -161,7 +158,7 @@
|
|||
operator:
|
||||
|
||||
<\equation*>
|
||||
lim<rsub|n\<rightarrow\>\<infty\>>a<rsub|n><big|.>
|
||||
lim<rsub|n\<rightarrow\>\<infty\>>a<rsub|n>
|
||||
</equation*>
|
||||
|
||||
Scripts are rendered in a smaller font in non-display style.
|
||||
|
@ -176,13 +173,13 @@
|
|||
<|explain>
|
||||
Left and right primes are similar to left and right superscripts, except
|
||||
that they behave in a different way when being edited. For instance, when
|
||||
your cursor is behind the prime symbol in <with|mode|math|f<rprime|'>>
|
||||
and you press backspace, then the prime is removed. If you are behind
|
||||
<with|mode|math|f<rsup|n>> and you press backspace several times, then
|
||||
you first enter the superscript, next remove <with|mode|math|n> and
|
||||
finally remove the superscript. Notice also that <src-arg|prime-symbols>
|
||||
is necessarily a string of concatenated prime symbols. For instance,
|
||||
<with|mode|math|f<rprime|'\<dag\>>> is represented by
|
||||
your cursor is behind the prime symbol in <math|f<rprime|'>> and you
|
||||
press backspace, then the prime is removed. If you are behind
|
||||
<math|f<rsup|n>> and you press backspace several times, then you first
|
||||
enter the superscript, next remove <math|n> and finally remove the
|
||||
superscript. Notice also that <src-arg|prime-symbols> is necessarily a
|
||||
string of concatenated prime symbols. For instance,
|
||||
<math|f<rprime|'\<dag\>>> is represented by
|
||||
<inactive*|f<rprime|'\<dag\>>>.
|
||||
</explain>
|
||||
|
||||
|
@ -214,7 +211,7 @@
|
|||
<|explain>
|
||||
These primitives can be used in order to produce wide accents above or
|
||||
below some mathematical <src-arg|content>. For instance
|
||||
<with|mode|math|<wide|x+y|\<bar\>>> corresponds to the markup
|
||||
<math|<wide|x+y|\<bar\>>> corresponds to the markup
|
||||
<inactive*|<wide|x+y|\<bar\>>>.
|
||||
</explain>
|
||||
|
||||
|
@ -222,12 +219,11 @@
|
|||
<explain-macro|neg|content><explain-synopsis|negations>
|
||||
<|explain>
|
||||
This primitive is mainly used for producing negated symbols or
|
||||
expressions, such as <with|mode|math|<neg|\<rightarrowtail\>>> or
|
||||
<with|mode|math|<neg|a>>.
|
||||
expressions, such as <math|<neg|\<rightarrowtail\>>> or <math|<neg|a>>.
|
||||
</explain>
|
||||
|
||||
<\explain>
|
||||
<explain-macro|tree|root|child-1|<with|mode|math|\<cdots\>>|child-n><explain-synopsis|trees>
|
||||
<explain-macro|tree|root|child-1|<math|\<cdots\>>|child-n><explain-synopsis|trees>
|
||||
<|explain>
|
||||
This primitive is used to produce a tree with a given <src-arg|root> and
|
||||
children <src-arg|child-1> until <src-arg|child-n>. The primitive should
|
||||
|
@ -255,4 +251,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.3.10>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Flow control primitives>
|
||||
|
@ -18,7 +18,7 @@
|
|||
|
||||
<\remark>
|
||||
It should be noticed that the use of conditional markup can be a bit
|
||||
tricky due to the fact that the accessability of arguments cannot
|
||||
tricky due to the fact that the accessibility of arguments cannot
|
||||
necessarily be checked beforehand. For instance, in the macro
|
||||
definition
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
|||
<inactive*|<visibility-flag>> evaluates to true. This condition cannot
|
||||
necessarily be checked <em|a priori>. For certain editing operations,
|
||||
like searches or spell checking, the incorrect determination of the
|
||||
accessability may lead to the positioning of the cursor at unaccessible
|
||||
accessibility may lead to the positioning of the cursor at unaccessible
|
||||
places, or to the ignorance of certain markup. In the future, we plan
|
||||
to improve this aspect of the editor, but it is better to avoid
|
||||
conditional markup whenever another solution can be found.
|
||||
|
@ -53,17 +53,17 @@
|
|||
</explain>
|
||||
|
||||
<\explain>
|
||||
<explain-macro|case|cond-1|body-1|<with|mode|math|\<cdots\>>|cond-n|body-n>
|
||||
<explain-macro|case|cond-1|body-1|<math|\<cdots\>>|cond-n|body-n>
|
||||
|
||||
<explain-macro|case|cond-1|body-1|<with|mode|math|\<cdots\>>|cond-n|body-n|else-body><explain-synopsis|case
|
||||
<explain-macro|case|cond-1|body-1|<math|\<cdots\>>|cond-n|body-n|else-body><explain-synopsis|case
|
||||
distinction>
|
||||
<|explain>
|
||||
These commands are respectively equivalent to
|
||||
|
||||
<\tm-fragment>
|
||||
<inactive*|<if|<arg|cond-1>|<arg|body-1>|<active*|<with|mode|math|\<cdots\>>><if|<arg|cond-n>|<arg|body-n>>>>
|
||||
<inactive*|<if|<arg|cond-1>|<arg|body-1>|<active*|<math|\<cdots\>>><if|<arg|cond-n>|<arg|body-n>>>>
|
||||
|
||||
<inactive*|<if|<arg|cond-1>|<arg|body-1>|<active*|<with|mode|math|\<cdots\>>><if|<arg|cond-n>|<arg|body-n>|<arg|else-body>>>>
|
||||
<inactive*|<if|<arg|cond-1>|<arg|body-1>|<active*|<math|\<cdots\>>><if|<arg|cond-n>|<arg|body-n>|<arg|else-body>>>>
|
||||
</tm-fragment>
|
||||
</explain>
|
||||
|
||||
|
@ -71,7 +71,7 @@
|
|||
<explain-macro|while|condition|body><explain-synopsis|repeated
|
||||
evaluation>
|
||||
<|explain>
|
||||
This construct maybe used in order to repeatly execute a given
|
||||
This construct maybe used in order to repeatedly execute a given
|
||||
<src-arg|body> while a given <src-arg|condition> is satisfied. For
|
||||
instance, when declaring
|
||||
|
||||
|
@ -96,4 +96,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,16 +1,16 @@
|
|||
<TeXmacs|1.0.3.11>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Evaluation control primitives>
|
||||
|
||||
This section describes several primitives for controlling the way
|
||||
expressions in the style-sheet language are evaluated. The primitives are
|
||||
analoguous to the <value|scheme> primitives <verbatim|eval>,
|
||||
<verbatim|quote>, <verbatim|quasiquote>, <abbr|etc.>, although the
|
||||
<TeXmacs> conventions are slightly <hlink|different|../../style/design/style-eval.en.tm>
|
||||
than those used by conventional functional languages like <name|Scheme>.
|
||||
analogous to the <scheme> primitives <verbatim|eval>, <verbatim|quote>,
|
||||
<verbatim|quasiquote>, <abbr|etc.>, although the <TeXmacs> conventions are
|
||||
slightly <hlink|different|../../style/design/style-eval.en.tm> than those
|
||||
used by conventional functional languages like <name|Scheme>.
|
||||
|
||||
<\explain>
|
||||
<explain-macro|eval|expr><explain-synopsis|force evaluation>
|
||||
|
@ -114,21 +114,20 @@
|
|||
don't evaluate>
|
||||
<|explain>
|
||||
When retrieving an environment variable <src-arg|var>, one is usually
|
||||
interested in its typesetted value, as given by
|
||||
<explain-macro|value|var>. In some cases, it may be useful to access the
|
||||
real, non-typesetted value. This can be done with
|
||||
<explain-macro|quote-value|var>.
|
||||
interested in its typeset value, as given by <explain-macro|value|var>.
|
||||
In some cases, it may be useful to access the real, non-typeset value.
|
||||
This can be done with <explain-macro|quote-value|var>.
|
||||
</explain>
|
||||
|
||||
<\explain>
|
||||
<explain-macro|quote-arg|var|index-1|<with|mode|math|\<cdots\>>|index-n><explain-synopsis|retrieve
|
||||
<explain-macro|quote-arg|var|index-1|<math|\<cdots\>>|index-n><explain-synopsis|retrieve
|
||||
an argument but don't evaluate>
|
||||
<|explain>
|
||||
When retrieving (a subexpression of) a macro argument <src-arg|var>, one
|
||||
is usually interested in its typesetted value, as given by
|
||||
<explain-macro|arg|var|index-1|<with|mode|math|\<cdots\>>|index-n>. In
|
||||
some cases, it may be useful to access the real, non-typesetted value.
|
||||
This can be done with <explain-macro|quote-arg|var|index-1|<with|mode|math|\<cdots\>>|index-n>.
|
||||
is usually interested in its typeset value, as given by
|
||||
<explain-macro|arg|var|index-1|<math|\<cdots\>>|index-n>. In some cases,
|
||||
it may be useful to access the real, non-typeset value. This can be done
|
||||
with <explain-macro|quote-arg|var|index-1|<math|\<cdots\>>|index-n>.
|
||||
</explain>
|
||||
|
||||
<tmdoc-copyright|2004|Joris van der Hoeven>
|
||||
|
@ -139,4 +138,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.3.11>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Internal primitives>
|
||||
|
@ -10,15 +10,15 @@
|
|||
use them if you really know what you are doing.
|
||||
|
||||
<\explain|<explain-macro|uninit><explain-synopsis|unknown content or
|
||||
unintialized data>>
|
||||
This primitive is mainly used for default uninialized value of
|
||||
uninitialized data>>
|
||||
This primitive is mainly used for default uninitialized value of
|
||||
environment variables; the main advantage of this tag is to be distinct
|
||||
from the empty string.
|
||||
</explain>
|
||||
|
||||
<\explain|<explain-macro|unknown><explain-synopsis|unknown content or
|
||||
unintialized data>>
|
||||
This primitive is mainly used for default uninialized value of
|
||||
uninitialized data>>
|
||||
This primitive is mainly used for default uninitialized value of
|
||||
environment variables; the main advantage of this tag is to be distinct
|
||||
from the empty string.
|
||||
|
||||
|
@ -32,19 +32,19 @@
|
|||
</explain>
|
||||
|
||||
<\explain>
|
||||
<explain-macro|collection|binding-1|<with|mode|math|\<cdots\>>|binding-n>
|
||||
<explain-macro|collection|binding-1|<math|\<cdots\>>|binding-n>
|
||||
|
||||
<explain-macro|associate|key|value><explain-synopsis|collections of
|
||||
bindings>
|
||||
<|explain>
|
||||
The <markup|collection> tag is used to represent hashtables with bindings
|
||||
<src-arg|binding-1> until <src-arg|binding-n>. Each binding is of the
|
||||
form <explain-macro|associate|key|value>, with a <src-arg|key> and an
|
||||
associated <src-arg|value>.
|
||||
The <markup|collection> tag is used to represent hash tables with
|
||||
bindings <src-arg|binding-1> until <src-arg|binding-n>. Each binding is
|
||||
of the form <explain-macro|associate|key|value>, with a <src-arg|key> and
|
||||
an associated <src-arg|value>.
|
||||
</explain>
|
||||
|
||||
<\explain>
|
||||
<explain-macro|attr|key-1|val-1|<with|mode|math|\<cdots\>>|key-n|val-n><explain-synopsis|XML-like
|
||||
<explain-macro|attr|key-1|val-1|<math|\<cdots\>>|key-n|val-n><explain-synopsis|XML-like
|
||||
attributes>
|
||||
<|explain>
|
||||
This tag is included for future compatibility with XML. It is used for
|
||||
|
@ -141,4 +141,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.2>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Miscellaneous style-sheet primitives>
|
||||
|
@ -25,7 +25,7 @@
|
|||
(x y) `(frac ,x (concat "1+" ,y)))|<quote-arg|x>|<quote-arg|y>>>>>>
|
||||
</tm-fragment>
|
||||
|
||||
It has been foreseen that the accessability of the macro arguments
|
||||
It has been foreseen that the accessibility of the macro arguments
|
||||
<src-arg|x> and <src-arg|y> is preserved for this kind of definitions.
|
||||
However, since <TeXmacs> does not heuristically analyze your <scheme>
|
||||
code, you will have to manually set the <abbr|D.R.D.> properties using
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<TeXmacs|1.0.3.11>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Transient markup>
|
||||
|
||||
The tags described in this section are used to control the rendering of
|
||||
style files and style file elements. It both contains markup for activation
|
||||
and disactivation of content and for the rendering of tags.
|
||||
and deactivation of content and for the rendering of tags.
|
||||
|
||||
<\explain>
|
||||
<explain-macro|active|content>
|
||||
|
@ -16,7 +16,7 @@
|
|||
|
||||
<explain-macro|inactive|content>
|
||||
|
||||
<explain-macro|inactive*|content><explain-synopsis|activation/disactivation
|
||||
<explain-macro|inactive*|content><explain-synopsis|activation/deactivation
|
||||
of content>
|
||||
<|explain>
|
||||
These tags can be used to temporarily or permanently change the
|
||||
|
@ -26,10 +26,10 @@
|
|||
deactivated, it is rendered as <inactive*|<frac|1|2>>.
|
||||
|
||||
The <markup|active> and <markup|inactive> tags only activate or
|
||||
desactivate the root tag of the <src-arg|content>. Typically, a tag which
|
||||
deactivate the root tag of the <src-arg|content>. Typically, a tag which
|
||||
contains hidden information (like <markup|hlink>) can be deactivated by
|
||||
positioning the cursor just behind it and pressing <key|backspace>.
|
||||
This action just deactivates the hyperlink, but not the potentially
|
||||
positioning the cursor just behind it and pressing <key|backspace>. This
|
||||
action just deactivates the hyperlink, but not the potentially
|
||||
complicated body of the hyperlink. Therefore, the hyperlink is
|
||||
transformed into an inactive tag of the form
|
||||
<explain-macro|inactive|<with|font-shape|right|<explain-macro|hlink|body|ref>>>.
|
||||
|
@ -42,17 +42,17 @@
|
|||
Nevertheless, it is sometimes desirable to reactivate certain subtrees
|
||||
inside deactivated content. For instance, the following piece of
|
||||
deactivated code (using <markup|disactive*>) contains the reactivated
|
||||
subexpression <with|mode|math|<with|color|red|\<heartsuit\>\<heartsuit\>\<heartsuit\>>>
|
||||
subexpression <math|<with|color|red|\<heartsuit\>\<heartsuit\>\<heartsuit\>>>
|
||||
(using <markup|active*>):
|
||||
|
||||
<\tm-fragment>
|
||||
<inactive*|<assign|love|<macro|from|<active*|<with|mode|math|<with|color|red|\<heartsuit\>\<heartsuit\>\<heartsuit\>>>>
|
||||
<inactive*|<assign|love|<macro|from|<active*|<math|<with|color|red|\<heartsuit\>\<heartsuit\>\<heartsuit\>>>>
|
||||
from <arg|from>.>>>
|
||||
</tm-fragment>
|
||||
</explain>
|
||||
|
||||
<\explain>
|
||||
<explain-macro|inline-tag|name|arg-1|<with|mode|math|\<cdots\>>|arg-n><explain-synopsis|rendering
|
||||
<explain-macro|inline-tag|name|arg-1|<math|\<cdots\>>|arg-n><explain-synopsis|rendering
|
||||
of inline tags>
|
||||
<|explain>
|
||||
This tag is used for the default inline rendering of an inactive tag with
|
||||
|
@ -65,11 +65,11 @@
|
|||
</explain>
|
||||
|
||||
<\explain>
|
||||
<explain-macro|open-tag|name|arg-1|<with|mode|math|\<cdots\>>|arg-n>
|
||||
<explain-macro|open-tag|name|arg-1|<math|\<cdots\>>|arg-n>
|
||||
|
||||
<explain-macro|middle-tag|name|arg-1|<with|mode|math|\<cdots\>>|arg-n>
|
||||
<explain-macro|middle-tag|name|arg-1|<math|\<cdots\>>|arg-n>
|
||||
|
||||
<explain-macro|close-tag|name|arg-1|<with|mode|math|\<cdots\>>|arg-n><explain-synopsis|rendering
|
||||
<explain-macro|close-tag|name|arg-1|<math|\<cdots\>>|arg-n><explain-synopsis|rendering
|
||||
of multi-line tags>
|
||||
<|explain>
|
||||
These tags are similar to <markup|inline-tag>, when some of the arguments
|
||||
|
@ -106,9 +106,9 @@
|
|||
</explain>
|
||||
|
||||
<\explain>
|
||||
<explain-macro|style-with|var-1|val-1|<with|mode|math|\<cdots\>>|var-n|val-n|body>
|
||||
<explain-macro|style-with|var-1|val-1|<math|\<cdots\>>|var-n|val-n|body>
|
||||
|
||||
<explain-macro|style-with*|var-1|val-1|<with|mode|math|\<cdots\>>|var-n|val-n|body><explain-synopsis|alter
|
||||
<explain-macro|style-with*|var-1|val-1|<math|\<cdots\>>|var-n|val-n|body><explain-synopsis|alter
|
||||
presentation in style files only>
|
||||
<|explain>
|
||||
This tag may be used in order to temporarily modify the rendering of
|
||||
|
@ -148,10 +148,11 @@
|
|||
<|explain>
|
||||
These tags are used only temporarily when entering special content.
|
||||
|
||||
When pressing <shortcut|(make 'symbol)>, a <markup|symbol> tag is created. After entering
|
||||
the name of the symbol, or the ASCII-code of the symbol and pressing
|
||||
return, the <markup|symbol> tag is replaced by the corresponding symbol
|
||||
(usually a string enclosed in <verbatim|\<less\>\<gtr\>>).
|
||||
When pressing <shortcut|(make 'symbol)>, a <markup|symbol> tag is
|
||||
created. After entering the name of the symbol, or the ASCII-code of the
|
||||
symbol and pressing return, the <markup|symbol> tag is replaced by the
|
||||
corresponding symbol (usually a string enclosed in
|
||||
<verbatim|\<less\>\<gtr\>>).
|
||||
|
||||
When pressing <key|\\>, a <markup|hybrid> tag is created. After entering
|
||||
a string and pressing return, it is determined whether the string
|
||||
|
@ -243,4 +244,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.3.7>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Dynamic libraries>
|
||||
|
@ -21,7 +21,7 @@
|
|||
In this file it is specified that your application should export a data
|
||||
structure
|
||||
|
||||
<\cpp-fragment>
|
||||
<\cpp-code>
|
||||
typedef struct package_exports_1 {
|
||||
|
||||
\ \ char* version_protocol; /* "TeXmacs communication protocol 1" */
|
||||
|
@ -35,13 +35,13 @@
|
|||
\ \ char* (*evaluate) (char* what, char* session, char** errors);
|
||||
|
||||
} package_exports_1;
|
||||
</cpp-fragment>
|
||||
</cpp-code>
|
||||
|
||||
which contains an installation routine for your application, as well as an
|
||||
evaluation routine for further input (for more information, see the header
|
||||
file). <TeXmacs> will on its turn export a structure
|
||||
|
||||
<\cpp-fragment>
|
||||
<\cpp-code>
|
||||
typedef struct TeXmacs_exports_1 {
|
||||
|
||||
\ \ char* version_protocol; /* "TeXmacs communication protocol 1" */
|
||||
|
@ -49,7 +49,7 @@
|
|||
\ \ char* version_TeXmacs;
|
||||
|
||||
} TeXmacs_exports_1;
|
||||
</cpp-fragment>
|
||||
</cpp-code>
|
||||
|
||||
It is assumed that each application takes care of its own memory
|
||||
management. Hence, strings created by <TeXmacs> will be destroyed by
|
||||
|
@ -62,8 +62,7 @@
|
|||
by <TeXmacs> in order to initialize your system with options
|
||||
<verbatim|options>. It communicates the routines exported by <TeXmacs> to
|
||||
your system in the form of a pointer to a structure of type
|
||||
<cpp-code|TeXmacs_exports_1>. The routine should return a status message
|
||||
like
|
||||
<cpp|TeXmacs_exports_1>. The routine should return a status message like
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ "yourcas-version successfully linked to TeXmacs"
|
||||
|
@ -82,7 +81,7 @@
|
|||
Finally, the configuration file of your plug-in should contain something as
|
||||
follows:
|
||||
|
||||
<\scheme-fragment>
|
||||
<\scm-code>
|
||||
(plugin-configure <em|myplugin>
|
||||
|
||||
\ \ (:require (url-exists? (url "$LD_LIBRARY_PATH"
|
||||
|
@ -91,10 +90,10 @@
|
|||
\ \ (:link "lib<em|myplugin>.so" "<em|myplugin>_exports" "")
|
||||
|
||||
\ \ <em|further-configuration>)
|
||||
</scheme-fragment>
|
||||
</scm-code>
|
||||
|
||||
Here <verbatim|<em|myplugin>_exports> is a pointer to a structure of the
|
||||
type <cpp-code|package_exports_1>.
|
||||
type <cpp|package_exports_1>.
|
||||
|
||||
<\remark>
|
||||
It is possible that the communication protocol changes in the future. In
|
||||
|
@ -125,7 +124,7 @@
|
|||
<\quotation>
|
||||
<\framed-fragment>
|
||||
<\with|par-par-sep|0fn>
|
||||
<\with|font-family|tt>
|
||||
<\verbatim>
|
||||
tmsrc = /home/vdhoeven/texmacs/src/TeXmacs
|
||||
|
||||
CXX = g++
|
||||
|
@ -140,7 +139,7 @@
|
|||
src/dynlink.o
|
||||
|
||||
\ \ \ \ \ \ \ \ $(LD) -shared -o lib/libtmdynlink.so src/dynlink.o
|
||||
</with>
|
||||
</verbatim>
|
||||
</with>
|
||||
</framed-fragment>
|
||||
</quotation>
|
||||
|
@ -151,7 +150,7 @@
|
|||
find the include file <verbatim|TeXmacs.h>. The configuration file
|
||||
<verbatim|init-dynlink.scm> simply contains
|
||||
|
||||
<\scheme-fragment>
|
||||
<\scm-code>
|
||||
(plugin-configure dynlink
|
||||
|
||||
\ \ (:require (url-exists? (url "$LD_LIBRARY_PATH"
|
||||
|
@ -161,17 +160,17 @@
|
|||
\ \ (:link "libtmdynlink.so" "dynlink_exports" "")
|
||||
|
||||
\ \ (:session "Dynlink"))
|
||||
</scheme-fragment>
|
||||
</scm-code>
|
||||
|
||||
As to the <value|cpp> file <verbatim|dynlink.cpp>, it contains a string
|
||||
As to the <c++> file <verbatim|dynlink.cpp>, it contains a string
|
||||
|
||||
<\cpp-fragment>
|
||||
<\cpp-code>
|
||||
static char* output= NULL;
|
||||
</cpp-fragment>
|
||||
</cpp-code>
|
||||
|
||||
with the last output, the initialization routine
|
||||
|
||||
<\cpp-fragment>
|
||||
<\cpp-code>
|
||||
char*
|
||||
|
||||
dynlink_install (TeXmacs_exports_1* TM, char* opts, char** errs) {
|
||||
|
@ -183,11 +182,11 @@
|
|||
\ \ return output;
|
||||
|
||||
}
|
||||
</cpp-fragment>
|
||||
</cpp-code>
|
||||
|
||||
the evaluation routine
|
||||
|
||||
<\cpp-fragment>
|
||||
<\cpp-code>
|
||||
char*
|
||||
|
||||
dynlink_eval (char* what, char* session, char** errors) {
|
||||
|
@ -205,11 +204,11 @@
|
|||
\ \ return output;
|
||||
|
||||
}
|
||||
</cpp-fragment>
|
||||
</cpp-code>
|
||||
|
||||
and the data structure with the public exports:
|
||||
|
||||
<\cpp-fragment>
|
||||
<\cpp-code>
|
||||
package_exports_1 dynlink_exports= {
|
||||
|
||||
\ \ "TeXmacs communication protocol 1",
|
||||
|
@ -221,10 +220,10 @@
|
|||
\ \ dynlink_eval
|
||||
|
||||
};
|
||||
</cpp-fragment>
|
||||
</cpp-code>
|
||||
|
||||
Notice that the application takes care of the memory allocation and
|
||||
deallocation of <cpp-code|output>.
|
||||
deallocation of <cpp|output>.
|
||||
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
||||
|
@ -236,20 +235,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
<associate|page-bot|30mm>
|
||||
<associate|page-even|30mm>
|
||||
<associate|page-odd|30mm>
|
||||
<associate|page-reduce-bot|15mm>
|
||||
<associate|page-reduce-left|25mm>
|
||||
<associate|page-reduce-right|25mm>
|
||||
<associate|page-reduce-top|15mm>
|
||||
<associate|page-right|30mm>
|
||||
<associate|page-top|30mm>
|
||||
<associate|page-type|a4>
|
||||
<associate|par-width|150mm>
|
||||
<associate|sfactor|4>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.18>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Summary of the configuration options for plug-ins>
|
||||
|
@ -26,8 +26,8 @@
|
|||
relative to the <verbatim|<em|package-path>>.
|
||||
|
||||
<item*|<verbatim|<with|font-series|medium|(:winpath <em|package-path>
|
||||
<em|inner-bin-path>)>>>Analoguous to <verbatim|:winpath>, but under
|
||||
MacOS.
|
||||
<em|inner-bin-path>)>>>Analogous to <verbatim|:winpath>, but under
|
||||
<name|MacOS>.
|
||||
|
||||
<item*|<verbatim|<with|font-series|medium|(:require
|
||||
<em|condition>)>>>This option specifies a sanity
|
||||
|
@ -106,8 +106,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.4>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|About the API documentation>
|
||||
|
@ -14,7 +14,7 @@
|
|||
are very sketchy pages for:
|
||||
|
||||
<\traverse>
|
||||
<branch|<tt|tmfs>: the <TeXmacs> file system.|tmfs/tmfs.en.tm>
|
||||
<branch|<verbatim|tmfs>: the <TeXmacs> file system.|tmfs/tmfs.en.tm>
|
||||
|
||||
<branch|The URL system.|url.en.tm>
|
||||
|
||||
|
@ -37,4 +37,4 @@
|
|||
<\collection>
|
||||
<associate|preamble|false>
|
||||
</collection>
|
||||
</initial>
|
||||
</initial>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.19>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Notification and download of updates>
|
||||
|
@ -26,14 +26,15 @@
|
|||
<subsection|Operating system specifics>
|
||||
|
||||
Under <name|MacOS> the process of creation of the appcast is partially
|
||||
automated through the <name|make> build rule <tt|MACOS_RELEASE>. Calling
|
||||
<tt|make MACOS_RELEASE> will compile and bundle <TeXmacs>, then zip and
|
||||
finally digitally sign the resulting <tt|TeXmacs-*.app.zip> with the script
|
||||
<tt|admin/misc/sign_update>. In order for this to work, one has to set the
|
||||
environment variable <tt|TEXMACS_PRIVATE_DSA> to point to the location of
|
||||
the private <name|DSA> key used to sign releases. At the end of the build
|
||||
process a chunk of <name|XML> is printed that can be pasted in the
|
||||
<tt|appcast.xml> file.
|
||||
automated through the <name|make> build rule <verbatim|MACOS_RELEASE>.
|
||||
Calling <verbatim|make MACOS_RELEASE> will compile and bundle <TeXmacs>,
|
||||
then zip and finally digitally sign the resulting
|
||||
<verbatim|TeXmacs-*.app.zip> with the script
|
||||
<verbatim|admin/misc/sign_update>. In order for this to work, one has to
|
||||
set the environment variable <verbatim|TEXMACS_PRIVATE_DSA> to point to the
|
||||
location of the private <name|DSA> key used to sign releases. At the end of
|
||||
the build process a chunk of <name|XML> is printed that can be pasted in
|
||||
the <verbatim|appcast.xml> file.
|
||||
|
||||
Under <name|Windows> digital signatures are not yet supported by
|
||||
<name|WinSparkle> and as such will be ignored (Aug. 2013).
|
||||
|
@ -115,8 +116,9 @@
|
|||
The file with the public <name|DSA> key to use to verify the digital
|
||||
signature of releases. This feature is currently (Aug. 2013) only
|
||||
supported under <name|MacOS>, but the preference value is ignored:
|
||||
<name|Sparkle> will use the value set in the <tt|SUPublicDSAKeyFile> key
|
||||
in the application bundle's <tt|Info.plist> dictionary.
|
||||
<name|Sparkle> will use the value set in the
|
||||
<verbatim|SUPublicDSAKeyFile> key in the application bundle's
|
||||
<tt|Info.plist> dictionary.
|
||||
</explain>
|
||||
|
||||
<tmdoc-copyright|2013|the <TeXmacs> team>
|
||||
|
|
|
@ -3274,6 +3274,14 @@ source code.
|
|||
<scm|void>.
|
||||
</explain>
|
||||
|
||||
<\explain>
|
||||
<scm|(spell-var-accept <scm-arg|string> <scm-arg|string> <scm-arg|bool>)>
|
||||
<explain-synopsis|no synopsis>
|
||||
<|explain>
|
||||
Calls the <c++> function <cpp|spell_accept> which returns
|
||||
<scm|void>.
|
||||
</explain>
|
||||
|
||||
<\explain>
|
||||
<scm|(spell-insert <scm-arg|string> <scm-arg|string>)>
|
||||
<explain-synopsis|no synopsis>
|
||||
|
|
|
@ -1,38 +1,38 @@
|
|||
<TeXmacs|1.0.7.19>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|A <tt|tmfs> primer>
|
||||
<tmdoc-title|A <verbatim|tmfs> primer>
|
||||
|
||||
<subsection|The <TeXmacs> filesystem>
|
||||
|
||||
Many things in <TeXmacs> can be referenced through a <abbr|URI> with
|
||||
<tt|tmfs> as schema. Examples of entities in this system are buffers, views
|
||||
and windows or at a higher level help buffers and search results. A
|
||||
<verbatim|tmfs> as schema. Examples of entities in this system are buffers,
|
||||
views and windows or at a higher level help buffers and search results. A
|
||||
<TeXmacs> <abbr|URI> follows the format:
|
||||
|
||||
<center|<tt|tmfs://handler[/query]>>
|
||||
<center|<verbatim|tmfs://handler[/query]>>
|
||||
|
||||
Requests to open <abbr|URI>s such as these are sent to a <em|handler>,
|
||||
which actually is a set of procedures implementing the basic operations
|
||||
related to the type of content they handle: loading the content, saving it
|
||||
(if possible or necessary), setting the window title and establishing
|
||||
access permissions are the basic operations. Predefined handlers which the
|
||||
user usually encounters are <tt|grep>, <tt|help>, <tt|history>,
|
||||
<tt|revision> and <tt|apidoc>: they accept a query representing search
|
||||
strings, files or help pages and render results in the appropriate language
|
||||
into a new buffer. The <em|query> is a string in the usual format
|
||||
<tt|variable1=value1&variable2=value2>. Its parsing can be done using
|
||||
<scm|query-ref>.
|
||||
user usually encounters are <verbatim|grep>, <verbatim|help>,
|
||||
<verbatim|history>, <verbatim|revision> and <verbatim|apidoc>: they accept
|
||||
a query representing search strings, files or help pages and render results
|
||||
in the appropriate language into a new buffer. The <em|query> is a string
|
||||
in the usual format <tt|variable1=value1&variable2=value2>. Its parsing can
|
||||
be done using <scm|query-ref>.
|
||||
|
||||
Situations where using this system makes more sense than regular documents
|
||||
are for instance documentation, which must be chosen from several languages
|
||||
and possibly be compiled on the fly from various sources (see module
|
||||
<tt|<hlink|doc.apidoc|tmfs://apidoc/type=module&what=doc.apidoc>> and
|
||||
<verbatim|<hlink|doc.apidoc|tmfs://apidoc/type=module&what=doc.apidoc>> and
|
||||
related modules) and automatically generated content, like that resulting
|
||||
from interacting from an external system for version control of documents
|
||||
(see handler <tt|version> in module <tt|<hlink|version.version-tmfs|tmfs://apidoc/type=module&what=version.version-tmfs>>).
|
||||
(see handler <tt|version> in module <verbatim|<hlink|version.version-tmfs|tmfs://apidoc/type=module&what=version.version-tmfs>>).
|
||||
|
||||
<subsection|Implementing a handler>
|
||||
|
||||
|
@ -131,9 +131,9 @@
|
|||
<|explain>
|
||||
A <em|load handler> for <scm-arg|name> is invoked when <TeXmacs> receives
|
||||
a request to open a <abbr|URI> of type
|
||||
<tt|tmfs://<scm-arg|name>/<scm-arg|qry>>. The <scm-arg|body> of the
|
||||
handler is passed <tt|qry> as parameter (see <scm|query-ref>) and must
|
||||
return a complete <TeXmacs> buffer. Consider the following example:
|
||||
<verbatim|tmfs://<scm-arg|name>/<scm-arg|qry>>. The <scm-arg|body> of the
|
||||
handler is passed <verbatim|qry> as parameter (see <scm|query-ref>) and
|
||||
must return a complete <TeXmacs> buffer. Consider the following example:
|
||||
|
||||
<\scm-code>
|
||||
(tmfs-load-handler (id qry)
|
||||
|
@ -148,43 +148,43 @@
|
|||
</scm-code>
|
||||
|
||||
This will open <abbr|URI>s with the format
|
||||
<tt|tmfs://id/whatever_arguments>.
|
||||
<verbatim|tmfs://id/whatever_arguments>.
|
||||
|
||||
Creation of the buffer contents may be simplified using the procedures
|
||||
defined in module <tt|<hlink|kernel.gui.gui-markup|tmfs://sapi/type=module&what=kernel.gui.gui-markup>>.
|
||||
defined in module <verbatim|<hlink|kernel.gui.gui-markup|tmfs://sapi/type=module&what=kernel.gui.gui-markup>>.
|
||||
</explain>
|
||||
|
||||
<\explain>
|
||||
<scm|(tmfs-save-handler (<scm-arg|name> <scm-arg|qry> <scm-arg|doc>)
|
||||
<scm-arg|body>)><explain-synopsis|define save handler for @name>
|
||||
<scm-arg|body>)><explain-synopsis|define save handler for <scm-arg|name>>
|
||||
</explain|A <em|save handler> is invoked when the user tries to save a
|
||||
buffer of type <tt|tmfs://<scm-arg|name>/...> See also
|
||||
buffer of type <verbatim|tmfs://<scm-arg|name>/...> See also
|
||||
<scm|tmfs-load-handler> and others.>
|
||||
|
||||
<\explain>
|
||||
<scm|(tmfs-title-handler (<scm-arg|name> <scm-arg|qry> <scm-arg|doc>)
|
||||
<scm-arg|body>)><explain-synopsis|define title handler @name>
|
||||
<scm-arg|body>)><explain-synopsis|define title handler <scm-arg|name>>
|
||||
</explain|A <em|title handler> is invoked to build the title for a window
|
||||
displaying a buffer of type <tt|tmfs://<scm-arg|name>/...> It is expected
|
||||
to return a simple string in the right language for the user.>
|
||||
displaying a buffer of type <verbatim|tmfs://<scm-arg|name>/...> It is
|
||||
expected to return a simple string in the right language for the user.>
|
||||
|
||||
<\explain>
|
||||
<scm|(tmfs-permission-handler (<scm-arg|name> <scm-arg|qry>
|
||||
<scm-arg|kind>) <scm-arg|body>)><explain-synopsis|define master handler
|
||||
@name>
|
||||
<scm-arg|name>>
|
||||
</explain|A <em|permissions handler> decides whether the buffer
|
||||
corresponding to the query made to the handler may be loaded/saved, etc.
|
||||
<scm-arg|kind> may take one of the values <scm|"load">, (...)>
|
||||
|
||||
<\explain>
|
||||
<scm|(tmfs-master-handler (<scm-arg|name> <scm-arg|qry> <scm-arg|doc>)
|
||||
<scm-arg|body>)><explain-synopsis|define title handler @name>
|
||||
<scm-arg|body>)><explain-synopsis|define title handler <scm-arg|name>>
|
||||
</explain|A <em|master handler> is... (possibly related to the concept of
|
||||
master document in a project, but this needs checking)>
|
||||
|
||||
<\explain>
|
||||
<scm|(query-ref <scm-arg|qry> <scm-arg|arg>)><explain-synopsis|return
|
||||
value of parameter @arg in query @qry>
|
||||
value of parameter <scm-arg|arg> in query <scm-arg|qry>>
|
||||
</explain|Given a <scm-arg|qry> string of type
|
||||
<tt|variable1=value1&variable2=value2>, <scm|query-ref> will return
|
||||
<tt|value1> for an <scm-arg|arg> value of <scm|value1>, etc.>
|
||||
|
@ -193,9 +193,9 @@
|
|||
|
||||
In order to make your handler available from any menu item or document upon
|
||||
startup, you must add it to the initialization process, that is to
|
||||
<tt|init-texmacs.scm> or <tt|my-init-texmacs.scm>, using the macro
|
||||
<scm|lazy-tmfs-handler>. This will delay loading of your code either until
|
||||
it is required or <TeXmacs> is idle waiting for user input.
|
||||
<verbatim|init-texmacs.scm> or <verbatim|my-init-texmacs.scm>, using the
|
||||
macro <scm|lazy-tmfs-handler>. This will delay loading of your code either
|
||||
until it is required or <TeXmacs> is idle waiting for user input.
|
||||
|
||||
<\remark>
|
||||
\ The keywords <tt|buffer>, <tt|view> and <tt|window> may not be used as
|
||||
|
@ -204,11 +204,12 @@
|
|||
|
||||
<\explain>
|
||||
<scm|(lazy-tmfs-handler <scm-arg|module>
|
||||
<scm-arg|handler>)><explain-synopsis|lazily install a tmfs handler>
|
||||
<scm-arg|handler>)><explain-synopsis|lazily install a <verbatim|tmfs>
|
||||
handler>
|
||||
<|explain>
|
||||
Inform <TeXmacs> that <scm-arg|handler> is available in module
|
||||
<scm-arg|module>. <scm-arg|module> must be a list of symbols (like
|
||||
<scm|(kernel gui gui-markup)>) representing the <scheme> modle wher
|
||||
<scm|(kernel gui gui-markup)>) representing the <scheme> module where
|
||||
you'll have defined your handler using <scm|tmfs-handler> or with the
|
||||
convenience macros <scm|tmfs-load-handler>, <scm|tmfs-save-handler>,
|
||||
<scm|tmfs-permission-handler> and <scm|tmfs-title-handler>.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.15>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|The <TeXmacs> file system>
|
||||
|
@ -11,7 +11,7 @@
|
|||
the following:
|
||||
|
||||
<\traverse>
|
||||
<branch|A <tt|tmfs> primer.|tmfs-basics.en.tm>
|
||||
<branch|A <verbatim|tmfs> primer.|tmfs-basics.en.tm>
|
||||
</traverse>
|
||||
|
||||
<tmdoc-copyright|2012|the <TeXmacs> team.>
|
||||
|
@ -22,4 +22,7 @@
|
|||
Foundation; with no Invariant\nSections, with no Front-Cover Texts, and
|
||||
with no Back-Cover Texts. A copy of\nthe license is included in the section
|
||||
entitled "GNU Free Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.19>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|The URL system>
|
||||
|
@ -21,14 +21,14 @@
|
|||
parameters. The second, optional argument, is an optional path for the
|
||||
cursor history.
|
||||
|
||||
You can pass paramenters in <scm-arg|u> in two ways: appending a hash
|
||||
<tt|#> and some text, like in <tt|some/path/some-file.tm#blah> will open
|
||||
the file and jump to the first label of name <tt|blah> found, if any. The
|
||||
other possibility is the usual way in the web: append a question mark
|
||||
<tt|?> followed by pairs <tt|parameter=value>. Currently the parameters
|
||||
<tt|line>, <tt|column> and <tt|select>, which respectively jump to the
|
||||
chosen location and select the given text at that line, are supported by
|
||||
default for any file of format <scm|generic-file>. (see
|
||||
You can pass parameters in <scm-arg|u> in two ways: appending a hash
|
||||
<tt|#> and some text, like in <verbatim|some/path/some-file.tm#blah> will
|
||||
open the file and jump to the first label of name <tt|blah> found, if
|
||||
any. The other possibility is the usual way in the web: append a question
|
||||
mark <tt|?> followed by pairs <tt|parameter=value>. Currently the
|
||||
parameters <tt|line>, <tt|column> and <tt|select>, which respectively
|
||||
jump to the chosen location and select the given text at that line, are
|
||||
supported by default for any file of format <scm|generic-file>. (see
|
||||
<scm|define-format>).
|
||||
</explain>
|
||||
|
||||
|
@ -52,9 +52,9 @@
|
|||
<|explain>
|
||||
Return <scm|#t> if the url is absolute. Absolute urls may be for instance
|
||||
full paths in the file system or internet <abbr|URL>s starting with a
|
||||
protocol specification like <tt|ftp> or <tt|http>. The <tt|tmfs> urls are
|
||||
also understood to be rooted. See also <scm|url-rooted-tmfs?>,
|
||||
<scm|url-rooted-web?> and .
|
||||
protocol specification like <verbatim|ftp> or <verbatim|http>. The
|
||||
<verbatim|tmfs> urls are also understood to be rooted. See also
|
||||
<scm|url-rooted-tmfs?>, <scm|url-rooted-web?> and .
|
||||
</explain>
|
||||
|
||||
<\explain>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.4>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Writing <TeXmacs> bibliography styles>
|
||||
|
@ -10,7 +10,7 @@
|
|||
<TeXmacs> admits support both for <BibTeX> and a native tool for managing
|
||||
bibliographies. <BibTeX> styles are denoted by their usual names. <TeXmacs>
|
||||
styles are prefixed by <verbatim|tm->. For example, the <TeXmacs>
|
||||
<verbatim|<group|tm-plain>> style is the replacement for the <BibTeX>
|
||||
<verbatim|<rigid|tm-plain>> style is the replacement for the <BibTeX>
|
||||
<verbatim|plain> style. Equivalents for the following <BibTeX> styles have
|
||||
been implemented: <verbatim|abbrv>, <verbatim|alpha>, <verbatim|ieeetr>,
|
||||
<verbatim|plain> et <verbatim|siam>. These styles can therefore be used
|
||||
|
@ -25,7 +25,7 @@
|
|||
simple example and give a detailed lists of available <scheme> functions
|
||||
which facilitate the creation of new styles.
|
||||
|
||||
<section|Example of a simple blibliography style>
|
||||
<section|Example of a simple bibliography style>
|
||||
|
||||
Bibliographic style files are stored in directory
|
||||
<verbatim|$TEXMACS_PATH/progs/bibtex>. They have the name of the style
|
||||
|
@ -36,18 +36,18 @@
|
|||
|
||||
All style files must be declared as a module as follows:
|
||||
|
||||
<\scm-fragment>
|
||||
<\scm-code>
|
||||
(texmacs-module (bibtex example)
|
||||
|
||||
\ \ (:use (bibtex bib-utils)))
|
||||
</scm-fragment>
|
||||
</scm-code>
|
||||
|
||||
The module <verbatim|bib-utils> contains all usefull fonctions needed to
|
||||
The module <verbatim|bib-utils> contains all useful functions needed to
|
||||
write bibliographic styles.
|
||||
|
||||
All style files must me declared as a bibliographic style as follows:
|
||||
|
||||
<scm-fragment|(bib-define-style "example" "plain")>
|
||||
<scm-code|(bib-define-style "example" "plain")>
|
||||
|
||||
The first argument to <scm|bib-define-style> is the name of the current
|
||||
style. The second argument is the name of a fall-back style,
|
||||
|
@ -56,7 +56,7 @@
|
|||
following minimalistic style file behaves in an identical way as the
|
||||
<verbatim|plain> style:
|
||||
|
||||
<\scm-fragment>
|
||||
<\scm-code>
|
||||
(texmacs-module (bibtex example)
|
||||
|
||||
\ \ (:use (bibtex bib-utils)))
|
||||
|
@ -64,20 +64,20 @@
|
|||
\;
|
||||
|
||||
(bib-define-style "example" "plain")
|
||||
</scm-fragment>
|
||||
</scm-code>
|
||||
|
||||
Each formatting function defined in the default style can be overloaded in
|
||||
the current style. For example, the function <scm|bib-format-date> is used
|
||||
to format the date in the <verbatim|plain> style. It is redefinable in our
|
||||
example style as follows:
|
||||
|
||||
<\scm-fragment>
|
||||
<\scm-code>
|
||||
(tm-define (bib-format-date e)
|
||||
|
||||
\ \ (:mode bib-example?)
|
||||
|
||||
\ \ (bib-format-field e "year"))
|
||||
</scm-fragment>
|
||||
</scm-code>
|
||||
|
||||
All exported functions must be prefixed with <verbatim|bib->. Overloaded
|
||||
functions must be followed with directive <scm|(:mode bib-example?)>, in
|
||||
|
@ -85,7 +85,7 @@
|
|||
|
||||
Our complete example file <verbatim|example.scm> is as follows:
|
||||
|
||||
<\scm-fragment>
|
||||
<\scm-code>
|
||||
(texmacs-module (bibtex example)
|
||||
|
||||
\ \ (:use (bibtex bib-utils)))
|
||||
|
@ -101,7 +101,7 @@
|
|||
\ \ (:mode bib-example?)
|
||||
|
||||
\ \ (bib-format-field e "year"))
|
||||
</scm-fragment>
|
||||
</scm-code>
|
||||
|
||||
It behaves in a similar way as the <verbatim|plain> style, except that all
|
||||
dates are formatted according to our custom routine.
|
||||
|
@ -191,7 +191,7 @@
|
|||
<\explain>
|
||||
<scm|(bib-new-list-spc ltm)><explain-synopsis|blank separated list>
|
||||
<|explain>
|
||||
This function is equivalent to the evaluaton of <scm|(bib-new-list " "
|
||||
This function is equivalent to the evaluation of <scm|(bib-new-list " "
|
||||
ltm)>.
|
||||
</explain>
|
||||
|
||||
|
@ -305,7 +305,6 @@
|
|||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
<associate|preamble|false>
|
||||
</collection>
|
||||
</initial>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.15>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Manipulating <TeXmacs> views>
|
||||
|
@ -9,8 +9,8 @@
|
|||
<scm|(view-list)><explain-synopsis|list of all views>
|
||||
<|explain>
|
||||
This routine returns the list of all available views, sorted by inverse
|
||||
chronologial order. That is, views which were selected more recently will
|
||||
occur earlier in the list.
|
||||
chronological order. That is, views which were selected more recently
|
||||
will occur earlier in the list.
|
||||
</explain>
|
||||
|
||||
<\explain>
|
||||
|
@ -60,4 +60,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.1>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Fundamental tree modification routines>
|
||||
|
@ -14,10 +14,10 @@
|
|||
occasionally be useful as well.
|
||||
|
||||
It should be emphasized that the fundamental tree modification routines are
|
||||
<em|not> checked for their correctness. It is the responsability of the
|
||||
<em|not> checked for their correctness. It is the responsibility of the
|
||||
user to verify that the operations are valid and that they lead to a
|
||||
correct new edit tree. Although it is sometimes possible to leave the edit
|
||||
tree in a temporarily incorrect or ``unsimplified'' state (for instance, by
|
||||
tree in a temporarily incorrect or \Punsimplified\Q state (for instance, by
|
||||
allowing subtrees of the form <rigid|<scm|(concat "")>>), this practice is
|
||||
not generally recommended, and may lead to severe bugs.
|
||||
|
||||
|
@ -167,7 +167,7 @@
|
|||
Each of the macros <scm|tree-assign!>, <scm|tree-insert!>, <abbr|etc.>
|
||||
has a functional counterpart <verbatim|<scm|tree-assign>>,
|
||||
<verbatim|<scm|tree-insert>>, etc. The first parameter of these
|
||||
counterparts can be an arbitrary ``l-<no-break>value'' and does not have
|
||||
counterparts can be an arbitrary \Pl-<no-break>value\Q and does not have
|
||||
to be a scheme variable. However, in the case when a <scheme> variable is
|
||||
passed as the first parameter, these variants do not necessarily update
|
||||
its contents with the return value.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.15>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|The <TeXmacs> editing model>
|
||||
|
@ -73,7 +73,7 @@
|
|||
its location. Of course, the location of <scm|t> may be lost when <scm|t>
|
||||
or one of its parents is modified. Nevertheless, the modification routines
|
||||
are designed in such a way that we try hard to remember locations. For
|
||||
instance, if ``<math|a<rsub|0>+>'' is inserted in front of the formula
|
||||
instance, if \P<math|a<rsub|0>+>\Q is inserted in front of the formula
|
||||
(<reference|example-edit-formula>) using the routine <scm|tree-insert!>,
|
||||
then <scm|t> keeps its value <em|and> its location, even though one of its
|
||||
ancestors was altered.
|
||||
|
@ -109,7 +109,7 @@
|
|||
|
||||
It should be noticed that paths do not necessarily correspond to <em|valid>
|
||||
subtrees or cursor positions. Clearly, some of the elements in the path may
|
||||
be ``out of range''. However, certain <em|a priori> possible cursor
|
||||
be \Pout of range\Q. However, certain <em|a priori> possible cursor
|
||||
positions may correspond to invisible parts of the document (like a cursor
|
||||
position inside a folded argument or an attribute of <markup|with>).
|
||||
Moreover, two possible cursor positions may actually coincide, like the
|
||||
|
@ -130,9 +130,9 @@
|
|||
using object of type <verbatim|tree>, <abbr|i.e.> by considering the
|
||||
subtrees themselves. The persistent analogue of a cursor path is a
|
||||
<em|persistent position>, which corresponds to an object of <scheme> type
|
||||
<verbatim|position>. One particularity of persitent positions is that, even
|
||||
when a tree into which they point is removed, they keep indicating a valid
|
||||
close position in the remaining document. For instance, assume that
|
||||
<verbatim|position>. One particularity of persistent positions is that,
|
||||
even when a tree into which they point is removed, they keep indicating a
|
||||
valid close position in the remaining document. For instance, assume that
|
||||
<scm|pos> stands for the cursor position <scm|(1 0 1)> in the
|
||||
expression<nbsp>(<reference|example-edit-formula>). If we remove
|
||||
<math|a<rsub|1>+\<cdots\>+>, then the tree corresponding to the remaining
|
||||
|
@ -169,7 +169,7 @@
|
|||
(select t '(:up :next))
|
||||
</scm-code>
|
||||
|
||||
returns the list with one element ``<math|+\<cdots\>+a>''. The routine
|
||||
returns the list with one element \P<math|+\<cdots\>+a>\Q. The routine
|
||||
<scm|select> is implicitly called by many routines which operate on trees.
|
||||
For instance, with <scm|t> as above,
|
||||
|
||||
|
@ -177,9 +177,9 @@
|
|||
(tree-ref t :up :next)
|
||||
</scm-code>
|
||||
|
||||
directly returns the tree ``<math|+\<cdots\>+a>''.
|
||||
directly returns the tree \P<math|+\<cdots\>+a>\Q.
|
||||
|
||||
Besides simpler access to subtrees of a tree or other ``close trees'',
|
||||
Besides simpler access to subtrees of a tree or other \Pclose trees\Q,
|
||||
<TeXmacs> also provides several other useful mechanisms for writing editing
|
||||
routines. For instance, the routine <scm|tree-innermost> and the macro
|
||||
<scm|with-innermost> may be used to retrieve the innermost supertree of a
|
||||
|
@ -213,9 +213,9 @@
|
|||
whenever no innermost fraction is found.
|
||||
|
||||
The above implementation has the disadvantage that we loose the current
|
||||
cursor position inside the numerator or denominator (whereever we were).
|
||||
The following refined implementation allows us to remain at the ``same
|
||||
position'' modulo the exchange numerator/denominator:
|
||||
cursor position inside the numerator or denominator (wherever we were). The
|
||||
following refined implementation allows us to remain at the \Psame
|
||||
position\Q modulo the exchange numerator/denominator:
|
||||
|
||||
<\scm-code>
|
||||
(define (swap-numerator-denominator)
|
||||
|
@ -306,4 +306,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.6.10>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Low level graphics manipulation>
|
||||
|
@ -115,7 +115,7 @@
|
|||
<scm|(enhanced-tree-properties-set! <scm-arg|t>
|
||||
<scm-arg|l>)><explain-synopsis|set properties>
|
||||
<|explain>
|
||||
Given an enhanced tree <scm-arg|t>, overide its properties with the
|
||||
Given an enhanced tree <scm-arg|t>, override its properties with the
|
||||
elements in the association list <scm-arg|l>.
|
||||
</explain>
|
||||
|
||||
|
@ -162,7 +162,7 @@
|
|||
<scm|(sketch-set <scm-arg|t>)><explain-synopsis|set sketch tree>
|
||||
<|explain>
|
||||
Assign the sketch which a tree <scm-arg|t> which is part of the document
|
||||
(and maintain the correspondance between <scm-arg|t> and the sketch).
|
||||
(and maintain the correspondence between <scm-arg|t> and the sketch).
|
||||
This routine is typically called when editing an enhanced shape.
|
||||
</explain>
|
||||
|
||||
|
@ -179,7 +179,7 @@
|
|||
<|explain>
|
||||
When the sketch is an enhanced group, this routine toggles whether a tree
|
||||
t in the document belongs to the group (and we maintain the
|
||||
correspondance between t and the corresponding subtree in the sketch).
|
||||
correspondence between t and the corresponding subtree in the sketch).
|
||||
This routine is typically called when selecting a group of objects.
|
||||
</explain>
|
||||
|
||||
|
@ -204,13 +204,13 @@
|
|||
state of the document before the call of sketch-checkout.
|
||||
</explain>
|
||||
|
||||
<paragraph*|Misscelaneous>
|
||||
<paragraph*|Miscellaneous>
|
||||
|
||||
<\explain>
|
||||
<scm|(sketch-controls-set <scm-arg|l>)><explain-synopsis|set controls>
|
||||
<|explain>
|
||||
Assign a list of markup objects with control ornaments to the current
|
||||
sketch. The ornaments are rendered on top of the sketch as a visial aid
|
||||
sketch. The ornaments are rendered on top of the sketch as a visual aid
|
||||
for the user. Typically, when editing a polyline, <scm-arg|l> consists of
|
||||
a list of control points.
|
||||
</explain>
|
||||
|
@ -223,4 +223,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,29 +1,29 @@
|
|||
<TeXmacs|1.0.6.10>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Graphics interface between C++ and <value|scheme>>
|
||||
<tmdoc-title|Graphics interface between C++ and <scheme>>
|
||||
|
||||
<paragraph*|Rationale>
|
||||
|
||||
<TeXmacs> both implements a low-level part of the graphics in C++ and the
|
||||
high-level user interface in <value|scheme>. This API describes how both
|
||||
parts interact.
|
||||
high-level user interface in <scheme>. This API describes how both parts
|
||||
interact.
|
||||
|
||||
The low-level C++ mainly takes care of transforming the graphical markup in
|
||||
a typesetted box. It also provides routines for translating between
|
||||
physical coordinates (relative to the window) into logical coordinates (the
|
||||
local coordinate system of the graphics) and routines for interacting with
|
||||
the typesetted boxes (finding the closest objects to a given point or
|
||||
region or projecting a point on a grid).
|
||||
a typeset box. It also provides routines for translating between physical
|
||||
coordinates (relative to the window) into logical coordinates (the local
|
||||
coordinate system of the graphics) and routines for interacting with the
|
||||
typeset boxes (finding the closest objects to a given point or region or
|
||||
projecting a point on a grid).
|
||||
|
||||
<paragraph*|Definitions>
|
||||
|
||||
<\description>
|
||||
<item*|Editor coordinates>The coordinates of the outermost typesetted
|
||||
box. Mouse events are typically passed in these coordinates. The
|
||||
corresponding data type is <verbatim|SI>.
|
||||
<item*|Editor coordinates>The coordinates of the outermost typeset box.
|
||||
Mouse events are typically passed in these coordinates. The corresponding
|
||||
data type is <verbatim|SI>.
|
||||
|
||||
<item*|Graphics coordinates>The coordinates of the innermost graphics
|
||||
corresponding to the current cursor position.
|
||||
|
@ -40,7 +40,7 @@
|
|||
graphics coordinates, <scm-arg|distance> its distance to the point which
|
||||
was projected on the grid (see <verbatim|grid-project> below) and
|
||||
<scm-arg|type> the type of grid point with a potential origin. For
|
||||
instance, <scm-arg|type> can be <verbatim|plain> or someting like
|
||||
instance, <scm-arg|type> can be <verbatim|plain> or something like
|
||||
<verbatim|(control t)> for a control point corresponding to the tree
|
||||
<scm|t> in the document.
|
||||
</description>
|
||||
|
@ -132,4 +132,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.17>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Containers, glue, refresh and co.>
|
||||
|
@ -98,7 +98,7 @@
|
|||
<scm|centered>, the effect is achieved by means of several widgets into
|
||||
which this macro expands. These are actually the same as in the example
|
||||
there, but the <scm|glue> widgets are all fixed (i.e. have all their
|
||||
expansion paramenters set to <scm|#f>).
|
||||
expansion parameters set to <scm|#f>).
|
||||
</explain>
|
||||
|
||||
<subsection|Container or layout widgets>
|
||||
|
@ -106,8 +106,9 @@
|
|||
You can arrange widgets horizontally or vertically, or in two column mode
|
||||
as in forms. When running the QT version the latter will default to the OS
|
||||
standard for arranging labels and their associated input widgets in
|
||||
dialogs. Other possibilites are splitters and tabbed widgets. A very useful
|
||||
macro is <scm|dynamic>, which allows you to embed one widget into another.
|
||||
dialogs. Other possibilities are splitters and tabbed widgets. A very
|
||||
useful macro is <scm|dynamic>, which allows you to embed one widget into
|
||||
another.
|
||||
|
||||
<\explain>
|
||||
<scm|(aligned <scm-arg|items-list>)><explain-synopsis|arranges items in a
|
||||
|
@ -153,7 +154,7 @@
|
|||
|
||||
<subsection|Glue widgets>
|
||||
|
||||
Besides laying out widgets in containers, you will often want to specifiy
|
||||
Besides laying out widgets in containers, you will often want to specify
|
||||
how they eat up space around them when the user resizes the window. By
|
||||
default (most?) widgets take up as much space as they can (i.e. they always
|
||||
expand) unless you used <scm|resize> with them or they can have their size
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.21>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Dialogs and composite widgets>
|
||||
|
@ -18,7 +18,7 @@
|
|||
<scm|dynamic>: it allows you to embed one widget into another.
|
||||
|
||||
Let's see how you create a dialog. To get started here is one little
|
||||
example taken from <hlink|menu-test.scm|$TEXMACS_PATH/progs/kernel/gui/menu-test.scm>:
|
||||
example taken from <hlink|<verbatim|menu-test.scm>|$TEXMACS_PATH/progs/kernel/gui/menu-test.scm>:
|
||||
|
||||
<\session|scheme|default>
|
||||
<\unfolded-io|Scheme] >
|
||||
|
@ -103,7 +103,7 @@
|
|||
|
||||
If you want to add the usual buttons you use <scm|bottom-buttons> like in
|
||||
the following example. Notice that the widget now accepts one parameter
|
||||
<scm|cmd> which will be called when the user clicks the ``Ok'' button.
|
||||
<scm|cmd> which will be called when the user clicks the \POk\Q button.
|
||||
|
||||
<\session|scheme|default>
|
||||
<\unfolded-io|Scheme] >
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<TeXmacs|1.0.7.16>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Forms>
|
||||
|
||||
As explained in ``<hlink|Dialogs and composite
|
||||
widgets|scheme-gui-dialogs.en.tm>'' the available widgets can be used to
|
||||
As explained in \P<hlink|Dialogs and composite
|
||||
widgets|scheme-gui-dialogs.en.tm>\Q the available widgets can be used to
|
||||
compose dialog windows which perform one simple task. But sometimes one
|
||||
needs to read complex input from the user and forms provide one mechanism
|
||||
to do this. They allow you to define multiple named fields of several
|
||||
|
@ -80,7 +80,7 @@
|
|||
</session>
|
||||
|
||||
A complete list of the widgets you can embed in a form is in the table
|
||||
<scm|gui-make-table> inside <hlink|menu-define.scm|$TEXMACS_PATH/progs/kernel/gui/menu-define.scm>.
|
||||
<scm|gui-make-table> inside <hlink|<verbatim|menu-define.scm>|$TEXMACS_PATH/progs/kernel/gui/menu-define.scm>.
|
||||
|
||||
<tmdoc-copyright|2012|the <TeXmacs> team.>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.21>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|An introduction to widgets>
|
||||
|
@ -29,7 +29,7 @@
|
|||
examples in the other subsections of "<hlink|Extending the graphical user
|
||||
interface|scheme-gui.en.tm>". If you'd rather see the sources, the whole
|
||||
list of keywords is in the table <scm|gui-make-table> inside
|
||||
<hlink|menu-define.scm|$TEXMACS_PATH/progs/kernel/gui/menu-define.scm>.
|
||||
<hlink|<verbatim|menu-define.scm>|$TEXMACS_PATH/progs/kernel/gui/menu-define.scm>.
|
||||
|
||||
To create a widget, you'll first need to use <scm|tm-widget> to define a
|
||||
new one. The call to this function uses its particular syntax, with many
|
||||
|
@ -37,7 +37,7 @@
|
|||
labels.\
|
||||
|
||||
Execute the following two lines to get the unavoidable example and leave
|
||||
your mouse over the ``Hello'' button.
|
||||
your mouse over the \PHello\Q button.
|
||||
|
||||
<\session|scheme|default>
|
||||
<\input|Scheme] >
|
||||
|
@ -150,9 +150,9 @@
|
|||
</input>
|
||||
</session>
|
||||
|
||||
From here you can go on reading ``<hlink|Extending the graphical user
|
||||
interface|scheme-gui.en.tm>'' or see the sample widgets in
|
||||
<hlink|menu-test.scm|$TEXMACS_PATH/progs/kernel/gui/menu-test.scm>.
|
||||
From here you can go on reading \P<hlink|Extending the graphical user
|
||||
interface|scheme-gui.en.tm>\Q or see the sample widgets in
|
||||
<hlink|<verbatim|menu-test.scm>|$TEXMACS_PATH/progs/kernel/gui/menu-test.scm>.
|
||||
|
||||
<tmdoc-copyright|2012|the <TeXmacs> team.>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.1>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Displaying lists and trees>
|
||||
|
@ -214,8 +214,8 @@
|
|||
format with e.g. <scm|tree-\<gtr\>stree>)
|
||||
|
||||
<paragraph|Examples>See <scm|widget10> in
|
||||
<hlink|menu-test.scm|$TEXMACS_PATH/progs/kernel/gui/menu-test.scm> and
|
||||
``<hlink|Displaying lists and trees|$TEXMACS_PATH/doc/devel/scheme/gui/scheme-gui-lists-trees.scm>''.
|
||||
<hlink|<verbatim|menu-test.scm>|$TEXMACS_PATH/progs/kernel/gui/menu-test.scm>
|
||||
and ``<hlink|Displaying lists and trees|$TEXMACS_PATH/doc/devel/scheme/gui/scheme-gui-lists-trees.scm>''.
|
||||
</explain>
|
||||
|
||||
<paragraph|An example using data roles>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.21>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Extending the graphical user interface>
|
||||
|
@ -12,10 +12,10 @@
|
|||
|
||||
Imagine you want to implement some feature which requires interaction with
|
||||
the user. One possible approach is to use the facility <scm|interactive>,
|
||||
which according to the user's preferences will either popoup a dialog or
|
||||
ask in the footer bar, based in metadata you provide inside your
|
||||
<scm|tm-define>'d function. See ``<hlink|Meta information and logical
|
||||
programming|../overview/overview-meta.en.tm>'' for more on this topic.
|
||||
which according to the user's preferences will either popup a dialog or ask
|
||||
in the footer bar, based in metadata you provide inside your
|
||||
<scm|tm-define>'d function. See \P<hlink|Meta information and logical
|
||||
programming|../overview/overview-meta.en.tm>\Q for more on this topic.
|
||||
However, automatically generated content is not always the best approach,
|
||||
so you might want to explicitly design your interface placing it inside a
|
||||
complicated dialog. The following sections should help you with this.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.4>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|The module system and lazy definitions>
|
||||
|
@ -47,7 +47,7 @@
|
|||
Because the number of <TeXmacs> modules and plug-ins keeps on growing, it
|
||||
is inefficient to load all modules when booting. Instead, initialization
|
||||
files are assumed to declare the provided functionality in a <em|lazy> way:
|
||||
whenever the functionality is explictly needed, <TeXmacs> is triggered to
|
||||
whenever the functionality is explicitly needed, <TeXmacs> is triggered to
|
||||
load the corresponding modules (if this was not already done). In addition,
|
||||
<TeXmacs> may load some of these modules during spare time, when the
|
||||
computer is waiting for user input. Indeed, this helps increasing the
|
||||
|
@ -84,7 +84,7 @@
|
|||
to force a particular module to be loaded. Similarly, the commands
|
||||
<scm|lazy-keyboard-force>, <scm|lazy-plugin-force>, <abbr|etc.> may be used
|
||||
to force all lazy keyboard definitions <abbr|resp.> plug-ins to be loaded.
|
||||
In other words, the use of lazyness forces to make implicit dependencies
|
||||
In other words, the use of laziness forces to make implicit dependencies
|
||||
between modules more explicit.
|
||||
|
||||
In the case when you want to redefine keyboard shortcuts, the
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<TeXmacs|1.0.7.16>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Meta information and logical programming>
|
||||
|
||||
Small software projects usually consist of a collection of routines and
|
||||
data. In a large software project, where a typical contributor has no
|
||||
complete overview of the program, it is a good practive to associate
|
||||
complete overview of the program, it is a good practice to associate
|
||||
additional <em|meta-information> to the individual routines and data. This
|
||||
meta-information typically serves documentation purposes, but becomes even
|
||||
more interesting if it can be used in an automated fashion to implement
|
||||
|
@ -36,9 +36,9 @@
|
|||
square)>. More interestingly, assuming that we defined <scm|square> as
|
||||
above, typing <shortcut|(interactive exec-interactive-command)> followed by
|
||||
<scm|square> and <shortcut|(kbd-return)> allows you to execute <scm|square>
|
||||
in an interactive way: you will be prompted for ``A number'' on the footer.
|
||||
in an interactive way: you will be prompted for \PA number\Q on the footer.
|
||||
Moreover, after typing <shortcut|(interactive exec-interactive-command)>,
|
||||
you will be able to use ``tab-completion'' in order to enter <scm|square>:
|
||||
you will be able to use \Ptab-completion\Q in order to enter <scm|square>:
|
||||
typing <key|s q u tab> will usually complete into<nbsp><scm|square>.
|
||||
|
||||
In a similar vein, the <scm|:interactive> and <scm|:check-mark> options
|
||||
|
@ -53,7 +53,7 @@
|
|||
</scm-code>
|
||||
|
||||
in the source code of <TeXmacs> states that <scm|choose-file> is an
|
||||
interactive command. As a consquence, the <menu|File|Load> entry, which is
|
||||
interactive command. As a consequence, the <menu|File|Load> entry, which is
|
||||
defined by
|
||||
|
||||
<\scm-code>
|
||||
|
@ -82,10 +82,9 @@
|
|||
given routine can be used inside <TeXmacs> documents, in particular inside
|
||||
<markup|extern> and <markup|action> macros. For instance, the default
|
||||
implementation of the <markup|fold> tag allows the user to click on the
|
||||
``<math|<op|\<circ\>>>'' before the folded text so as to unfold the tag.
|
||||
When doing this, the scheme script <scm|mouse-unfold> is launched.
|
||||
However, for this to work, the <scm|mouse-unfold> function needs to be
|
||||
secure:
|
||||
\P<math|<op|\<circ\>>>\Q before the folded text so as to unfold the tag.
|
||||
When doing this, the scheme script <scm|mouse-unfold> is launched. However,
|
||||
for this to work, the <scm|mouse-unfold> function needs to be secure:
|
||||
|
||||
<\scm-code>
|
||||
(tm-define mouse-unfold
|
||||
|
@ -100,8 +99,8 @@
|
|||
</scm-code>
|
||||
|
||||
You can read more about the tags which depend on <scheme> scripts in
|
||||
``<hlink|Invoking <scheme> scripts from <TeXmacs>
|
||||
markup|overview-start.en.tm#markup-scripts>''.\
|
||||
\P<hlink|Invoking <scheme> scripts from <TeXmacs>
|
||||
markup|overview-start.en.tm#markup-scripts>\Q.\
|
||||
|
||||
In the future, the number of options for entering meta-information is
|
||||
likely to increase. <TeXmacs> also supports an additional mechanism for the
|
||||
|
@ -118,4 +117,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.17>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Contextual overloading>
|
||||
|
@ -23,7 +23,7 @@
|
|||
<scm|kbd-enter> several times in distinct modules.
|
||||
|
||||
For instance, assume that we want to define a function <scm|hello> which
|
||||
inserts ``Hello'' by default, but ``<math|hello<around|(||)>>'' in mode
|
||||
inserts \PHello\Q by default, but \P<math|hello<around|(||)>>\Q in mode
|
||||
math, while positioning the cursor between the brackets. Using contextual
|
||||
overloading, this may be done as follows:
|
||||
|
||||
|
@ -79,7 +79,7 @@
|
|||
Besides <scm|tm-define>, several other added language primitives support
|
||||
the contextual overloading mechanism. For instance, <scm|kbd-map> and
|
||||
<scm|menu-bind> support overloading on mode. The <scm|tm-define-macro> and
|
||||
<scm|tm-property> primitives are analoguous to <scm|tm-define>.
|
||||
<scm|tm-property> primitives are analogous to <scm|tm-define>.
|
||||
|
||||
<tmdoc-copyright|2005|Joris van der Hoeven>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.14>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Standard utilities>
|
||||
|
@ -15,7 +15,7 @@
|
|||
<paragraph*|Regular expressions>
|
||||
|
||||
<TeXmacs> implements the routines <scm|match?> and <scm|select> for
|
||||
matching regular expressions and selecting subexpressions along a ``path''.
|
||||
matching regular expressions and selecting subexpressions along a \Ppath\Q.
|
||||
These routines both work for the <verbatim|content> type. For instance, in
|
||||
order to search all expressions of the form
|
||||
|
||||
|
@ -90,7 +90,7 @@
|
|||
converted from or into <TeXmacs>, then it will automatically appear into
|
||||
the <menu|File|Export> and <menu|File|Import> menus. Similarly, when a
|
||||
format can be converted to <name|Postscript>, then it also becomes a valid
|
||||
format for images. <TeXmacs> also attempts to combine explictly declared
|
||||
format for images. <TeXmacs> also attempts to combine explicitly declared
|
||||
converters into new ones.
|
||||
|
||||
Typically, the declaration of a new format and a converter would look like:
|
||||
|
@ -119,4 +119,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.1>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Function definition and contextual overloading>
|
||||
|
@ -156,7 +156,7 @@
|
|||
<scm|(:synopsis <scm-arg|short-help>)><explain-synopsis|short
|
||||
description>
|
||||
<|explain>
|
||||
This option gives a short discription of the function or macro, in the
|
||||
This option gives a short description of the function or macro, in the
|
||||
form of a string <scm-arg|short-help>. As a convention, <scheme>
|
||||
expressions may be encoded inside this string by using the
|
||||
<verbatim|@>-prefix. For instance:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.19>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|The boxes produced by the typesetter>
|
||||
|
@ -36,7 +36,7 @@
|
|||
|
||||
In order to position the cursor or when making a selection, it is necessary
|
||||
to have a correspondence between logical positions in the source tree and
|
||||
physical positions in the typesetted boxes. More precisely, boxes and their
|
||||
physical positions in the typeset boxes. More precisely, boxes and their
|
||||
subboxes are logically organized as a tree. Boxes provide routines to
|
||||
translate between paths in the box tree and the source tree and to find the
|
||||
path which is associated to a graphical point.
|
||||
|
@ -55,7 +55,7 @@
|
|||
<item>The correspondence has to be reasonably time and space efficient.
|
||||
|
||||
<item>Some boxes, such header and footers, or certain results of macro
|
||||
expansions, may not be ``accessible''. Although one should be able to
|
||||
expansions, may not be \Paccessible\Q. Although one should be able to
|
||||
find a reasonable cursor position when clicking on them, the contents of
|
||||
this box can not be edited directly.
|
||||
|
||||
|
@ -92,8 +92,8 @@
|
|||
tails), with an optional negative head. A negative head indicates that
|
||||
the tree path is not accessible, i.e. the corresponding subtree does not
|
||||
correspond to editable content. If the negative value is <math|-2>,
|
||||
<math|-3> or <math|-4>, then a zero or one has to be put behind the tree
|
||||
path, depending on the value and the cursor position.
|
||||
<math|-3> or <hgroup|<math|-4>>, then a zero or one has to be put behind
|
||||
the tree path, depending on the value and the cursor position.
|
||||
|
||||
<item*|Box paths>These paths correspond to logical paths in the box tree.
|
||||
Again, the path minus its last item points to a subbox of the main box,
|
||||
|
@ -101,7 +101,7 @@
|
|||
corresponds to a text box it is a position in this text. Otherwise a zero
|
||||
indicates a position before the subbox and a one a position after it. In
|
||||
the case of side boxes, a two and a three may also indicate the position
|
||||
after the left script resp. before the right script.
|
||||
after the left script <abbr|resp.> before the right script.
|
||||
</description>
|
||||
|
||||
<subsection|The conversion routines>
|
||||
|
@ -109,8 +109,9 @@
|
|||
In order to implement the conversion between the three kinds of paths,
|
||||
every box comes with a reference inverse path <verbatim|ip> in the source
|
||||
tree. Composite boxes also come with a left and a right inverse path
|
||||
<verbatim|lip> resp. <verbatim|rip>, which correspond to the left-most and
|
||||
right-most accessible paths in its subboxes (if there are such subboxes).
|
||||
<verbatim|lip> <abbr|resp.> <verbatim|rip>, which correspond to the
|
||||
left-most and right-most accessible paths in its subboxes (if there are
|
||||
such subboxes).
|
||||
|
||||
The routine:
|
||||
|
||||
|
@ -136,10 +137,10 @@
|
|||
|
||||
<section|The cursor and selections>
|
||||
|
||||
In order to fulfill the requirement of being a ``structured editor'',
|
||||
In order to fulfill the requirement of being a \Pstructured editor\Q,
|
||||
<TeXmacs> needs to provide a (reasonably) complete correspondence between
|
||||
logical tree paths and physical cursor positions. This yields an additional
|
||||
difficulty in the case of ``environment changes'', such as a change in font
|
||||
difficulty in the case of \Penvironment changes\Q, such as a change in font
|
||||
or color. Indeed, when you are on the border of such a change, it is not
|
||||
clear <with|font-shape|italic|a priori> which environment you are in.
|
||||
|
||||
|
@ -188,8 +189,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,63 +1,62 @@
|
|||
<TeXmacs|1.0.0.17>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<expand|tmdoc-title|Converters to other data formats>
|
||||
<tmdoc-title|Converters to other data formats>
|
||||
|
||||
Currently, we have implemented imperfect converters between <apply|TeXmacs>
|
||||
and <apply|LaTeX> and from html to <apply|TeXmacs>. We hope that someone
|
||||
else will be willing to write better converters from scratch. This chapter
|
||||
has been included in order to give some recommendations in that direction
|
||||
based on our experience from the implementation of the actual conversion
|
||||
programs. We also recommend to take a look at the current implementations
|
||||
in the directory <verbatim|Convert>.
|
||||
Currently, we have implemented imperfect converters between <TeXmacs> and
|
||||
<LaTeX> and from html to <TeXmacs>. We hope that someone else will be
|
||||
willing to write better converters from scratch. This chapter has been
|
||||
included in order to give some recommendations in that direction based on
|
||||
our experience from the implementation of the actual conversion programs.
|
||||
We also recommend to take a look at the current implementations in the
|
||||
directory <verbatim|Convert>.
|
||||
|
||||
<section|Parsing extern data formats>
|
||||
|
||||
In order to write a converter from <apply|LaTeX> html, xml, etc. to
|
||||
<apply|TeXmacs>, a good first step is to write a parser for the extern data
|
||||
format. For html, xml, etc. this should be rather easy, but for
|
||||
<apply|LaTeX>, you will probably need to be a real <apply|LaTeX> guru
|
||||
(which I am not). We recommend the result of the parsing step to be a
|
||||
<apply|scheme> expression (something which is regrettable not the case for
|
||||
our actual converters), because this language is very well adapted for the
|
||||
implementation of the actual converter.
|
||||
In order to write a converter from <LaTeX> html, xml, etc. to <TeXmacs>, a
|
||||
good first step is to write a parser for the extern data format. For html,
|
||||
xml, etc. this should be rather easy, but for <LaTeX>, you will probably
|
||||
need to be a real <LaTeX> guru (which I am not). We recommend the result of
|
||||
the parsing step to be a <scheme> expression (something which is
|
||||
regrettable not the case for our actual converters), because this language
|
||||
is very well adapted for the implementation of the actual converter.
|
||||
|
||||
This first step should be able to process any correct file having the
|
||||
extern data format; possible incompatibilities should only come into play
|
||||
during the actual conversion. In the case of <apply|LaTeX>, one should not
|
||||
expand the macros and keep all macro definitions, because <apply|TeXmacs>
|
||||
will be able to take advantage out of this.
|
||||
during the actual conversion. In the case of <LaTeX>, one should not expand
|
||||
the macros and keep all macro definitions, because <TeXmacs> will be able
|
||||
to take advantage out of this.
|
||||
|
||||
<section|The actual converter>
|
||||
|
||||
We recommend the actual converter to proceed in several steps. Often it is
|
||||
convenient to start with a rough, structural, conversion step, which is
|
||||
``polished'' by a certain number of additional steps. These additional
|
||||
\Ppolished\Q by a certain number of additional steps. These additional
|
||||
steps may take care of some very particular layout issues which can not be
|
||||
treated conveniently at the main step.
|
||||
|
||||
Actually, the main difficulties usually come from exceptional text, like
|
||||
verbatim, and layout issues which are handled differently in the extern
|
||||
data format and <apply|TeXmacs>. A good example of such a difference
|
||||
between <apply|LaTeX> and <apply|TeXmacs> is the way equations or lists are
|
||||
handled. Consider for instance the following paragraph:
|
||||
data format and <TeXmacs>. A good example of such a difference between
|
||||
<LaTeX> and <TeXmacs> is the way equations or lists are handled. Consider
|
||||
for instance the following paragraph:
|
||||
|
||||
Text before.
|
||||
|
||||
<\expand|equation*>
|
||||
<\equation*>
|
||||
a<rsup|2>+b<rsup|2>=c<rsup|2>.
|
||||
</expand>
|
||||
</equation*>
|
||||
|
||||
Text after.
|
||||
|
||||
In <apply|LaTeX>, the equation is really seen as a part of the paragraph.
|
||||
Indeed, there will not be any blank line between ``Text before'' and the
|
||||
equation. However, for efficiency reasons, it is better to see the
|
||||
paragraph as three paragraphs in <apply|TeXmacs>, because the lines can be
|
||||
typesetted independently. Nevertheless, the equation environment will
|
||||
disable the indentation of ``Text after''.
|
||||
In <LaTeX>, the equation is really seen as a part of the paragraph. Indeed,
|
||||
there will not be any blank line between \PText before\Q and the equation.
|
||||
However, for efficiency reasons, it is better to see the paragraph as three
|
||||
paragraphs in <TeXmacs>, because the lines can be typeset independently.
|
||||
Nevertheless, the equation environment will disable the indentation of
|
||||
\PText after\Q.
|
||||
|
||||
As a result of this anomaly, converted texts have to be postprocessed, so
|
||||
as to insert paragraph breaks at strategic places. It should be noticed
|
||||
|
@ -65,57 +64,31 @@
|
|||
converted and that a similar reverse step may be implemented for backward
|
||||
conversions. We also notice that one needs an exhaustive list of all
|
||||
similar exceptional environments for this postprocessing step. Actually, a
|
||||
future version of <apply|TeXmacs> might come with an additional feature,
|
||||
which permits the automatic detection of such environments. This is also
|
||||
future version of <TeXmacs> might come with an additional feature, which
|
||||
permits the automatic detection of such environments. This is also
|
||||
important from a semantical point of view, because one should be able to
|
||||
detect that the above example logically forms only one and not three
|
||||
paragraphs.
|
||||
|
||||
<section|Backward conversions>
|
||||
|
||||
Conversions from <apply|TeXmacs> to an extern data format are usually
|
||||
easier to implement, because the <apply|TeXmacs> data format is
|
||||
semantically rich. However, conversions to an extern data format without a
|
||||
<apply|TeX>-like macro facility give rise to the problem of macro expansion
|
||||
of non supported <apply|TeXmacs> functions or environments. We plan to
|
||||
write a facility for this, which you will be able to use when writing a
|
||||
converter from <apply|TeXmacs> to something else.
|
||||
Conversions from <TeXmacs> to an extern data format are usually easier to
|
||||
implement, because the <TeXmacs> data format is semantically rich. However,
|
||||
conversions to an extern data format without a <TeX>-like macro facility
|
||||
give rise to the problem of macro expansion of non supported <TeXmacs>
|
||||
functions or environments. We plan to write a facility for this, which you
|
||||
will be able to use when writing a converter from <TeXmacs> to something
|
||||
else.
|
||||
|
||||
<apply|tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
||||
<expand|tmdoc-license|Permission is granted to copy, distribute and/or
|
||||
modify this document under the terms of the GNU Free Documentation License,
|
||||
Version 1.1 or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the section entitled
|
||||
"GNU Free Documentation License".>
|
||||
<tmdoc-license|Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|paragraph width|150mm>
|
||||
<associate|odd page margin|30mm>
|
||||
<associate|shrinking factor|4>
|
||||
<associate|page right margin|30mm>
|
||||
<associate|page top margin|30mm>
|
||||
<associate|reduction page right margin|25mm>
|
||||
<associate|page type|a4>
|
||||
<associate|reduction page bottom margin|15mm>
|
||||
<associate|even page margin|30mm>
|
||||
<associate|reduction page left margin|25mm>
|
||||
<associate|page bottom margin|30mm>
|
||||
<associate|reduction page top margin|15mm>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
|
||||
<\references>
|
||||
<\collection>
|
||||
<associate|toc-1|<tuple|<uninit>|?>>
|
||||
<associate|idx-1|<tuple|<uninit>|?>>
|
||||
<associate|toc-2|<tuple|<uninit>|?>>
|
||||
<associate|idx-2|<tuple|<uninit>|?>>
|
||||
<associate|toc-3|<tuple|<uninit>|?>>
|
||||
<associate|toc-4|<tuple|<uninit>|?>>
|
||||
</collection>
|
||||
</references>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,15 +1,15 @@
|
|||
<TeXmacs|1.0.0.17>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<expand|tmdoc-title|<TeXmacs> fonts>
|
||||
<tmdoc-title|<TeXmacs> fonts>
|
||||
|
||||
<section|Classical conceptions of fonts>
|
||||
|
||||
The way <apply|TeXmacs> handles fonts is quite different from classical
|
||||
text editors and even from <apply|TeX>. Let us first analyze some classical
|
||||
ways of conceiving fonts.
|
||||
The way <TeXmacs> handles fonts is quite different from classical text
|
||||
editors and even from <TeX>. Let us first analyze some classical ways of
|
||||
conceiving fonts.
|
||||
|
||||
<\itemize>
|
||||
<item>Physical fonts are just given by the name of a file, which contains
|
||||
|
@ -25,15 +25,15 @@
|
|||
applications to select an appropriate font. However, character sets are
|
||||
still limited in size.
|
||||
|
||||
<item>In <apply|TeX>, symbols are seen as commands, which select an
|
||||
appropriate physical font (which corresponds to a <verbatim|.tfm> and a
|
||||
<item>In <TeX>, symbols are seen as commands, which select an appropriate
|
||||
physical font (which corresponds to a <verbatim|.tfm> and a
|
||||
<verbatim|.pk> file), based on symbol font declarations and environment
|
||||
variables (such as size, series and shape).
|
||||
</itemize>
|
||||
|
||||
Clearly, among all these methods, <apply|TeX> provides the largest
|
||||
flexibility. However, philosophically speaking, we think that it also has
|
||||
some drawbacks:
|
||||
Clearly, among all these methods, <TeX> provides the largest flexibility.
|
||||
However, philosophically speaking, we think that it also has some
|
||||
drawbacks:
|
||||
|
||||
<\itemize>
|
||||
<item>There is no distinction between usual commands and commands to make
|
||||
|
@ -46,9 +46,8 @@
|
|||
<item>For beginners, it remains extremely hard to use non standard fonts.
|
||||
</itemize>
|
||||
|
||||
Actually, in <apply|TeX>, the notion of ``the current font'' is
|
||||
ill-defined: it is merely the superposition of all character generating
|
||||
commands.
|
||||
Actually, in <TeX>, the notion of \Pthe current font\Q is ill-defined: it
|
||||
is merely the superposition of all character generating commands.
|
||||
|
||||
<section|The conception of a font in TeXmacs>
|
||||
|
||||
|
@ -56,8 +55,9 @@
|
|||
the following two essential properties:
|
||||
|
||||
<\enumerate>
|
||||
<item>A font associates graphical meanings to <with|font
|
||||
shape|italic|words>. The words can always be represented by strings.
|
||||
<item>A font associates graphical meanings to
|
||||
<with|font-shape|italic|words>. The words can always be represented by
|
||||
strings.
|
||||
|
||||
<item>The way this association takes place is coherent as a function of
|
||||
the word.
|
||||
|
@ -71,29 +71,29 @@
|
|||
<\enumerate>
|
||||
<item>A font may take care of kerning and ligatures.
|
||||
|
||||
<item>A font may consist of several ``physical fonts'', which are somehow
|
||||
<item>A font may consist of several \Pphysical fonts\Q, which are somehow
|
||||
merged together.
|
||||
|
||||
<item>A font might in principle automatically build very complicated
|
||||
glyphs like hieroglyphs or large delimiters from words in a well chosen
|
||||
encoding.
|
||||
|
||||
<item>A font is an irreductable and persistent entity, not a bunch of
|
||||
commands whose actions may depend on some environement.
|
||||
<item>A font is an irreducible and persistent entity, not a bunch of
|
||||
commands whose actions may depend on some environment.
|
||||
</enumerate>
|
||||
|
||||
Notice finally that the ``graphical meaning'' of a word might be more than
|
||||
Notice finally that the \Pgraphical meaning\Q of a word might be more than
|
||||
just a bitmap: it might also contain some information about a logical
|
||||
bounding box, appropriate places for scripts, etc. Similarly, the
|
||||
``coherence of the association'' should be interpreted in its broadest
|
||||
\Pcoherence of the association\Q should be interpreted in its broadest
|
||||
sense: the font might contain additional information for the global
|
||||
typesetting of the words on a page, like the recommended distance between
|
||||
lines, the height of a fraction bar, etc.
|
||||
|
||||
<section|String encodings>
|
||||
|
||||
All text strings in <apply|TeXmacs> consist of sequences of either specific
|
||||
or universal symbols. A specific symbol is a character, different from
|
||||
All text strings in <TeXmacs> consist of sequences of either specific or
|
||||
universal symbols. A specific symbol is a character, different from
|
||||
<verbatim|'\\0'>, <verbatim|'\<less\>'> and <verbatim|'\<gtr\>'>. Its
|
||||
meaning may depend on the particular font which is being used. A universal
|
||||
symbol is a string starting with <verbatim|'\<less\>'>, followed by an
|
||||
|
@ -116,57 +116,54 @@
|
|||
The main abstract <verbatim|font> class is defined in <verbatim|font.hpp>:\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ struct font_rep: rep\<less\>font\<gtr\> {<format|next line>
|
||||
\ \ \ \ struct font_rep: rep\<less\>font\<gtr\> {<next-line>
|
||||
\ \ \ \ \ display \ dis; \ \ \ \ \ \ \ \ \ \ \ \ \ // underlying
|
||||
display<format|next line> \ \ \ \ \ encoding enc;
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ // underlying encoding of the font<format|next
|
||||
line> \ \ \ \ \ SI \ \ \ \ \ \ design_size; \ \ \ \ \ // design size in
|
||||
points/256<format|next line> \ \ \ \ \ SI \ \ \ \ \ \ display_size;
|
||||
\ \ \ \ // display size in points/PIXEL<format|next line>
|
||||
\ \ \ \ \ double \ \ slope; \ \ \ \ \ \ \ \ \ \ \ // italic
|
||||
slope<format|next line> \ \ \ \ \ space \ \ \ spc;
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ // usual space between words<format|next line>
|
||||
\ \ \ \ \ space \ \ \ extra; \ \ \ \ \ \ \ \ \ \ \ // extra space at end
|
||||
of words<format|next line><format|next line> \ \ \ \ \ SI \ \ \ \ \ \ y1;
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ // bottom y position<format|next line>
|
||||
\ \ \ \ \ SI \ \ \ \ \ \ y2; \ \ \ \ \ \ \ \ \ \ \ \ \ \ // top y
|
||||
position<format|next line> \ \ \ \ \ SI \ \ \ \ \ \ yfrac;
|
||||
\ \ \ \ \ \ \ \ \ \ \ // vertical position fraction bar<format|next line>
|
||||
\ \ \ \ \ SI \ \ \ \ \ \ ysub; \ \ \ \ \ \ \ \ \ \ \ \ // base line for
|
||||
subscripts<format|next line> \ \ \ \ \ SI \ \ \ \ \ \ ysup;
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ // base line for superscripts<format|next
|
||||
line><format|next line> \ \ \ \ \ SI \ \ \ \ \ \ wpt;
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ // width of one point in font<format|next line>
|
||||
display<next-line> \ \ \ \ \ encoding enc; \ \ \ \ \ \ \ \ \ \ \ \ \ //
|
||||
underlying encoding of the font<next-line> \ \ \ \ \ SI
|
||||
\ \ \ \ \ \ design_size; \ \ \ \ \ // design size in
|
||||
points/256<next-line> \ \ \ \ \ SI \ \ \ \ \ \ display_size; \ \ \ \ //
|
||||
display size in points/PIXEL<next-line> \ \ \ \ \ double \ \ slope;
|
||||
\ \ \ \ \ \ \ \ \ \ \ // italic slope<next-line> \ \ \ \ \ space
|
||||
\ \ \ spc; \ \ \ \ \ \ \ \ \ \ \ \ \ // usual space between
|
||||
words<next-line> \ \ \ \ \ space \ \ \ extra; \ \ \ \ \ \ \ \ \ \ \ //
|
||||
extra space at end of words<next-line><next-line> \ \ \ \ \ SI
|
||||
\ \ \ \ \ \ y1; \ \ \ \ \ \ \ \ \ \ \ \ \ \ // bottom y
|
||||
position<next-line> \ \ \ \ \ SI \ \ \ \ \ \ y2;
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ // top y position<next-line> \ \ \ \ \ SI
|
||||
\ \ \ \ \ \ yfrac; \ \ \ \ \ \ \ \ \ \ \ // vertical position fraction
|
||||
bar<next-line> \ \ \ \ \ SI \ \ \ \ \ \ ysub; \ \ \ \ \ \ \ \ \ \ \ \ //
|
||||
base line for subscripts<next-line> \ \ \ \ \ SI \ \ \ \ \ \ ysup;
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ // base line for
|
||||
superscripts<next-line><next-line> \ \ \ \ \ SI \ \ \ \ \ \ wpt;
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ // width of one point in font<next-line>
|
||||
\ \ \ \ \ SI \ \ \ \ \ \ wquad; \ \ \ \ \ \ \ \ \ \ \ // wpt * design
|
||||
size in points<format|next line> \ \ \ \ \ SI \ \ \ \ \ \ wunit;
|
||||
\ \ \ \ \ \ \ \ \ \ \ // unit width for extendable fonts<format|next
|
||||
line> \ \ \ \ \ SI \ \ \ \ \ \ wfrac; \ \ \ \ \ \ \ \ \ \ \ // width
|
||||
fraction bar<format|next line> \ \ \ \ \ SI \ \ \ \ \ \ wsqrt;
|
||||
\ \ \ \ \ \ \ \ \ \ \ // width horzontal line in square root<format|next
|
||||
line> \ \ \ \ \ SI \ \ \ \ \ \ wneg; \ \ \ \ \ \ \ \ \ \ \ \ // width of
|
||||
negation line<format|next line><format|next line> \ \ \ \ \ font_rep
|
||||
(display dis, string name);<format|next line> \ \ \ \ \ font_rep (display
|
||||
dis, string name, font fn);<format|next line> \ \ \ \ \ void
|
||||
copy_math_pars (font fn);<format|next line><format|next line>
|
||||
\ \ \ \ \ virtual void \ \ get_extents (string s, text_extents& ex) =
|
||||
0;<format|next line> \ \ \ \ \ virtual void \ \ draw (ps_device dev,
|
||||
string s, SI x, SI y) = 0;<format|next line><format|next line>
|
||||
\ \ \ \ \ virtual SI \ \ \ \ get_sub_base (string s);<format|next line>
|
||||
\ \ \ \ \ virtual SI \ \ \ \ get_sup_base (string s);<format|next line>
|
||||
\ \ \ \ \ virtual double get_left_slope \ (string s);<format|next line>
|
||||
\ \ \ \ \ virtual double get_right_slope (string s);<format|next line>
|
||||
\ \ \ \ \ virtual SI \ \ \ \ get_left_correction \ (string
|
||||
s);<format|next line> \ \ \ \ \ virtual SI \ \ \ \ get_right_correction
|
||||
(string s);<format|next line> \ \ \ \ \ virtual SI
|
||||
\ \ \ \ get_lsub_correction (string s, double level);<format|next line>
|
||||
\ \ \ \ \ virtual SI \ \ \ \ get_lsup_correction (string s, double
|
||||
level);<format|next line> \ \ \ \ \ virtual SI
|
||||
\ \ \ \ get_rsub_correction (string s, double level);<format|next line>
|
||||
size in points<next-line> \ \ \ \ \ SI \ \ \ \ \ \ wunit;
|
||||
\ \ \ \ \ \ \ \ \ \ \ // unit width for extendable fonts<next-line>
|
||||
\ \ \ \ \ SI \ \ \ \ \ \ wfrac; \ \ \ \ \ \ \ \ \ \ \ // width fraction
|
||||
bar<next-line> \ \ \ \ \ SI \ \ \ \ \ \ wsqrt; \ \ \ \ \ \ \ \ \ \ \ //
|
||||
width horzontal line in square root<next-line> \ \ \ \ \ SI
|
||||
\ \ \ \ \ \ wneg; \ \ \ \ \ \ \ \ \ \ \ \ // width of negation
|
||||
line<next-line><next-line> \ \ \ \ \ font_rep (display dis, string
|
||||
name);<next-line> \ \ \ \ \ font_rep (display dis, string name, font
|
||||
fn);<next-line> \ \ \ \ \ void copy_math_pars (font
|
||||
fn);<next-line><next-line> \ \ \ \ \ virtual void \ \ get_extents (string
|
||||
s, text_extents& ex) = 0;<next-line> \ \ \ \ \ virtual void \ \ draw
|
||||
(ps_device dev, string s, SI x, SI y) = 0;<next-line><next-line>
|
||||
\ \ \ \ \ virtual SI \ \ \ \ get_sub_base (string s);<next-line>
|
||||
\ \ \ \ \ virtual SI \ \ \ \ get_sup_base (string s);<next-line>
|
||||
\ \ \ \ \ virtual double get_left_slope \ (string s);<next-line>
|
||||
\ \ \ \ \ virtual double get_right_slope (string s);<next-line>
|
||||
\ \ \ \ \ virtual SI \ \ \ \ get_left_correction \ (string s);<next-line>
|
||||
\ \ \ \ \ virtual SI \ \ \ \ get_right_correction (string s);<next-line>
|
||||
\ \ \ \ \ virtual SI \ \ \ \ get_lsub_correction (string s, double
|
||||
level);<next-line> \ \ \ \ \ virtual SI \ \ \ \ get_lsup_correction
|
||||
(string s, double level);<next-line> \ \ \ \ \ virtual SI
|
||||
\ \ \ \ get_rsub_correction (string s, double level);<next-line>
|
||||
\ \ \ \ \ virtual SI \ \ \ \ get_rsup_correction (string s, double
|
||||
level);<format|next line><format|next line> \ \ \ \ void var_get_extents
|
||||
(string s, text_extents& ex);<format|next line> \ \ \ \ void var_draw
|
||||
(ps_device dev, string s, SI x, SI y);<format|next line> \ \ \ \ virtual
|
||||
bitmap_char get_bitmap (string s);<format|next line> \ \ };
|
||||
level);<next-line><next-line> \ \ \ \ void var_get_extents (string s,
|
||||
text_extents& ex);<next-line> \ \ \ \ void var_draw (ps_device dev,
|
||||
string s, SI x, SI y);<next-line> \ \ \ \ virtual bitmap_char get_bitmap
|
||||
(string s);<next-line> \ \ };
|
||||
</verbatim>
|
||||
|
||||
The main abstract routines are <verbatim|get_extents> and <verbatim|draw>.
|
||||
|
@ -175,32 +172,28 @@
|
|||
the screen.
|
||||
|
||||
The additional data are used for global typesetting using the font. The
|
||||
other virtual routines are used for determening additional properties of
|
||||
typesetted strings.
|
||||
other virtual routines are used for determining additional properties of
|
||||
typeset strings.
|
||||
|
||||
<section|Implementation of concrete fonts>
|
||||
|
||||
Several types of concrete fonts have been implemented in <apply|TeXmacs>:
|
||||
Several types of concrete fonts have been implemented in <TeXmacs>:
|
||||
|
||||
<\description>
|
||||
<expand|item*|TeX text fonts.>See <verbatim|src/Resource/Fonts/tex_font.c\
|
||||
c>.
|
||||
<item*|TeX text fonts>See <verbatim|src/Resource/Fonts/tex_font.cc>.
|
||||
|
||||
<expand|item*|TeX rubber fonts.>See <verbatim|src/Resource/Fonts/tex_rubb\
|
||||
er_font.cpp>.
|
||||
<item*|TeX rubber fonts>See <verbatim|src/Resource/Fonts/tex_rubber_font.cpp>.
|
||||
|
||||
<expand|item*|X fonts.>See <verbatim|src/Resource/Fonts/ps_font.cpp>.
|
||||
<item*|X fonts>See <verbatim|src/Resource/Fonts/ps_font.cpp>.
|
||||
|
||||
<expand|item*|Mathematical fonts.>See
|
||||
<verbatim|src/Resource/Fonts/math_font.cpp>.
|
||||
<item*|Mathematical fonts>See <verbatim|src/Resource/Fonts/math_font.cpp>.
|
||||
|
||||
<expand|item*|Virtual fonts.>See <verbatim|src/Resource/Fonts/virtual_fon\
|
||||
t.cpp>.
|
||||
<item*|Virtual fonts>See <verbatim|src/Resource/Fonts/virtual_font.cpp>.
|
||||
</description>
|
||||
|
||||
In most cases, the lowest layer of the implementation consists of a
|
||||
collection of bitmaps, together with some font metric information. The font
|
||||
is responsable for putting these bitmaps together on the screen using some
|
||||
is responsible for putting these bitmaps together on the screen using some
|
||||
appropriate spacing. The <verbatim|ps_device> class comes with a method to
|
||||
display bitmaps in a nice, anti-aliased way, or to print them out.
|
||||
|
||||
|
@ -209,9 +202,9 @@
|
|||
After having implemented fonts themselves, an important remaining issue is
|
||||
the selection of the appropriate font as a function of a certain number of
|
||||
parameters, such as its name, series, shape and size. For optimal
|
||||
flexibility, <apply|TeXmacs> comes with a powerful macro-based
|
||||
font-selection scheme (using the <apply|scheme> syntax), which allows the
|
||||
user to decide which parameters should be considered meaningful.
|
||||
flexibility, <TeXmacs> comes with a powerful macro-based font-selection
|
||||
scheme (using the <scheme> syntax), which allows the user to decide which
|
||||
parameters should be considered meaningful.
|
||||
|
||||
At the lowest level, we provide a fixed number of macros which directly
|
||||
correspond to the above types of concrete fonts. For instance, the macro\
|
||||
|
@ -227,14 +220,14 @@
|
|||
dsize=10);
|
||||
</verbatim>
|
||||
|
||||
of a <apply|TeX> text font.
|
||||
of a <TeX> text font.
|
||||
|
||||
At the middle level, it is possible to specify some rewriting rules like\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ ((roman rm medium right $s $d) (ec ecrm $s $d))<format|next line>
|
||||
\ \ \ \ ((roman rm medium right $s $d) (ec ecrm $s $d))<next-line>
|
||||
\ \ \ ((avant-garde rm medium right $s $d) (tex rpagk $s $d
|
||||
0))<format|next line> \ \ \ ((x-times rm medium right $s $d) (ps
|
||||
0))<next-line> \ \ \ ((x-times rm medium right $s $d) (ps
|
||||
adobe-times-medium-r-normal $s $d))
|
||||
</verbatim>
|
||||
|
||||
|
@ -242,7 +235,7 @@
|
|||
right hand side. The files in the directory <verbatim|progs/fonts> contain
|
||||
a large number of rewriting rules.
|
||||
|
||||
At the top level, <apply|TeXmacs> calls a macro of the form\
|
||||
At the top level, <TeXmacs> calls a macro of the form\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ ($name $family $series $shape $size $dpi)
|
||||
|
@ -252,44 +245,15 @@
|
|||
top level macro call might change in order to enable the user to let the
|
||||
font depend on other environment variables.
|
||||
|
||||
<apply|tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
||||
<expand|tmdoc-license|Permission is granted to copy, distribute and/or
|
||||
modify this document under the terms of the GNU Free Documentation License,
|
||||
Version 1.1 or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the section entitled
|
||||
"GNU Free Documentation License".>
|
||||
<tmdoc-license|Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|paragraph width|150mm>
|
||||
<associate|odd page margin|30mm>
|
||||
<associate|shrinking factor|4>
|
||||
<associate|page right margin|30mm>
|
||||
<associate|page top margin|30mm>
|
||||
<associate|reduction page right margin|25mm>
|
||||
<associate|page type|a4>
|
||||
<associate|reduction page bottom margin|15mm>
|
||||
<associate|even page margin|30mm>
|
||||
<associate|reduction page left margin|25mm>
|
||||
<associate|page bottom margin|30mm>
|
||||
<associate|reduction page top margin|15mm>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
|
||||
<\references>
|
||||
<\collection>
|
||||
<associate|idx-1|<tuple|<uninit>|?>>
|
||||
<associate|toc-1|<tuple|<uninit>|?>>
|
||||
<associate|idx-2|<tuple|<uninit>|?>>
|
||||
<associate|toc-2|<tuple|<uninit>|?>>
|
||||
<associate|toc-3|<tuple|4.|?>>
|
||||
<associate|toc-4|<tuple|4.|?>>
|
||||
<associate|toc-5|<tuple|4.|?>>
|
||||
<associate|toc-6|<tuple|4.|?>>
|
||||
<associate|toc-7|<tuple|4.|?>>
|
||||
</collection>
|
||||
</references>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,9 +1,9 @@
|
|||
<TeXmacs|1.0.0.17>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<expand|tmdoc-title|The graphical user interface>
|
||||
<tmdoc-title|The graphical user interface>
|
||||
|
||||
<section|Introduction>
|
||||
|
||||
|
@ -62,18 +62,18 @@
|
|||
</itemize>
|
||||
|
||||
Later a special widget-style manager will be implemented, which will be
|
||||
able to present widgets according to different ``styles''.
|
||||
able to present widgets according to different \Pstyles\Q.
|
||||
|
||||
<subsubsection|A simple example>
|
||||
|
||||
In order to create a window ``Test'' with the text ``Hello world'' in it,
|
||||
In order to create a window \PTest\Q with the text \PHello world\Q in it,
|
||||
one first opens the display, then create the widget with the text and
|
||||
finally the window, with the widget attached to it\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ display dis= open_display ();<format|next line> \ \ \ widget
|
||||
\ wid= text_widget ("Hello world");<format|next line> \ \ \ window \ win=
|
||||
plain_window (wid, dis, "Test");
|
||||
\ \ \ \ display dis= open_display ();<next-line> \ \ \ widget \ wid=
|
||||
text_widget ("Hello world");<next-line> \ \ \ window \ win= plain_window
|
||||
(wid, dis, "Test");
|
||||
</verbatim>
|
||||
|
||||
Technically speaking, the window creation amounts to several actions:
|
||||
|
@ -84,9 +84,9 @@
|
|||
|
||||
<item>The window is created.
|
||||
|
||||
<item>The widget is ``attached'' to the window.
|
||||
<item>The widget is \Pattached\Q to the window.
|
||||
|
||||
<item>The subwidgets are ``positioned'' at their appropriate places and
|
||||
<item>The subwidgets are \Ppositioned\Q at their appropriate places and
|
||||
they are given appropriate sizes within their parents.
|
||||
</itemize>
|
||||
|
||||
|
@ -113,7 +113,7 @@
|
|||
destroy the display by\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ close_display (dis)<format|next line> \ \ \ delete dis;
|
||||
\ \ \ \ close_display (dis)<next-line> \ \ \ delete dis;
|
||||
</verbatim>
|
||||
|
||||
The user only has to bother about destroying window and displays; widgets
|
||||
|
@ -159,11 +159,11 @@
|
|||
keyboard and repaint handlers:\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ class track_widget_rep: basic_widget_rep {<format|next line>
|
||||
\ \ \ \ \ string last_key;<format|next line> \ \ \ \ \ track_widget_rep
|
||||
();<format|next line> \ \ \ \ \ void handle_keypress (keypress_event
|
||||
ev);<format|next line> \ \ \ \ \ void handle_repaint (repaint_event
|
||||
ev);<format|next line> \ \ \ };
|
||||
\ \ \ \ class track_widget_rep: basic_widget_rep {<next-line>
|
||||
\ \ \ \ \ string last_key;<next-line> \ \ \ \ \ track_widget_rep
|
||||
();<next-line> \ \ \ \ \ void handle_keypress (keypress_event
|
||||
ev);<next-line> \ \ \ \ \ void handle_repaint (repaint_event
|
||||
ev);<next-line> \ \ \ };
|
||||
</verbatim>
|
||||
|
||||
The constructor is taken to be empty and places the origin at the center of
|
||||
|
@ -177,8 +177,8 @@
|
|||
also define the function\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ void<format|next line> \ \ \ track_widget () {<format|next line>
|
||||
\ \ \ \ \ return new track_widget_rep ();<format|next line> \ \ \ }
|
||||
\ \ \ \ void<next-line> \ \ \ track_widget () {<next-line>
|
||||
\ \ \ \ \ return new track_widget_rep ();<next-line> \ \ \ }
|
||||
</verbatim>
|
||||
|
||||
in order to create an instance of a <verbatim|track_widget>.
|
||||
|
@ -187,10 +187,10 @@
|
|||
<verbatim|last_key> and invalidate the entire widget region.\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ void<format|next line> \ \ \ track_widget_rep::handle_keypress
|
||||
(keypress_event ev) {<format|next line> \ \ \ \ \ last_key=
|
||||
ev-\<gtr\>key;<format|next line> \ \ \ \ \ this \<less\>\<less\>
|
||||
emit_invalidate_all ();<format|next line> \ \ \ }
|
||||
\ \ \ \ void<next-line> \ \ \ track_widget_rep::handle_keypress
|
||||
(keypress_event ev) {<next-line> \ \ \ \ \ last_key=
|
||||
ev-\<gtr\>key;<next-line> \ \ \ \ \ this \<less\>\<less\>
|
||||
emit_invalidate_all ();<next-line> \ \ \ }
|
||||
</verbatim>
|
||||
|
||||
The event handler for repainting first determines the string to be
|
||||
|
@ -198,17 +198,16 @@
|
|||
repaints it at the center.\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ void<format|next line> \ \ \ track_widget_rep::handle_repaint
|
||||
(repaint_event ev) {<format|next line> \ \ \ \ \ string s= (last_key ==
|
||||
""? "No key pressed": "Pressed " * last_key);<format|next
|
||||
line><format|next line> \ \ \ \ \ SI x1, y1, x2, y2;<format|next line>
|
||||
\ \ \ \ \ win-\<gtr\>get_extents (s, x1, y1, x2, y2); // CHECK
|
||||
THIS<format|next line><format|next line> \ \ \ \ \ win-\<gtr\>set_color
|
||||
(black);<format|next line> \ \ \ \ \ win-\<gtr\>fill (ev-\<gtr\>x1,
|
||||
ev-\<gtr\>y1, ev-\<gtr\>x2, ev-\<gtr\>y2);<format|next line>
|
||||
\ \ \ \ \ win-\<gtr\>set_color (white);<format|next line>
|
||||
\ \ \ \ \ win-\<gtr\>draw_string (s, -(x1+x2)\<gtr\>\<gtr\>1,
|
||||
-(y1+y2)\<gtr\>\<gtr\>1);<format|next line> \ \ \ }
|
||||
\ \ \ \ void<next-line> \ \ \ track_widget_rep::handle_repaint
|
||||
(repaint_event ev) {<next-line> \ \ \ \ \ string s= (last_key == ""? "No
|
||||
key pressed": "Pressed " * last_key);<next-line><next-line> \ \ \ \ \ SI
|
||||
x1, y1, x2, y2;<next-line> \ \ \ \ \ win-\<gtr\>get_extents (s, x1, y1,
|
||||
x2, y2); // CHECK THIS<next-line><next-line>
|
||||
\ \ \ \ \ win-\<gtr\>set_color (black);<next-line>
|
||||
\ \ \ \ \ win-\<gtr\>fill (ev-\<gtr\>x1, ev-\<gtr\>y1, ev-\<gtr\>x2,
|
||||
ev-\<gtr\>y2);<next-line> \ \ \ \ \ win-\<gtr\>set_color
|
||||
(white);<next-line> \ \ \ \ \ win-\<gtr\>draw_string (s,
|
||||
-(x1+x2)\<gtr\>\<gtr\>1, -(y1+y2)\<gtr\>\<gtr\>1);<next-line> \ \ \ }
|
||||
</verbatim>
|
||||
|
||||
\;
|
||||
|
@ -232,29 +231,26 @@
|
|||
The definition of the <verbatim|widget_rep> class goes as follows:\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ struct widget_rep: rep_struct {<format|next line>
|
||||
\ \ \ \ \ window \ \ \ \ \ \ \ win; \ \ \ \ \ \ \ \ \ \ // underlying
|
||||
window<format|next line> \ \ \ \ \ SI \ \ \ \ \ \ \ \ \ \ \ ox, oy;
|
||||
\ \ \ \ \ \ \ // origin of widget in window<format|next line>
|
||||
\ \ \ \ \ SI \ \ \ \ \ \ \ \ \ \ \ w, h; \ \ \ \ \ \ \ \ \ // width and
|
||||
height of widget<format|next line> \ \ \ \ \ gravity \ \ \ \ \ \ grav;
|
||||
\ \ \ \ \ \ \ \ \ // position of the origin in the widget<format|next
|
||||
line> \ \ \ \ \ array\<less\>widget\<gtr\> a; \ \ \ \ \ \ \ \ \ \ \ \ //
|
||||
children of widget<format|next line> \ \ \ \ \ array\<less\>string\<gtr\>
|
||||
name; \ \ \ \ \ \ \ \ \ // names for the children<format|next
|
||||
line><format|next line> \ \ \ \ \ widget_rep (array\<less\>widget\<gtr\>
|
||||
a, array\<less\>string\<gtr\> name, gravity grav);<format|next line>
|
||||
\ \ \ \ \ virtual ~widget_rep ();<format|next line><format|next line>
|
||||
\ \ \ \ \ virtual operator tree () = 0;<format|next line>
|
||||
\ \ \ \ \ virtual bool handle (event ev) = 0;<format|next
|
||||
line><format|next line> \ \ \ \ \ SI \ \ \ \ \ \ x1 (); SI y1 (); //
|
||||
lower left window coordinates of widget<format|next line> \ \ \ \ \ SI
|
||||
\ \ \ \ \ \ x2 (); SI y2 (); // upper right window coordinates of
|
||||
widget<format|next line> \ \ \ \ \ bool \ \ \ \ attached (); \ \ \ \ //
|
||||
tests whether (win != NULL)<format|next line> \ \ \ \ \ volatile void
|
||||
fatal_error (string mess, string rout="", string fname="");<format|next
|
||||
line> \ \ \ <format|next line> \ \ \ \ \ friend class widget;<format|next
|
||||
line> \ \ \ };
|
||||
\ \ \ \ struct widget_rep: rep_struct {<next-line> \ \ \ \ \ window
|
||||
\ \ \ \ \ \ \ win; \ \ \ \ \ \ \ \ \ \ // underlying window<next-line>
|
||||
\ \ \ \ \ SI \ \ \ \ \ \ \ \ \ \ \ ox, oy; \ \ \ \ \ \ \ // origin of
|
||||
widget in window<next-line> \ \ \ \ \ SI \ \ \ \ \ \ \ \ \ \ \ w, h;
|
||||
\ \ \ \ \ \ \ \ \ // width and height of widget<next-line>
|
||||
\ \ \ \ \ gravity \ \ \ \ \ \ grav; \ \ \ \ \ \ \ \ \ // position of the
|
||||
origin in the widget<next-line> \ \ \ \ \ array\<less\>widget\<gtr\> a;
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ // children of widget<next-line>
|
||||
\ \ \ \ \ array\<less\>string\<gtr\> name; \ \ \ \ \ \ \ \ \ // names for
|
||||
the children<next-line><next-line> \ \ \ \ \ widget_rep
|
||||
(array\<less\>widget\<gtr\> a, array\<less\>string\<gtr\> name, gravity
|
||||
grav);<next-line> \ \ \ \ \ virtual ~widget_rep ();<next-line><next-line>
|
||||
\ \ \ \ \ virtual operator tree () = 0;<next-line> \ \ \ \ \ virtual bool
|
||||
handle (event ev) = 0;<next-line><next-line> \ \ \ \ \ SI \ \ \ \ \ \ x1
|
||||
(); SI y1 (); // lower left window coordinates of widget<next-line>
|
||||
\ \ \ \ \ SI \ \ \ \ \ \ x2 (); SI y2 (); // upper right window
|
||||
coordinates of widget<next-line> \ \ \ \ \ bool \ \ \ \ attached ();
|
||||
\ \ \ \ // tests whether (win != NULL)<next-line> \ \ \ \ \ volatile void
|
||||
fatal_error (string mess, string rout="", string fname="");<next-line>
|
||||
\ \ \ <next-line> \ \ \ \ \ friend class widget;<next-line> \ \ \ };
|
||||
</verbatim>
|
||||
|
||||
\;
|
||||
|
@ -281,23 +277,22 @@
|
|||
The definition of the <verbatim|widget> class goes as follows:\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ struct widget {<format|next line> \ \ \ #import null_indirect_h
|
||||
(widget, widget_rep)<format|next line> \ \ \ \ \ inline widget
|
||||
(widget_rep* rep2): rep (rep2) {<format|next line> \ \ \ \ \ \ \ if
|
||||
(rep!=NULL) rep-\<gtr\>ref_count++; }<format|next line> \ \ \ \ \ inline
|
||||
widget operator [] (int i) { return rep-\<gtr\>a[i]; }<format|next line>
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ widget operator [] (string s);<format|next line>
|
||||
\ \ \ \ \ inline operator tree () { return (tree) (*rep); }<format|next
|
||||
line> \ \ \ \ \ inline bool operator == (widget w) { return rep == w.rep;
|
||||
}<format|next line> \ \ \ \ \ inline bool operator != (widget w) { return
|
||||
rep != w.rep; }<format|next line> \ \ \ };
|
||||
\ \ \ \ struct widget {<next-line> \ \ \ #import null_indirect_h (widget,
|
||||
widget_rep)<next-line> \ \ \ \ \ inline widget (widget_rep* rep2): rep
|
||||
(rep2) {<next-line> \ \ \ \ \ \ \ if (rep!=NULL) rep-\<gtr\>ref_count++;
|
||||
}<next-line> \ \ \ \ \ inline widget operator [] (int i) { return
|
||||
rep-\<gtr\>a[i]; }<next-line> \ \ \ \ \ \ \ \ \ \ \ \ widget operator []
|
||||
(string s);<next-line> \ \ \ \ \ inline operator tree () { return (tree)
|
||||
(*rep); }<next-line> \ \ \ \ \ inline bool operator == (widget w) {
|
||||
return rep == w.rep; }<next-line> \ \ \ \ \ inline bool operator !=
|
||||
(widget w) { return rep != w.rep; }<next-line> \ \ \ };
|
||||
</verbatim>
|
||||
|
||||
\;
|
||||
|
||||
Widgets may be constructed in two ways. First, we may construct a symbolic
|
||||
``nil'' widget by <verbatim|widget ()>. The function <verbatim|bool nil
|
||||
(widget)> is provided in order to test whether a widget is ``nil''.
|
||||
\Pnil\Q widget by <verbatim|widget ()>. The function <verbatim|bool nil
|
||||
(widget)> is provided in order to test whether a widget is \Pnil\Q.
|
||||
Secondly, we may construct a widget from a pointer of type
|
||||
<verbatim|widget_rep*>.
|
||||
|
||||
|
@ -305,7 +300,7 @@
|
|||
are no longer pointed to. An important exception is when two widgets point
|
||||
one to each other, which fools the reference counter (for instance a
|
||||
scrollbar and the widget which is scrolled need to point one to each
|
||||
other). In order to deal with such ``circular dependencies'', one works
|
||||
other). In order to deal with such \Pcircular dependencies\Q, one works
|
||||
directly with <verbatim|widget_rep*> pointers if one does not want to the
|
||||
pointer to be taken into account in the reference counter.
|
||||
|
||||
|
@ -330,12 +325,11 @@
|
|||
The definition of the <verbatim|event_rep> structure is as follows:\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ struct event_rep: public rep_struct {<format|next line>
|
||||
\ \ \ \ \ int \ \ \ type; \ // the event type<format|next line>
|
||||
\ \ \ \ \ inline event_rep (int type2): rep_struct (0), type (type2)
|
||||
{}<format|next line> \ \ \ \ \ inline virtual ~event_rep ()
|
||||
{}<format|next line> \ \ \ \ \ virtual operator tree () = 0; \ \ // for
|
||||
displaying events (debugging)<format|next line> \ \ \ };
|
||||
\ \ \ \ struct event_rep: public rep_struct {<next-line> \ \ \ \ \ int
|
||||
\ \ \ type; \ // the event type<next-line> \ \ \ \ \ inline event_rep
|
||||
(int type2): rep_struct (0), type (type2) {}<next-line> \ \ \ \ \ inline
|
||||
virtual ~event_rep () {}<next-line> \ \ \ \ \ virtual operator tree () =
|
||||
0; \ \ // for displaying events (debugging)<next-line> \ \ \ };
|
||||
</verbatim>
|
||||
|
||||
\;
|
||||
|
@ -357,12 +351,12 @@
|
|||
The <verbatim|event> structure is defined by\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ struct event {<format|next line> \ \ \ #import indirect_h (event,
|
||||
event_rep) \ \ \ \ \ \ \ \ \ \ \ <format|next line> \ \ \ \ \ inline
|
||||
event (event_rep* rep2): rep (rep2) {<format|next line> \ \ \ \ \ \ \ if
|
||||
(rep!=NULL) rep-\<gtr\>ref_count++; }<format|next line> \ \ \ \ \ inline
|
||||
operator tree () { return (tree) (*rep); }<format|next line>
|
||||
\ \ \ };<format|next line> \ \ \ #import indirect_cc (event, event_rep)
|
||||
\ \ \ \ struct event {<next-line> \ \ \ #import indirect_h (event,
|
||||
event_rep) \ \ \ \ \ \ \ \ \ \ \ <next-line> \ \ \ \ \ inline event
|
||||
(event_rep* rep2): rep (rep2) {<next-line> \ \ \ \ \ \ \ if (rep!=NULL)
|
||||
rep-\<gtr\>ref_count++; }<next-line> \ \ \ \ \ inline operator tree () {
|
||||
return (tree) (*rep); }<next-line> \ \ \ };<next-line> \ \ \ #import
|
||||
indirect_cc (event, event_rep)
|
||||
</verbatim>
|
||||
|
||||
\;
|
||||
|
@ -374,10 +368,10 @@
|
|||
<verbatim|get_widget> events is defined by\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ struct get_widget_event_rep: public event_rep {<format|next line>
|
||||
\ \ \ \ \ string which; widget& w;<format|next line>
|
||||
\ \ \ \ \ get_widget_event_rep (string which, widget& w);<format|next
|
||||
line> \ \ \ \ \ operator tree ();<format|next line> \ \ \ };
|
||||
\ \ \ \ struct get_widget_event_rep: public event_rep {<next-line>
|
||||
\ \ \ \ \ string which; widget& w;<next-line>
|
||||
\ \ \ \ \ get_widget_event_rep (string which, widget& w);<next-line>
|
||||
\ \ \ \ \ operator tree ();<next-line> \ \ \ };
|
||||
</verbatim>
|
||||
|
||||
The corresponding <verbatim|get_widget_event> class is defined by\
|
||||
|
@ -391,12 +385,11 @@
|
|||
The module <verbatim|event> with two parameters is defined by\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ #module event (T, R)<format|next line> \ \ \ struct T
|
||||
{<format|next line> \ \ \ \ \ R* rep;<format|next line> \ \ \ \ \ T (T&
|
||||
ev);<format|next line> \ \ \ \ \ ~T ();<format|next line> \ \ \ \ \ T
|
||||
(event& ev);<format|next line> \ \ \ \ \ operator event ();<format|next
|
||||
line> \ \ \ \ \ R* operator -\<gtr\> ();<format|next line> \ \ \ \ \ T&
|
||||
operator = (T ev);<format|next line> \ \ \ };<format|next line>
|
||||
\ \ \ \ #module event (T, R)<next-line> \ \ \ struct T {<next-line>
|
||||
\ \ \ \ \ R* rep;<next-line> \ \ \ \ \ T (T& ev);<next-line> \ \ \ \ \ ~T
|
||||
();<next-line> \ \ \ \ \ T (event& ev);<next-line> \ \ \ \ \ operator
|
||||
event ();<next-line> \ \ \ \ \ R* operator -\<gtr\> ();<next-line>
|
||||
\ \ \ \ \ T& operator = (T ev);<next-line> \ \ \ };<next-line>
|
||||
\ \ \ #endmodule // event (T, R)
|
||||
</verbatim>
|
||||
|
||||
|
@ -410,17 +403,17 @@
|
|||
|
||||
<\verbatim>
|
||||
\ \ \ \ get_widget_event_rep::get_widget_event_rep (string ww, widget&
|
||||
w2):<format|next line> \ \ \ \ \ event_rep (GET_WIDGET_EVENT), which
|
||||
(ww), w (w2) {}<format|next line> \ \ \ get_widget_event_rep::operator
|
||||
tree () {<format|next line> \ \ \ \ \ return tree ("get_widget_event",
|
||||
which); }<format|next line> \ \ \ #import code_event (get_widget_event,
|
||||
w2):<next-line> \ \ \ \ \ event_rep (GET_WIDGET_EVENT), which (ww), w
|
||||
(w2) {}<next-line> \ \ \ get_widget_event_rep::operator tree ()
|
||||
{<next-line> \ \ \ \ \ return tree ("get_widget_event", which);
|
||||
}<next-line> \ \ \ #import code_event (get_widget_event,
|
||||
get_widget_event_rep)
|
||||
</verbatim>
|
||||
|
||||
The actual events are created by\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ event get_widget (string which, widget& w) {<format|next line>
|
||||
\ \ \ \ event get_widget (string which, widget& w) {<next-line>
|
||||
\ \ \ \ \ return new get_widget_event_rep (which, w); }
|
||||
</verbatim>
|
||||
|
||||
|
@ -444,25 +437,24 @@
|
|||
For instance, the event handler for composite widgets is as follows:\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ bool<format|next line> \ \ \ composite_widget_rep::handle (event
|
||||
ev) {<format|next line> \ \ \ \ \ switch (ev-\<gtr\>type) {<format|next
|
||||
line> \ \ \ \ \ case CLEAN_EVENT:<format|next line>
|
||||
\ \ \ \ \ \ \ handle_clean (ev);<format|next line> \ \ \ \ \ \ \ return
|
||||
TRUE;<format|next line> \ \ \ \ \ case INSERT_EVENT:<format|next line>
|
||||
\ \ \ \ \ \ \ handle_insert (ev);<format|next line> \ \ \ \ \ \ \ return
|
||||
TRUE;<format|next line> \ \ \ \ \ case REMOVE_EVENT:<format|next line>
|
||||
\ \ \ \ \ \ \ handle_remove (ev);<format|next line> \ \ \ \ \ \ \ return
|
||||
TRUE;<format|next line> \ \ \ \ \ }<format|next line> \ \ \ \ \ return
|
||||
basic_widget_rep::handle (ev);<format|next line> \ \ \ }
|
||||
\ \ \ \ bool<next-line> \ \ \ composite_widget_rep::handle (event ev)
|
||||
{<next-line> \ \ \ \ \ switch (ev-\<gtr\>type) {<next-line>
|
||||
\ \ \ \ \ case CLEAN_EVENT:<next-line> \ \ \ \ \ \ \ handle_clean
|
||||
(ev);<next-line> \ \ \ \ \ \ \ return TRUE;<next-line> \ \ \ \ \ case
|
||||
INSERT_EVENT:<next-line> \ \ \ \ \ \ \ handle_insert (ev);<next-line>
|
||||
\ \ \ \ \ \ \ return TRUE;<next-line> \ \ \ \ \ case
|
||||
REMOVE_EVENT:<next-line> \ \ \ \ \ \ \ handle_remove (ev);<next-line>
|
||||
\ \ \ \ \ \ \ return TRUE;<next-line> \ \ \ \ \ }<next-line>
|
||||
\ \ \ \ \ return basic_widget_rep::handle (ev);<next-line> \ \ \ }
|
||||
</verbatim>
|
||||
|
||||
The member function <verbatim|handle_insert> is implemented as follows:\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ void<format|next line> \ \ \ composite_widget_rep::handle_insert
|
||||
(insert_event ev) {<format|next line> \ \ \ \ \ a \<less\>\<less\>
|
||||
ev-\<gtr\>w;<format|next line> \ \ \ \ \ name \<less\>\<less\>
|
||||
ev-\<gtr\>s;<format|next line> \ \ \ }
|
||||
\ \ \ \ void<next-line> \ \ \ composite_widget_rep::handle_insert
|
||||
(insert_event ev) {<next-line> \ \ \ \ \ a \<less\>\<less\>
|
||||
ev-\<gtr\>w;<next-line> \ \ \ \ \ name \<less\>\<less\>
|
||||
ev-\<gtr\>s;<next-line> \ \ \ }
|
||||
</verbatim>
|
||||
|
||||
In particular, we can retrieve the fields <verbatim|w> and <verbatim|s>
|
||||
|
@ -502,7 +494,7 @@
|
|||
each window. This is useful for complex applications, where regions of
|
||||
the window may be invalidated during this phase. Indeed, the event
|
||||
handling phase may consist of many complex actions, so that the regions
|
||||
to invalidate may be determined easier <with|font shape|italic|a
|
||||
to invalidate may be determined easier <with|font-shape|italic|a
|
||||
posteriori>.
|
||||
|
||||
<item>Requests are emitted in order to repaint the regions which have
|
||||
|
@ -526,19 +518,19 @@
|
|||
of <verbatim|PIXEL>. Furthermore, the <verbatim|window> member functions\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ void inner_round (SI& x1, SI& y1, SI& x2, SI& y2);<format|next
|
||||
line> \ \ \ void outer_round (SI& x1, SI& y1, SI& x2, SI& y2);
|
||||
\ \ \ \ void inner_round (SI& x1, SI& y1, SI& x2, SI& y2);<next-line>
|
||||
\ \ \ void outer_round (SI& x1, SI& y1, SI& x2, SI& y2);
|
||||
</verbatim>
|
||||
|
||||
transform a rectangle into a new one with integer multiple of
|
||||
<verbatim|PIXEL> coordinates, which is enclosed resp. encloses the original
|
||||
rectangle.
|
||||
<verbatim|PIXEL> coordinates, which is enclosed <abbr|resp.> encloses the
|
||||
original rectangle.
|
||||
|
||||
<subsubsection|Local and global coordinates>
|
||||
|
||||
Each widget has an origin <verbatim|(ox,oy)> with respect to the window to
|
||||
which it has been attached. This is the origin of the ``local
|
||||
coordinates''. The origin of the ``global coordinates'' is the origin of
|
||||
which it has been attached. This is the origin of the \Plocal
|
||||
coordinates\Q. The origin of the \Pglobal coordinates\Q is the origin of
|
||||
the window. The location of the local origin in the widget is determined by
|
||||
the widget's gravity, which is either one of <verbatim|north_west>,
|
||||
<verbatim|north>, <verbatim|north_east>, <verbatim|west>,
|
||||
|
@ -591,12 +583,12 @@
|
|||
window, such as:
|
||||
|
||||
<\itemize>
|
||||
<item>``get size'' events, which determine the default, minimal and
|
||||
<item>\Pget size\Q events, which determine the default, minimal and
|
||||
maximal size of a widget. Such an event is generated before the creation
|
||||
of the window to which the widget will be attached in order to determine
|
||||
the size of the window.
|
||||
|
||||
<item>``attach window'' events, in order to attach (or detach) a window.
|
||||
<item>\Pattach window\Q events, in order to attach (or detach) a window.
|
||||
|
||||
<item>Events for setting (and getting) attributes: after the creation of
|
||||
a widget some attributes of the widget may be given some default value.
|
||||
|
@ -620,7 +612,7 @@
|
|||
<subsubsection|Positioning widgets>
|
||||
|
||||
When an appropriate size <verbatim|(w,h)> has been determined for a widget
|
||||
(using ``get size'' events) and when a widget has been attached to some
|
||||
(using \Pget size\Q events) and when a widget has been attached to some
|
||||
window, the widget is positioned in the main window. By default, all
|
||||
children are recursively positioned at the top left of the window at sizes
|
||||
<verbatim|(w,h)>. But for complex widgets with children, a specific
|
||||
|
@ -638,7 +630,7 @@
|
|||
<verbatim|a[i]> is at position <verbatim|(x[i], y[i])> w.r.t. the local
|
||||
coordinates of <verbatim|this> and such that the origin is situated in the
|
||||
center of <verbatim|a[i]>. The width and height of <verbatim|a[i]> are set
|
||||
to <verbatim|w[i]> resp. <verbatim|h[i]>.
|
||||
to <verbatim|w[i]> <abbr|resp.> <verbatim|h[i]>.
|
||||
|
||||
<subsubsection|Repositioning widgets>
|
||||
|
||||
|
@ -700,8 +692,7 @@
|
|||
window lost focus.
|
||||
|
||||
The keyboard focus widget <verbatim|win-\<gtr\>kbd_focus> associated to a
|
||||
window can be changed by calling the <verbatim|window_rep> member function\
|
||||
\
|
||||
window can be changed by calling the <verbatim|window_rep> member function\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ void window_rep::set_keyboard_focus (widget);
|
||||
|
@ -727,22 +718,23 @@
|
|||
|
||||
<\verbatim>
|
||||
\ \ \ \ "\<less\>F1\<gtr\>", "\<less\>F2\<gtr\>", "\<less\>F3\<gtr\>",
|
||||
"\<less\>F4\<gtr\>", "\<less\>F5\<gtr\>",
|
||||
"\<less\>F6\<gtr\>",<format|next line> \ \ \ "\<less\>F7\<gtr\>",
|
||||
"\<less\>F8\<gtr\>", "\<less\>F9\<gtr\>", "\<less\>F10\<gtr\>",
|
||||
"\<less\>F11\<gtr\>", "\<less\>F12\<gtr\>",<format|next line>
|
||||
\ \ \ "\<less\>esc\<gtr\>", "\<less\>tab\<gtr\>", "\<less\>less\<gtr\>",
|
||||
"\<less\>gtr\<gtr\>", "\<less\>del\<gtr\>",
|
||||
"\<less\>return\<gtr\>",<format|next line> \ \ \ "\<less\>ins\<gtr\>",
|
||||
"\<less\>home\<gtr\>", "\<less\>end\<gtr\>", "\<less\>page-down\<gtr\>",
|
||||
"\<less\>page-up\<gtr\>",<format|next line> \ \ \ "\<less\>left\<gtr\>",
|
||||
"\<less\>up\<gtr\>", "\<less\>down\<gtr\>", "\<less\>right\<gtr\>"
|
||||
"\<less\>F4\<gtr\>", "\<less\>F5\<gtr\>", "\<less\>F6\<gtr\>",<next-line>
|
||||
\ \ \ "\<less\>F7\<gtr\>", "\<less\>F8\<gtr\>", "\<less\>F9\<gtr\>",
|
||||
"\<less\>F10\<gtr\>", "\<less\>F11\<gtr\>",
|
||||
"\<less\>F12\<gtr\>",<next-line> \ \ \ "\<less\>esc\<gtr\>",
|
||||
"\<less\>tab\<gtr\>", "\<less\>less\<gtr\>", "\<less\>gtr\<gtr\>",
|
||||
"\<less\>del\<gtr\>", "\<less\>return\<gtr\>",<next-line>
|
||||
\ \ \ "\<less\>ins\<gtr\>", "\<less\>home\<gtr\>", "\<less\>end\<gtr\>",
|
||||
"\<less\>page-down\<gtr\>", "\<less\>page-up\<gtr\>",<next-line>
|
||||
\ \ \ "\<less\>left\<gtr\>", "\<less\>up\<gtr\>", "\<less\>down\<gtr\>",
|
||||
"\<less\>right\<gtr\>"
|
||||
</verbatim>
|
||||
|
||||
The keys <verbatim|"\<less\>less\<gtr\>"> and
|
||||
<verbatim|"\<less\>gtr\<gtr\>"> correspond resp. to <verbatim|"\<less\>">
|
||||
and <verbatim|"\<gtr\>">. The allowed modifiers are <verbatim|"shift">,
|
||||
<verbatim|"ctrl"> and <verbatim|"meta"> or combinations of these.
|
||||
<verbatim|"\<less\>gtr\<gtr\>"> correspond <abbr|resp.> to
|
||||
<verbatim|"\<less\>"> and <verbatim|"\<gtr\>">. The allowed modifiers are
|
||||
<verbatim|"shift">, <verbatim|"ctrl"> and <verbatim|"meta"> or combinations
|
||||
of these.
|
||||
|
||||
<subsection|The mouse>
|
||||
|
||||
|
@ -758,7 +750,7 @@
|
|||
are the following:\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ "press-left", "press-middle", "press-right",<format|next line>
|
||||
\ \ \ \ "press-left", "press-middle", "press-right",<next-line>
|
||||
\ \ \ "release-left", "release-middle", "release-right"
|
||||
</verbatim>
|
||||
|
||||
|
@ -769,13 +761,12 @@
|
|||
</verbatim>
|
||||
|
||||
The <verbatim|"enter"> and <verbatim|"leave"> events occur when the mouse
|
||||
enters resp. leaves the widget. Finally, the states of the left, middle and
|
||||
right mouse buttons can respectively be obtained using the calls\
|
||||
enters <abbr|resp.> leaves the widget. Finally, the states of the left,
|
||||
middle and right mouse buttons can respectively be obtained using the calls\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ ev-\<gtr\>pressed ("left")<format|next line>
|
||||
\ \ \ ev-\<gtr\>pressed ("middle")<format|next line>
|
||||
\ \ \ ev-\<gtr\>pressed ("right")<format|next line>\
|
||||
\ \ \ \ ev-\<gtr\>pressed ("left")<next-line> \ \ \ ev-\<gtr\>pressed
|
||||
("middle")<next-line> \ \ \ ev-\<gtr\>pressed ("right")<next-line>\
|
||||
</verbatim>
|
||||
|
||||
<subsubsection|Grabbing the mouse>
|
||||
|
@ -851,7 +842,7 @@
|
|||
may also invalidate a rectangle by using either one of the routines\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ event emit_invalidate_all ();<format|next line> \ \ \ event
|
||||
\ \ \ \ event emit_invalidate_all ();<next-line> \ \ \ event
|
||||
emit_invalidate (SI x1, SI y1, SI x2, SI y2);
|
||||
</verbatim>
|
||||
|
||||
|
@ -888,8 +879,8 @@
|
|||
</verbatim>
|
||||
|
||||
The first two arguments determine whether the widget is extensible
|
||||
horizontally resp. vertically. The last two elements determine the default
|
||||
and minimal size of the widget.
|
||||
horizontally <abbr|resp.> vertically. The last two elements determine the
|
||||
default and minimal size of the widget.
|
||||
|
||||
<subsubsection|Text widgets>
|
||||
|
||||
|
@ -915,7 +906,7 @@
|
|||
window when pressed. Popup buttons are created by one of\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ widget pulldown_button (string s, widget m);<format|next line>
|
||||
\ \ \ \ widget pulldown_button (string s, widget m);<next-line>
|
||||
\ \ \ widget pullright_button (string s, widget m);
|
||||
</verbatim>
|
||||
|
||||
|
@ -935,8 +926,8 @@
|
|||
Horizontal and vertical menus are created using\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ widget horizontal_menu ();<format|next line> \ \ \ widget
|
||||
vertical_menu ();
|
||||
\ \ \ \ widget horizontal_menu ();<next-line> \ \ \ widget vertical_menu
|
||||
();
|
||||
</verbatim>
|
||||
|
||||
By default, they are empty. Subsequently, they can be modified as composite
|
||||
|
@ -954,11 +945,11 @@
|
|||
scrollbars, which enable to scroll <verbatim|w>. The events\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ event set_scrollable (widget w);<format|next line> \ \ \ event
|
||||
set_extents \ \ \ (SI ew, SI ey);<format|next line> \ \ \ event
|
||||
set_scroll_pos (SI x, SI y);<format|next line> \ \ \ event get_extents
|
||||
\ \ \ (SI& ew, SI& eh);<format|next line> \ \ \ event get_visible
|
||||
\ \ \ (SI& x1, SI& y1, SI& x2, SI& y2);
|
||||
\ \ \ \ event set_scrollable (widget w);<next-line> \ \ \ event
|
||||
set_extents \ \ \ (SI ew, SI ey);<next-line> \ \ \ event set_scroll_pos
|
||||
(SI x, SI y);<next-line> \ \ \ event get_extents \ \ \ (SI& ew, SI&
|
||||
eh);<next-line> \ \ \ event get_visible \ \ \ (SI& x1, SI& y1, SI& x2,
|
||||
SI& y2);
|
||||
</verbatim>
|
||||
|
||||
enable to change <verbatim|w>, to set the extents of <verbatim|w>, to set
|
||||
|
@ -991,219 +982,15 @@
|
|||
Usually, the returned <verbatim|s> is a string enclosed between quotes. If
|
||||
typing was aborted, <verbatim|s> contains the string <verbatim|"cancel">.
|
||||
|
||||
<apply|tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
||||
<expand|tmdoc-license|Permission is granted to copy, distribute and/or
|
||||
modify this document under the terms of the GNU Free Documentation License,
|
||||
Version 1.1 or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the section entitled
|
||||
"GNU Free Documentation License".>
|
||||
<tmdoc-license|Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|paragraph width|150mm>
|
||||
<associate|odd page margin|30mm>
|
||||
<associate|shrinking factor|4>
|
||||
<associate|page right margin|30mm>
|
||||
<associate|page top margin|30mm>
|
||||
<associate|reduction page right margin|25mm>
|
||||
<associate|page type|a4>
|
||||
<associate|reduction page bottom margin|15mm>
|
||||
<associate|even page margin|30mm>
|
||||
<associate|reduction page left margin|25mm>
|
||||
<associate|page bottom margin|30mm>
|
||||
<associate|reduction page top margin|15mm>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
|
||||
<\references>
|
||||
<\collection>
|
||||
<associate|idx-1|<tuple|<uninit>|?>>
|
||||
<associate|idx-2|<tuple|<uninit>|?>>
|
||||
<associate|toc-10|<tuple|<uninit>|?>>
|
||||
<associate|toc-40|<tuple|<uninit>|?>>
|
||||
<associate|toc-20|<tuple|<uninit>|?>>
|
||||
<associate|toc-30|<tuple|<uninit>|?>>
|
||||
<associate|toc-21|<tuple|<uninit>|?>>
|
||||
<associate|toc-11|<tuple|<uninit>|?>>
|
||||
<associate|toc-41|<tuple|<uninit>|?>>
|
||||
<associate|toc-31|<tuple|<uninit>|?>>
|
||||
<associate|toc-22|<tuple|<uninit>|?>>
|
||||
<associate|toc-12|<tuple|<uninit>|?>>
|
||||
<associate|toc-32|<tuple|<uninit>|?>>
|
||||
<associate|toc-42|<tuple|<uninit>|?>>
|
||||
<associate|toc-33|<tuple|<uninit>|?>>
|
||||
<associate|toc-43|<tuple|<uninit>|?>>
|
||||
<associate|toc-13|<tuple|<uninit>|?>>
|
||||
<associate|toc-23|<tuple|<uninit>|?>>
|
||||
<associate|toc-44|<tuple|<uninit>|?>>
|
||||
<associate|toc-34|<tuple|<uninit>|?>>
|
||||
<associate|toc-14|<tuple|<uninit>|?>>
|
||||
<associate|toc-24|<tuple|<uninit>|?>>
|
||||
<associate|toc-45|<tuple|<uninit>|?>>
|
||||
<associate|toc-35|<tuple|<uninit>|?>>
|
||||
<associate|toc-15|<tuple|<uninit>|?>>
|
||||
<associate|toc-25|<tuple|<uninit>|?>>
|
||||
<associate|toc-46|<tuple|<uninit>|?>>
|
||||
<associate|toc-36|<tuple|<uninit>|?>>
|
||||
<associate|toc-16|<tuple|<uninit>|?>>
|
||||
<associate|toc-26|<tuple|<uninit>|?>>
|
||||
<associate|toc-27|<tuple|<uninit>|?>>
|
||||
<associate|toc-37|<tuple|<uninit>|?>>
|
||||
<associate|toc-17|<tuple|<uninit>|?>>
|
||||
<associate|toc-28|<tuple|<uninit>|?>>
|
||||
<associate|toc-18|<tuple|<uninit>|?>>
|
||||
<associate|toc-38|<tuple|<uninit>|?>>
|
||||
<associate|toc-29|<tuple|<uninit>|?>>
|
||||
<associate|toc-19|<tuple|<uninit>|?>>
|
||||
<associate|toc-39|<tuple|<uninit>|?>>
|
||||
<associate|toc-1|<tuple|<uninit>|?>>
|
||||
<associate|toc-2|<tuple|<uninit>|?>>
|
||||
<associate|toc-3|<tuple|<uninit>|?>>
|
||||
<associate|toc-4|<tuple|<uninit>|?>>
|
||||
<associate|toc-5|<tuple|<uninit>|?>>
|
||||
<associate|toc-6|<tuple|<uninit>|?>>
|
||||
<associate|toc-7|<tuple|<uninit>|?>>
|
||||
<associate|toc-8|<tuple|<uninit>|?>>
|
||||
<associate|toc-9|<tuple|<uninit>|?>>
|
||||
</collection>
|
||||
</references>
|
||||
|
||||
<\auxiliary>
|
||||
<\collection>
|
||||
<\associate|toc>
|
||||
Introduction<value|toc-dots><pageref|toc-1>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|Main
|
||||
architecture<value|toc-dots><pageref|toc-2>>
|
||||
|
||||
<with|left margin|<quote|3fn>|A simple
|
||||
example<value|toc-dots><pageref|toc-3>>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|Widgets and event
|
||||
processing<value|toc-dots><pageref|toc-4>>
|
||||
|
||||
<with|left margin|<quote|3fn>|A simple
|
||||
example<value|toc-dots><pageref|toc-5>>
|
||||
|
||||
The abstract window interface<value|toc-dots><pageref|toc-6>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|Displays<value|toc-dots><pageref|toc-7>\
|
||||
>
|
||||
|
||||
Widget principles<value|toc-dots><pageref|toc-8>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|The widget
|
||||
class<value|toc-dots><pageref|toc-9>>
|
||||
|
||||
<with|left margin|<quote|3fn>|The widget representation
|
||||
class<value|toc-dots><pageref|toc-10>>
|
||||
|
||||
<with|left margin|<quote|3fn>|The widget
|
||||
class<value|toc-dots><pageref|toc-11>>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|The event
|
||||
class<value|toc-dots><pageref|toc-12>>
|
||||
|
||||
<with|left margin|<quote|3fn>|The event representation
|
||||
class<value|toc-dots><pageref|toc-13>>
|
||||
|
||||
<with|left margin|<quote|3fn>|The event
|
||||
class<value|toc-dots><pageref|toc-14>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Concrete event
|
||||
classes<value|toc-dots><pageref|toc-15>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Event
|
||||
handlers<value|toc-dots><pageref|toc-16>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Adding your own event
|
||||
classes<value|toc-dots><pageref|toc-17>>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|The main event
|
||||
loop<value|toc-dots><pageref|toc-18>>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|Coordinates<value|toc-dots><pageref|toc\
|
||||
-19>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Coordinates, pixels and
|
||||
rounding<value|toc-dots><pageref|toc-20>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Local and global
|
||||
coordinates<value|toc-dots><pageref|toc-21>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Screen
|
||||
coordinates<value|toc-dots><pageref|toc-22>>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|Attaching and positioning
|
||||
widgets<value|toc-dots><pageref|toc-23>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Attaching
|
||||
widgets<value|toc-dots><pageref|toc-24>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Positioning
|
||||
widgets<value|toc-dots><pageref|toc-25>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Repositioning
|
||||
widgets<value|toc-dots><pageref|toc-26>>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|The
|
||||
keyboard<value|toc-dots><pageref|toc-27>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Keyboard
|
||||
focus<value|toc-dots><pageref|toc-28>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Keyboard
|
||||
events<value|toc-dots><pageref|toc-29>>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|The
|
||||
mouse<value|toc-dots><pageref|toc-30>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Mouse
|
||||
events<value|toc-dots><pageref|toc-31>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Grabbing the
|
||||
mouse<value|toc-dots><pageref|toc-32>>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|The
|
||||
screen<value|toc-dots><pageref|toc-33>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Repainting
|
||||
rectangles<value|toc-dots><pageref|toc-34>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Invalidation of
|
||||
rectangles<value|toc-dots><pageref|toc-35>>
|
||||
|
||||
<with|left margin|<quote|1.5fn>|The
|
||||
toolkit<value|toc-dots><pageref|toc-36>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Other standard widget
|
||||
classes<value|toc-dots><pageref|toc-37>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Composite
|
||||
widgets<value|toc-dots><pageref|toc-38>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Attribute
|
||||
widgets<value|toc-dots><pageref|toc-39>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Glue widgets<value|toc-dots><pageref|toc-\
|
||||
40>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Text widgets<value|toc-dots><pageref|toc-\
|
||||
41>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Buttons<value|toc-dots><pageref|toc-42>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Menus<value|toc-dots><pageref|toc-43>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Canvas
|
||||
widgets<value|toc-dots><pageref|toc-44>>
|
||||
|
||||
<with|left margin|<quote|3fn>|Input
|
||||
widgets<value|toc-dots><pageref|toc-45>>
|
||||
</associate>
|
||||
</collection>
|
||||
</auxiliary>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.21>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Mathematical typesetting>
|
||||
|
@ -19,11 +19,11 @@
|
|||
often stressed that good typesetting allows the reader to concentrate on
|
||||
what he reads, without being distracted by ugly typesetting details. Such
|
||||
distracting details arise when distinct, though similar parts of text are
|
||||
typesetted in a non uniform way:
|
||||
typeset in a non uniform way:
|
||||
|
||||
<\description>
|
||||
<item*|Different base lines>The eye expects text of a similar nature to
|
||||
be typesetted with respect to a same base line. For instance, in
|
||||
be typeset with respect to a same base line. For instance, in
|
||||
<math|x+y+z>, the bottoms of the <math|x> and <math|z> should be at the
|
||||
same height as the bottom of the <math|u>-part in the <math|y>. This
|
||||
should again be the case in <math|2<rsup|x>+2<rsup|y>+2<rsup|z>>.
|
||||
|
@ -34,7 +34,7 @@
|
|||
hangover of the <math|f>. This should again be the case in
|
||||
<math|e<rsup|a>+e<rsup|f>+e<rsup|x>>. Similarly, the distance between the
|
||||
baselines of the <math|a> and the <math|i> in <math|a<rsub|i>> should not
|
||||
be disproportially large with respect to the height of an <math|x>.
|
||||
be disproportionally large with respect to the height of an <math|x>.
|
||||
</description>
|
||||
|
||||
Additional difficulties may arise when considering automatically generated
|
||||
|
@ -45,11 +45,11 @@
|
|||
each other. For instance, consider the formula
|
||||
<math|x<rsub|p>+x<rsub|p><rsup|2>>. On the one hand, the baselines of the
|
||||
scripts should be the same, but the other hand, the first subscript should
|
||||
not be ``disproportionally low'' with respect to the <math|x>.
|
||||
not be \Pdisproportionally low\Q with respect to the <math|x>.
|
||||
Unfortunately, this dilemma can not been solved in a completely
|
||||
satisfactory way without the help of a human for the simple reason that the
|
||||
computer has no way to know whether the <math|x<rsub|p>> and
|
||||
<math|x<rsub|p><rsup|i>> are ``related''. Indeed, if the <math|x<rsub|p>>
|
||||
<math|x<rsub|p><rsup|i>> are \Prelated\Q. Indeed, if the <math|x<rsub|p>>
|
||||
and <math|x<rsub|p><rsup|i>> are close (like in
|
||||
<math|x<rsub|p>+x<rsub|p><rsup|i>>), then it is natural to opt for a common
|
||||
base line. However, if they are further away from each other (like in
|
||||
|
@ -73,7 +73,7 @@
|
|||
the bottoms of both the <math|i> and <math|j> subscripts to (say)
|
||||
<verbatim|-0.3fn>. For easier adjustments you may use
|
||||
<menu|Format|Adjust|Smash> and <menu|Format|Adjust|Swell> to automatically
|
||||
adjust the size of the contents to the height of the character ``x'' and
|
||||
adjust the size of the contents to the height of the character \Px\Q and
|
||||
the largest one in the font respectively.
|
||||
|
||||
Notice that one should adjust by preference in a structural and not visual
|
||||
|
@ -81,7 +81,7 @@
|
|||
in the above example, because the second option disallows you to switch to
|
||||
another font size for your document. Similarly, you should try not change
|
||||
the semantics of the formula. For instance, in the above example, you might
|
||||
have added a ``dummy subscript'' to the <math|i> subscript of the sum.
|
||||
have added a \Pdummy subscript\Q to the <math|i> subscript of the sum.
|
||||
However, this would alter the meaning of the formula (whence make it non
|
||||
suitable as input to a computer algebra system) In the future, we plan to
|
||||
provide additional constructs in order to facilitate structural adjusting.
|
||||
|
@ -159,13 +159,14 @@
|
|||
<item>The horizontal middles of the numerator and the denominator are
|
||||
taken to be the same.
|
||||
|
||||
<item>The vertical spaces between the numerator resp. denominator and the
|
||||
fraction bar is at least <verbatim|sep>.
|
||||
<item>The vertical spaces between the numerator <abbr|resp.> denominator
|
||||
and the fraction bar is at least <verbatim|sep>.
|
||||
|
||||
<item>The depth (resp. height) of the numerator (resp. denominator) is
|
||||
descended (resp. increased) to <verbatim|y1> (resp. <verbatim|y2>) if
|
||||
necessary. This forces the base lines of not too large numerators resp.
|
||||
denominators to be the same in presence of multiple fractions.
|
||||
<item>The depth (<abbr|resp.> height) of the numerator (<abbr|resp.>
|
||||
denominator) is descended (<abbr|resp.> increased) to <verbatim|y1>
|
||||
(<abbr|resp.> <verbatim|y2>) if necessary. This forces the base lines of
|
||||
not too large numerators <abbr|resp.> denominators to be the same in
|
||||
presence of multiple fractions.
|
||||
|
||||
<item>The fraction bar has a overhang of <verbatim|sep/2> to both sides
|
||||
and the logical limits of the fraction are another <verbatim|sep/2>
|
||||
|
@ -187,9 +188,9 @@
|
|||
<item>The vertical space between the main argument and the upper bar is
|
||||
at least <verbatim|sep>.
|
||||
|
||||
<item>The root itself is typesetted like a large delimiter. The
|
||||
positioning of a potential script works only is very dependent on the
|
||||
usage of <TeX> fonts.
|
||||
<item>The root itself is typeset like a large delimiter. The positioning
|
||||
of a potential script works only is very dependent on the usage of <TeX>
|
||||
fonts.
|
||||
|
||||
<item>The upper bar has a overhang of <verbatim|sep/2> at the right and
|
||||
the logical right limit of the root is situated another <verbatim|sep/2>
|
||||
|
@ -224,7 +225,7 @@
|
|||
<verbatim|sep> (or a distance which depends on the <TeX> font for small
|
||||
accents).
|
||||
|
||||
<item>The accent is positioned horizintally according to the right slope
|
||||
<item>The accent is positioned horizontally according to the right slope
|
||||
of the main argument.
|
||||
|
||||
<item>The slopes for the accented box are inherited from those of the
|
||||
|
@ -300,7 +301,7 @@
|
|||
for large delimiters. This is an advantage from the point of view that it
|
||||
favorites delimiters around slightly different expressions to have the same
|
||||
baselines. However, it has the disadvantage that delimiters are easily made
|
||||
``one size to large''. For this reason, we actually diminish the height and
|
||||
\Pone size to large\Q. For this reason, we actually diminish the height and
|
||||
the depth of the delimited expression by the small amount <verbatim|sep>,
|
||||
before computing the sizes of the delimiters.
|
||||
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
<TeXmacs|1.0.0.17>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<expand|tmdoc-title|Basic data types>
|
||||
<tmdoc-title|Basic data types>
|
||||
|
||||
In this chapter, we give a rough description of <apply|TeXmacs>'s basic
|
||||
data types in <verbatim|Basic>. The description of the exported functions
|
||||
is non exhaustive and we refer to the corresponding header files for more
|
||||
In this chapter, we give a rough description of <TeXmacs>'s basic data
|
||||
types in <verbatim|Basic>. The description of the exported functions is non
|
||||
exhaustive and we refer to the corresponding header files for more
|
||||
precision.
|
||||
|
||||
<section|Memory allocation and data structures in TeXmacs>
|
||||
|
||||
The file <verbatim|fast_alloc.hpp> declares the <apply|TeXmacs> memory
|
||||
allocation routines. These routines are very fast for small sizes, since
|
||||
for each such size, <apply|TeXmacs> maintains a linked list of freed
|
||||
objects of that size. No garbage collection has been implemented yet.
|
||||
The file <verbatim|fast_alloc.hpp> declares the <TeXmacs> memory allocation
|
||||
routines. These routines are very fast for small sizes, since for each such
|
||||
size, <TeXmacs> maintains a linked list of freed objects of that size. No
|
||||
garbage collection has been implemented yet.
|
||||
|
||||
Modulo a few exceptions, all <apply|TeXmacs> composite data structures are
|
||||
based on the modules <verbatim|concrete>, <verbatim|abstract>,
|
||||
Modulo a few exceptions, all <TeXmacs> composite data structures are based
|
||||
on the modules <verbatim|concrete>, <verbatim|abstract>,
|
||||
<verbatim|concrete_null> and <verbatim|abstract_null>. Consequently, these
|
||||
data structures are pointers to representation classes, which may be
|
||||
abstract in the case of <verbatim|abstract> and <verbatim|abstract_null>,
|
||||
|
@ -36,7 +36,7 @@
|
|||
|
||||
<section|Array-like structures>
|
||||
|
||||
<apply|TeXmacs> implements three ``array-like'' structures:
|
||||
<TeXmacs> implements three \Parray-like\Q structures:
|
||||
|
||||
<\itemize>
|
||||
<item><verbatim|string> is the string type, which may contain '0'
|
||||
|
@ -75,7 +75,7 @@
|
|||
<section|Lists>
|
||||
|
||||
Generic lists are implemented by the class <verbatim|list\<less\>T\<gtr\>>.
|
||||
The ``nil'' list is created using <verbatim|list\<less\>T\<gtr\>()>, an
|
||||
The \Pnil\Q list is created using <verbatim|list\<less\>T\<gtr\>()>, an
|
||||
atom using <verbatim|list\<less\>T\<gtr\>(T x)> and a general list using
|
||||
<verbatim|list\<less\>T\<gtr\>(T x, list\<less\>T\<gtr\> next)>. If
|
||||
<verbatim|l> is a list, <verbatim|l-\<gtr\>item> and
|
||||
|
@ -86,7 +86,7 @@
|
|||
|
||||
The type <verbatim|list\<less\>T\<gtr\>> is also denoted by
|
||||
<verbatim|path>, because some additional functions are defined for it.
|
||||
Indeed, paths are used for accessing descendents in tree like structures.
|
||||
Indeed, paths are used for accessing descendants in tree like structures.
|
||||
For instance, we implemented the function <verbatim|tree subtree (tree t,
|
||||
path p)>.
|
||||
|
||||
|
@ -128,59 +128,15 @@
|
|||
<item><verbatim|timer> implements timers.
|
||||
</itemize>
|
||||
|
||||
<apply|tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
||||
<expand|tmdoc-license|Permission is granted to copy, distribute and/or
|
||||
modify this document under the terms of the GNU Free Documentation License,
|
||||
Version 1.1 or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the section entitled
|
||||
"GNU Free Documentation License".>
|
||||
<tmdoc-license|Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|paragraph width|150mm>
|
||||
<associate|odd page margin|30mm>
|
||||
<associate|shrinking factor|4>
|
||||
<associate|page right margin|30mm>
|
||||
<associate|page top margin|30mm>
|
||||
<associate|reduction page right margin|25mm>
|
||||
<associate|page type|a4>
|
||||
<associate|reduction page bottom margin|15mm>
|
||||
<associate|even page margin|30mm>
|
||||
<associate|reduction page left margin|25mm>
|
||||
<associate|page bottom margin|30mm>
|
||||
<associate|reduction page top margin|15mm>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
|
||||
<\references>
|
||||
<\collection>
|
||||
<associate|toc-5|<tuple|<uninit>|?>>
|
||||
<associate|toc-1|<tuple|<uninit>|?>>
|
||||
<associate|idx-1|<tuple|<uninit>|?>>
|
||||
<associate|idx-2|<tuple|<uninit>|?>>
|
||||
<associate|toc-2|<tuple|<uninit>|?>>
|
||||
<associate|toc-3|<tuple|<uninit>|?>>
|
||||
<associate|toc-4|<tuple|<uninit>|?>>
|
||||
</collection>
|
||||
</references>
|
||||
|
||||
<\auxiliary>
|
||||
<\collection>
|
||||
<\associate|toc>
|
||||
Memory allocation and data structures in
|
||||
TeXmacs<value|toc-dots><pageref|toc-1>
|
||||
|
||||
Array-like structures<value|toc-dots><pageref|toc-2>
|
||||
|
||||
Lists<value|toc-dots><pageref|toc-3>
|
||||
|
||||
Hash tables<value|toc-dots><pageref|toc-4>
|
||||
|
||||
Other data structures<value|toc-dots><pageref|toc-5>
|
||||
</associate>
|
||||
</collection>
|
||||
</auxiliary>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.7>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Animations>
|
||||
|
@ -37,13 +37,13 @@
|
|||
yellow>|<cwith|2|2|1|1|cell-tsep|0.5em>|<table|<row|<cell|<anim-progressive|<large|Hello<anim-progressive||2sec|<tuple|0.0|0.0|0.0|1.0>|>>|2sec|<tuple|0.0|0.0|0.0|1.0>|>>>|<row|<cell|<menu|Rightwards>>>>>><space|1em><tabular*|<tformat|<cwith|1|1|1|1|cell-lsep|0.5em>|<cwith|1|1|1|1|cell-rsep|0.5em>|<cwith|1|1|1|1|cell-bsep|0.5em>|<cwith|1|1|1|1|cell-tsep|0.5em>|<cwith|1|1|1|1|cell-background|pastel
|
||||
yellow>|<cwith|2|2|1|1|cell-tsep|0.5em>|<table|<row|<cell|<anim-progressive|<large|Hello>|2sec|<tuple|1.0|0.0|1.0|1.0>|>>>|<row|<cell|<menu|Leftwards>>>>>><space|1em><tabular*|<tformat|<cwith|1|1|1|1|cell-lsep|0.5em>|<cwith|1|1|1|1|cell-rsep|0.5em>|<cwith|1|1|1|1|cell-bsep|0.5em>|<cwith|1|1|1|1|cell-tsep|0.5em>|<cwith|1|1|1|1|cell-background|pastel
|
||||
yellow>|<cwith|2|2|1|1|cell-tsep|0.5em>|<table|<row|<cell|<anim-progressive|<large|Hello
|
||||
wo<anim-progressive||2sec|<tuple|0.0|0.0|0.0|1.0>|>rld>|2sec|<tuple|0.5|0.5|0.5|0.5>|>>>|<row|<cell|<menu|From
|
||||
world>|2sec|<tuple|0.5|0.5|0.5|0.5>|>>>|<row|<cell|<menu|From
|
||||
center>>>>>><space|1em><tabular*|<tformat|<cwith|1|1|1|1|cell-lsep|0.5em>|<cwith|1|1|1|1|cell-rsep|0.5em>|<cwith|1|1|1|1|cell-bsep|0.5em>|<cwith|1|1|1|1|cell-tsep|0.5em>|<cwith|1|1|1|1|cell-background|pastel
|
||||
yellow>|<cwith|2|2|1|1|cell-tsep|0.5em>|<table|<row|<cell|<anim-progressive|<large|Hello>|2sec|<tuple|0.0|0.0|1.0|0.0>|>>>|<row|<cell|<menu|Upwards>>>>>><space|1em><tabular*|<tformat|<cwith|1|1|1|1|cell-lsep|0.5em>|<cwith|1|1|1|1|cell-rsep|0.5em>|<cwith|1|1|1|1|cell-bsep|0.5em>|<cwith|1|1|1|1|cell-tsep|0.5em>|<cwith|1|1|1|1|cell-background|pastel
|
||||
yellow>|<cwith|2|2|1|1|cell-tsep|0.5em>|<table|<row|<cell|<anim-progressive|<large|Hello>|2sec|<tuple|0.0|1.0|1.0|1.0>|>>>|<row|<cell|<menu|Downwards>>>>>>|<label|progressive-fig>Progressive
|
||||
content, as inserted from <menu|Insert|Animation|Progressive>.>
|
||||
|
||||
Other basic animations are ``animated gif pictures'', which can be inserted
|
||||
Other basic animations are \Panimated gif pictures\Q, which can be inserted
|
||||
from <menu|Insert|Animation|Animation>, and sounds, which can be inserted
|
||||
from <menu|Insert|Animation|Sound>. Support for movies should be added
|
||||
later.
|
||||
|
@ -57,19 +57,18 @@
|
|||
animation can be repeated indefinitely using
|
||||
<menu|Insert|Animation|Repeat>. This may for instance be used to create a
|
||||
blinking effect. Some examples of the various possibilities can be found in
|
||||
figure<nbsp><reference|compose-fig>. <math|<rsub|>>
|
||||
figure<nbsp><reference|compose-fig>. <rsub|<math|>>
|
||||
|
||||
<big-figure|<tabular*|<tformat|<cwith|1|1|1|1|cell-lsep|0.5em>|<cwith|1|1|1|1|cell-rsep|0.5em>|<cwith|1|1|1|1|cell-bsep|0.5em>|<cwith|1|1|1|1|cell-tsep|0.5em>|<cwith|1|1|1|1|cell-background|pastel
|
||||
yellow>|<cwith|2|2|1|1|cell-tsep|0.5em>|<table|<row|<cell|<anim-compose|<anim-constant|<large|Hello>|2sec>|<anim-constant|<large|World>|2sec>>>>|<row|<cell|Compose>>>>><space|1em><tabular*|<tformat|<cwith|1|1|1|1|cell-lsep|0.5em>|<cwith|1|1|1|1|cell-rsep|0.5em>|<cwith|1|1|1|1|cell-bsep|0.5em>|<cwith|1|1|1|1|cell-tsep|0.5em>|<cwith|1|1|1|1|cell-background|pastel
|
||||
yellow>|<cwith|2|2|1|1|cell-tsep|0.5em>|<table|<row|<cell|<anim-repeat|<anim-compose|<anim-constant|<large|<space|0.6spc>Hello>|1sec>|<anim-constant|<large|World>|1sec>>>>>|<row|<cell|Blinking>>>>><space|1em><tabular*|<tformat|<cwith|1|1|1|1|cell-lsep|0.5em>|<cwith|1|1|1|1|cell-rsep|0.5em>|<cwith|1|1|1|1|cell-bsep|0.5em>|<cwith|1|1|1|1|cell-tsep|0.5em>|<cwith|1|1|1|1|cell-background|pastel
|
||||
yellow>|<cwith|2|2|1|1|cell-tsep|0.5em>|<table|<row|<cell|<large|<anim-repeat|<anim-compose|<anim-constant|<with|color|dark
|
||||
green|<with|color|brown|T<space|-0.2spc>><with|color|brown|<rsub|<with|math-level|0|font-shape|small-caps|e>>><with|color|brown|X<space|-0.2spc>><rsub|<with|math-level|0|font-shape|small-caps|m<space|-0.2spc>a<space|-0.4spc>c<space|-0.2spc>s>>>|1sec>|<anim-constant|<with|color|dark
|
||||
green|<with|color|dark green|T<space|-0.2spc>><rsub|<with|color|brown|<with|math-level|0|font-shape|small-caps|e>>><with|color|dark
|
||||
green|X<space|-0.2spc>><with|color|brown|<rsub|<with|math-level|0|font-shape|small-caps|m<space|-0.2spc>a<space|-0.4spc>c<space|-0.2spc>s>>>>|1sec>>>>>>|<row|<cell|<TeXmacs>
|
||||
yellow>|<cwith|2|2|1|1|cell-tsep|0.5em>|<table|<row|<cell|<large|<anim-repeat|<anim-compose|<anim-constant|<with|color|brown|T<space|-0.2spc><rsub|<with|math-level|0|font-shape|small-caps|e>>X<space|-0.2spc>><with|color|dark
|
||||
green|<rsub|<with|math-level|0|font-shape|small-caps|m<space|-0.2spc>a<space|-0.4spc>c<space|-0.2spc>s>>>|1sec>|<anim-constant|<with|color|dark
|
||||
green|T<space|-0.2spc><rsub|<with|color|brown|<with|math-level|0|font-shape|small-caps|e>>>X<space|-0.2spc>><with|color|brown|<rsub|<with|math-level|0|font-shape|small-caps|m<space|-0.2spc>a<space|-0.4spc>c<space|-0.2spc>s>>>|1sec>>>>>>|<row|<cell|<TeXmacs>
|
||||
logo>>>>><space|1em><tabular*|<tformat|<cwith|1|1|1|1|cell-lsep|0.5em>|<cwith|1|1|1|1|cell-rsep|0.5em>|<cwith|1|1|1|1|cell-bsep|0.5em>|<cwith|1|1|1|1|cell-tsep|0.5em>|<cwith|1|1|1|1|cell-background|pastel
|
||||
yellow>|<cwith|2|2|1|1|cell-tsep|0.5em>|<table|<row|<cell|<anim-repeat|<large|<name|<anim-compose|<anim-progressive|<with|color|dark
|
||||
green|Mathe<math|<rsub|>>>|2sec|<tuple|0.0|0.0|0.0|1.0>|><phantom|magiX>|<anim-constant|<with|color|dark
|
||||
green|Mathe<math|<rsub|>>><with|color|dark
|
||||
green|Mathe<rsub|<math|>>>|2sec|<tuple|0.0|0.0|0.0|1.0>|><phantom|magiX>|<anim-constant|<with|color|dark
|
||||
green|Mathe<rsub|<math|>>><with|color|dark
|
||||
magenta|magiX>|1sec>>>>>>>|<row|<cell|<name|Magix>
|
||||
animation>>>>>|<label|compose-fig>Different kinds of composed animations.>
|
||||
|
||||
|
@ -83,8 +82,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.6>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Notes for users of oriental languages>
|
||||
|
@ -8,9 +8,9 @@
|
|||
In order to type oriental languages, you first have to start a conversion
|
||||
server which can be used in combination with the X input method and set the
|
||||
environment variables accordingly. For instance, in the case of Japanese,
|
||||
one typically has to execute the folowing shell commands:
|
||||
one typically has to execute the following shell commands:
|
||||
|
||||
<\shell-fragment>
|
||||
<\shell-code>
|
||||
kinput2 &
|
||||
|
||||
export LANG="ja_JP.eucJP"
|
||||
|
@ -18,19 +18,20 @@
|
|||
export LC_ALL="ja_JP.eucJP"
|
||||
|
||||
export XMODIFIERS="@im=kinput2"
|
||||
</shell-fragment>
|
||||
</shell-code>
|
||||
|
||||
You also have to install Japanese fonts. For instance, you may download the
|
||||
ipag fonts <verbatim|ipam.ttf>, <verbatim|ipag.ttf>, <verbatim|ipamp.ttf>,
|
||||
<verbatim|ipagm.ttf> and <verbatim|ipagui.ttf> and copy them to
|
||||
<name|Ipag> fonts <verbatim|ipam.ttf>, <verbatim|ipag.ttf>,
|
||||
<verbatim|ipamp.ttf>, <verbatim|ipagm.ttf> and <verbatim|ipagui.ttf> and
|
||||
copy them to
|
||||
|
||||
<verbatim| \ \ \ ~/.TeXmacs/fonts/truetype>
|
||||
|
||||
After doing this, you may launch <TeXmacs> using
|
||||
|
||||
<\shell-fragment>
|
||||
<\shell-code>
|
||||
texmacs --delete-font-cache
|
||||
</shell-fragment>
|
||||
</shell-code>
|
||||
|
||||
and select <menu|Japanese> from the <icon|tm_language.xpm> icon on the
|
||||
first icon bar. If everything went allright, the menus should now show up
|
||||
|
@ -41,12 +42,12 @@
|
|||
<menu|Format|Language|Japanese>.
|
||||
|
||||
Inside a Japanese portion of text, and depending on your input method, you
|
||||
usually have to type<nbsp><key|S-space> in order to start Kana to
|
||||
Kanji conversion. A small window shows up where you can type phonetic
|
||||
characters and use <key|space> in order to start conversion to Kanji
|
||||
characters. When pressing <shortcut|(kbd-return)>, the text is inserted into the
|
||||
main <TeXmacs> window. Pressing <key|S-space> once again returns to
|
||||
the classical <TeXmacs> input method.
|
||||
usually have to type<nbsp><key|S-space> in order to start Kana to Kanji
|
||||
conversion. A small window shows up where you can type phonetic characters
|
||||
and use <key|space> in order to start conversion to Kanji characters. When
|
||||
pressing <shortcut|(kbd-return)>, the text is inserted into the main
|
||||
<TeXmacs> window. Pressing <key|S-space> once again returns to the
|
||||
classical <TeXmacs> input method.
|
||||
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
||||
|
@ -58,8 +59,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.6>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Notes for users of Cyrillic languages>
|
||||
|
@ -21,57 +21,56 @@
|
|||
<menu|Format|Language|Russian>.
|
||||
</itemize>
|
||||
|
||||
If your X server uses the xkb extension, and is instructed to switch
|
||||
If your X server uses the <name|Xkb> extension, and is instructed to switch
|
||||
between the Latin and Russian keyboard modes, you need not do anything
|
||||
special. Just switch your keyboard to the Russian mode, and go ahead. All
|
||||
the software needed for this is included in modern Linux distributions, and
|
||||
the xkb extension is enabled by default in
|
||||
<with|font-family|tt|XF86Config>. With the xkb extension, keysyms are
|
||||
2-byte, and Russian letters are at 0x6??. The keyboard is configured by
|
||||
<with|font-family|tt|setxkbmap>. When X starts, it issues this command with
|
||||
the system-wide <with|font-family|tt|Xkbmap> file (usually living in
|
||||
<with|font-family|tt|/etc/X11/xinit>), if it exists; and then with the
|
||||
user's <with|font-family|tt|~/.Xkbmap>, if it exists. A typical
|
||||
<with|font-family|tt|~/.Xkbmap> may look like
|
||||
the <name|Xkb> extension is enabled by default in <verbatim|XF86Config>.
|
||||
With the <name|Xkb> extension, keysyms are 2-byte, and Russian letters are
|
||||
at 0x6??. The keyboard is configured by <verbatim|setxkbmap>. When X
|
||||
starts, it issues this command with the system-wide <verbatim|Xkbmap> file
|
||||
(usually living in <verbatim|/etc/X11/xinit>), if it exists; and then with
|
||||
the user's <verbatim|~/.Xkbmap>, if it exists. A typical
|
||||
<verbatim|~/.Xkbmap> may look like
|
||||
|
||||
<verbatim| \ \ \ ru basic grp:shift_toggle>
|
||||
|
||||
This means that the keyboard mode is toggled by <render-key|l-shift
|
||||
r-shift>. Other popular choices are <prefix|C-S-> or <prefix|A-C->, see
|
||||
<with|font-family|tt|/usr/X11R6/lib/X11/xkb/> for more details. This is the
|
||||
preferred keyboard setup for modern Linux systems, if you plan to use
|
||||
Russian often.
|
||||
<verbatim|/usr/X11R6/lib/X11/xkb/> for more details. This is the preferred
|
||||
keyboard setup for modern Linux systems, if you plan to use Russian often.
|
||||
|
||||
In older Linux systems, the xkb extension is often disabled. Keysyms are
|
||||
1-byte, and are configured by <with|font-family|tt|xmodmap>. When X starts,
|
||||
it issues this command with the system-wide <with|font-family|tt|Xmodmap>
|
||||
(usually living in <with|font-family|tt|/etc/X11/xinit>), if it exists; and
|
||||
then with the user's <with|font-family|tt|~/.Xmodmap>, if it exists. You
|
||||
can configure the mode toggling key combination, and use a 1-byte Russian
|
||||
encoding (such as koi8-r) in the Russian mode. It is easier to download the
|
||||
package <with|font-family|tt|xruskb>, and just run
|
||||
In older Linux systems, the <name|Xkb> extension is often disabled. Keysyms
|
||||
are 1-byte, and are configured by <verbatim|xmodmap>. When X starts, it
|
||||
issues this command with the system-wide <verbatim|Xmodmap> (usually living
|
||||
in <verbatim|/etc/X11/xinit>), if it exists; and then with the user's
|
||||
<verbatim|~/.Xmodmap>, if it exists. You can configure the mode toggling
|
||||
key combination, and use a 1-byte Russian encoding (such as koi8-r) in the
|
||||
Russian mode. It is easier to download the package <verbatim|xruskb>, and
|
||||
just run
|
||||
|
||||
<verbatim| \ \ \ xrus jcuken-koi8>
|
||||
|
||||
at the beginning of your X session. This sets the layout jcuken (see below)
|
||||
and the encoding koi8-r for your keyboard in the Russian mode. If you use
|
||||
such keyboard setup, you should select Options
|
||||
<with|mode|math|\<rightarrow\>> international keyboard
|
||||
<with|mode|math|\<rightarrow\>> russian <with|mode|math|\<rightarrow\>>
|
||||
koi8-r.
|
||||
at the beginning of your X session. This sets the layout <verbatim|jcuken>
|
||||
(see below) and the encoding koi8-r for your keyboard in the Russian mode.
|
||||
If you use such keyboard setup, you should select Options
|
||||
<math|\<rightarrow\>> international keyboard <math|\<rightarrow\>> russian
|
||||
<math|\<rightarrow\>> koi8-r.
|
||||
|
||||
It is also possible to use the Windows cp1251 encoding instead of koi8-r,
|
||||
though this is rarely done in UNIX. If you do use <with|font-family|tt|xrus
|
||||
jcuken-cp1251>, select cp1251 instead of koi8-r.
|
||||
It is also possible to use the Windows <verbatim|cp1251> encoding instead
|
||||
of <verbatim|koi8-r>, though this is rarely done in UNIX. If you do use
|
||||
<verbatim|xrus jcuken-cp1251>, select <verbatim|cp1251> instead of
|
||||
<verbatim|koi8-r>.
|
||||
|
||||
All the methods described above require some special actions to ``russify''
|
||||
All the methods described above require some special actions to \Prussify\Q
|
||||
the keyboard. This is not difficult, see the Cyrillic-HOWTO or, better, its
|
||||
updated version
|
||||
|
||||
<verbatim|http://www.inp.nsk.su/<with|font-family|tt|~baldin/Cyrillic-HOWTO-russian/Cyrillic-HOWTO-russian.html>>
|
||||
<verbatim|http://www.inp.nsk.su/~baldin/Cyrillic-HOWTO-russian/Cyrillic-HOWTO-russian.html>
|
||||
|
||||
Also, all of the above methods globally affect all X applications: text
|
||||
editors (emacs, nedit, kedit...), xterms, <TeXmacs> etc.
|
||||
editors (<name|Emacs>, <name|Nedit>, <name|Kedit>...), xterms, <TeXmacs>
|
||||
etc.
|
||||
|
||||
If you need to type Russian only once, or very rarely, a proper keyboard
|
||||
setup may be more trouble than it's worth. For the benefit of such
|
||||
|
@ -81,57 +80,58 @@
|
|||
|
||||
The simplest way to type some Russian on the standard US-style keyboard
|
||||
with no software setup is to select <menu|Edit|Preferences|Keyboard|Cyrillic
|
||||
input method|translit>. Then, typing a Latin letter will produce ``the most
|
||||
similar'' Russian one. In order to get some Russian letters, you have to
|
||||
input method|translit>. Then, typing a Latin letter will produce \Pthe most
|
||||
similar\Q Russian one. In order to get some Russian letters, you have to
|
||||
type 2- or 3-letter combinations:<vspace|0.5fn>
|
||||
|
||||
<big-table|<descriptive-table|<tformat|<cwith|2|11|1|1|cell-halign|l>|<cwith|2|11|2|2|cell-halign|l>|<cwith|2|11|2|2|cell-halign|c>|<cwith|2|11|4|4|cell-halign|l>|<cwith|2|11|4|4|cell-halign|c>|<table|<row|<cell|Shorthand>|<cell|for>|<cell|Shorthand(s)>|<cell|for>>|<row|<cell|<key|text
|
||||
" e>>|<cell|<with|language|russian|font|cyrillic|¼>>|<cell|<key|accent:umlaut
|
||||
E>>|<cell|<with|language|russian|font|cyrillic|œ>>>|<row|<cell|<key|y
|
||||
o>>|<cell|<with|language|russian|font|cyrillic|¼>>|<cell|<key|Y o> <key|Y
|
||||
O>>|<cell|<with|language|russian|font|cyrillic|œ>>>|<row|<cell|<key|z
|
||||
h>>|<cell|<with|language|russian|font|cyrillic|æ>>|<cell|<key|Z h> <key|Z
|
||||
H>>|<cell|<with|language|russian|font|cyrillic|Æ>>>|<row|<cell|<key|j
|
||||
var>>|<cell|<with|language|russian|font|cyrillic|æ>>|<cell|<key|J
|
||||
var>>|<cell|<with|language|russian|font|cyrillic|Æ>>>|<row|<cell|<key|c
|
||||
h>>|<cell|<with|language|russian|font|cyrillic|÷>>|<cell|<key|C h> <key|C
|
||||
H>>|<cell|<with|language|russian|font|cyrillic|×>>>|<row|<cell|<key|s
|
||||
h>>|<cell|<with|language|russian|font|cyrillic|ø>>|<cell|<key|S h> <key|S
|
||||
H>>|<cell|<with|language|russian|font|cyrillic|Ø>>>|<row|<cell|<key|s c
|
||||
h>>|<cell|<with|language|russian|font|cyrillic|ù>>|<cell|<key|S c h> <key|S
|
||||
C H>>|<cell|<with|language|russian|font|cyrillic|Ù>>>|<row|<cell|<key|e
|
||||
var>>|<cell|<with|language|russian|font|cyrillic|ý>>|<cell|<key|E
|
||||
var>>|<cell|<with|language|russian|font|cyrillic|Ý>>>|<row|<cell|<key|y
|
||||
u>>|<cell|<with|language|russian|font|cyrillic|þ>>|<cell|<key|Y u> <key|Y
|
||||
U>>|<cell|<with|language|russian|font|cyrillic|Þ>>>|<row|<cell|<key|y
|
||||
a>>|<cell|<with|language|russian|font|cyrillic|ÿ>>|<cell|<key|Y a> <key|Y
|
||||
A>>|<cell|<with|language|russian|font|cyrillic|ß>>>>>>|Typing Cyrillic text
|
||||
on a Roman keyboard.>
|
||||
" e>>|<cell|<with|language|russian|font|cyrillic|\<#451\>>>|<cell|<key|accent:umlaut
|
||||
E>>|<cell|<with|language|russian|font|cyrillic|\<#401\>>>>|<row|<cell|<key|y
|
||||
o>>|<cell|<with|language|russian|font|cyrillic|\<#451\>>>|<cell|<key|Y o>
|
||||
<key|Y O>>|<cell|<with|language|russian|font|cyrillic|\<#401\>>>>|<row|<cell|<key|z
|
||||
h>>|<cell|<with|language|russian|font|cyrillic|\<#436\>>>|<cell|<key|Z h>
|
||||
<key|Z H>>|<cell|<with|language|russian|font|cyrillic|\<#416\>>>>|<row|<cell|<key|j
|
||||
var>>|<cell|<with|language|russian|font|cyrillic|\<#436\>>>|<cell|<key|J
|
||||
var>>|<cell|<with|language|russian|font|cyrillic|\<#416\>>>>|<row|<cell|<key|c
|
||||
h>>|<cell|<with|language|russian|font|cyrillic|\<#447\>>>|<cell|<key|C h>
|
||||
<key|C H>>|<cell|<with|language|russian|font|cyrillic|\<#427\>>>>|<row|<cell|<key|s
|
||||
h>>|<cell|<with|language|russian|font|cyrillic|\<#448\>>>|<cell|<key|S h>
|
||||
<key|S H>>|<cell|<with|language|russian|font|cyrillic|\<#428\>>>>|<row|<cell|<key|s
|
||||
c h>>|<cell|<with|language|russian|font|cyrillic|\<#449\>>>|<cell|<key|S c
|
||||
h> <key|S C H>>|<cell|<with|language|russian|font|cyrillic|\<#429\>>>>|<row|<cell|<key|e
|
||||
var>>|<cell|<with|language|russian|font|cyrillic|\<#44D\>>>|<cell|<key|E
|
||||
var>>|<cell|<with|language|russian|font|cyrillic|\<#42D\>>>>|<row|<cell|<key|y
|
||||
u>>|<cell|<with|language|russian|font|cyrillic|\<#44E\>>>|<cell|<key|Y u>
|
||||
<key|Y U>>|<cell|<with|language|russian|font|cyrillic|\<#42E\>>>>|<row|<cell|<key|y
|
||||
a>>|<cell|<with|language|russian|font|cyrillic|\<#44F\>>>|<cell|<key|Y a>
|
||||
<key|Y A>>|<cell|<with|language|russian|font|cyrillic|\<#42F\>>>>>>>|Typing
|
||||
Cyrillic text on a Roman keyboard.>
|
||||
|
||||
If you want to get, e.g., ``<with|language|russian|font|cyrillic|ñõ>'', and
|
||||
not ``<with|language|russian|font|cyrillic|ø>'', you have to type <key|s /
|
||||
h>. Of course, the choice of ``optimal'' mapping of Latin letters to
|
||||
Russian ones in not unique. You can investigate the mapping supplied with
|
||||
<TeXmacs> and, if you don't like something, override it in your
|
||||
<with|font-family|tt|~/.TeXmacs/progs/my-init-texmacs.scm>.
|
||||
If you want to get, e.g., \P<with|language|russian|font|cyrillic|\<#441\>\<#445\>>\Q,
|
||||
and not \P<with|language|russian|font|cyrillic|\<#448\>>\Q, you have to
|
||||
type <key|s / h>. Of course, the choice of \Poptimal\Q mapping of Latin
|
||||
letters to Russian ones in not unique. You can investigate the mapping
|
||||
supplied with <TeXmacs> and, if you don't like something, override it in
|
||||
your <verbatim|~/.TeXmacs/progs/my-init-texmacs.scm>.
|
||||
|
||||
If you select jcuken instead of translit, you get the ``official'' Russian
|
||||
typewriter layout. It is so called because the keys ``qwerty'' produce
|
||||
``<with|language|russian|<with|font|cyrillic|éöóêåí>''. This input method
|
||||
is most useful> when you have a Russian-made keyboard, which has additional
|
||||
Russian letters written on the key caps in red, in the jcuken layout (a
|
||||
similar effect can be achieved by attaching transparent stickers with red
|
||||
Russian letters to caps of a US-style keyboard). It is also useful if you
|
||||
are an experienced Russian typist, and your fingers remember this layout.
|
||||
If you select <verbatim|jcuken> instead of <verbatim|translit>, you get the
|
||||
\Pofficial\Q Russian typewriter layout. It is so called because the keys
|
||||
\Pqwerty\Q produce \P<with|language|russian|<with|font|cyrillic|\<#439\>\<#446\>\<#443\>\<#43A\>\<#435\>\<#43D\>>\Q>.
|
||||
This input method is most useful when you have a Russian-made keyboard,
|
||||
which has additional Russian letters written on the key caps in red, in the
|
||||
<verbatim|jcuken> layout (a similar effect can be achieved by attaching
|
||||
transparent stickers with red Russian letters to caps of a US-style
|
||||
keyboard). It is also useful if you are an experienced Russian typist, and
|
||||
your fingers remember this layout.
|
||||
|
||||
Those who have no Russian letters indicated at the key caps often prefer
|
||||
the yawerty layout, where the keys ``qwerty'' produce
|
||||
``<with|language|russian|font|cyrillic|ÿâåðòû''. Each Latin letter is
|
||||
mapped into a ``similar'' Russian one; some additional Russian letters are
|
||||
produced by ><prefix|S->-digits. <TeXmacs> comes with a slightly modified
|
||||
yawerty layout, because it does not redefine the keys <key|$>,
|
||||
<render-key|¿>, <key|\\>, which are important for <TeXmacs>, are not
|
||||
redefined. The corresponding Russian letters are produced by some
|
||||
the yawerty layout, where the keys \Pqwerty\Q produce
|
||||
\P<with|language|russian|font|cyrillic|\<#44F\>\<#432\>\<#435\>\<#440\>\<#442\>\<#44B\>\Q>.
|
||||
Each Latin letter is mapped into a \Psimilar\Q Russian one; some additional
|
||||
Russian letters are produced by <prefix|S->-digits. <TeXmacs> comes with a
|
||||
slightly modified yawerty layout, because it does not redefine the keys
|
||||
<key|$>, <render-key|¿>, <key|\\>, which are important for <TeXmacs>, are
|
||||
not redefined. The corresponding Russian letters are produced by some
|
||||
<prefix|S->-digit combinations instead.
|
||||
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
@ -144,8 +144,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,9 +1,9 @@
|
|||
<TeXmacs|1.0.7.12>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Converters for Html and MathML>
|
||||
<tmdoc-title|Converters for <name|Html> and <name|MathML>>
|
||||
|
||||
<paragraph|<name|Html generation>>
|
||||
|
||||
|
@ -103,8 +103,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.5.10>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Introduction>
|
||||
|
@ -36,7 +36,7 @@
|
|||
is already true that many features in <TeXmacs> admit no direct analogues
|
||||
in <TeX>/<LaTeX> or one of its packages. This is for instance the case for
|
||||
computer algebra sessions, folding, actions, graphics and presentations,
|
||||
but also for certain typsetting constructs, like vertical alignment and
|
||||
but also for certain typesetting constructs, like vertical alignment and
|
||||
background filling in tables. When using such additional features, you
|
||||
should be prepared that they will not be converted correctly to <LaTeX>.
|
||||
|
||||
|
@ -56,8 +56,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.21>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Conversion from <LaTeX> to <TeXmacs>>
|
||||
|
@ -13,7 +13,7 @@
|
|||
<TeXmacs> is more problematic than conversions the other way around. As
|
||||
long as you restrict yourself to using the most common <LaTeX> commands,
|
||||
the conversion process should not give rise to any major difficulties.
|
||||
However, as soon as your documents contain ``weird <TeX> primitives''
|
||||
However, as soon as your documents contain \Pweird <TeX> primitives\Q
|
||||
(think about <verbatim|\\csname>...), then the converter may get confused.
|
||||
We also notice that <TeXmacs> is currently unable to convert <LaTeX> style
|
||||
files and no plans exist to enhance the converter in this direction.
|
||||
|
@ -24,8 +24,8 @@
|
|||
construct. This typically happens in presence of catcodes or uncommon
|
||||
styles of macro definitions. Sometimes, the parser may also be mistaken
|
||||
about the current mode, in which case text gets parsed as a mathematical
|
||||
formula or <em|vice cersa>. In both cases, the imported document usually
|
||||
becomes ``weird'' at a certain point. In order to solve the problem, we
|
||||
formula or <em|vice versa>. In both cases, the imported document usually
|
||||
becomes \Pweird\Q at a certain point. In order to solve the problem, we
|
||||
suggest you to identify the corresponding point in the <LaTeX> source file
|
||||
and to make an appropriate change which avoids the parser of getting
|
||||
confused.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.2>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Conversion from <TeXmacs> to <LaTeX>>
|
||||
|
@ -107,7 +107,7 @@
|
|||
don't need the <verbatim|inputenc> package).
|
||||
|
||||
<item*|Ascii>This will generate pure <name|ascii> characters, using
|
||||
plain <TeX> sequencies to compose non-<name|ascii> symbols.
|
||||
plain <TeX> sequences to compose non-<name|ascii> symbols.
|
||||
</description>
|
||||
</description-long>
|
||||
|
||||
|
@ -122,15 +122,15 @@
|
|||
<menu|Format|Specific|Latex>, you may force certain document fragments to
|
||||
appear only in the source file or the <LaTeX> target.
|
||||
|
||||
For instance, assume that the word ``blauwbilgorgel'' is hyphenated
|
||||
For instance, assume that the word \Pblauwbilgorgel\Q is hyphenated
|
||||
correctly in the <TeXmacs> source, but not in the <LaTeX> conversion. Then
|
||||
you may proceed as follows:
|
||||
|
||||
<\enumerate>
|
||||
<item>Select ``blauwbilgorgel''.
|
||||
<item>Select \Pblauwbilgorgel\Q.
|
||||
|
||||
<item>Click on <menu|Format|Specific|Texmacs> to make the text
|
||||
``blauwbilgorgel'' <TeXmacs>-specific.
|
||||
\Pblauwbilgorgel\Q <TeXmacs>-specific.
|
||||
|
||||
<item>Click on <menu|Format|Specific|Latex>.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.1>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<with|font-shape|italic|><tmdoc-title|Adding new data formats and
|
||||
|
@ -12,7 +12,7 @@
|
|||
<verbatim|~/.TeXmacs/progs/my-init-texmacs.scm> or a dedicated plug-in.
|
||||
Some examples may be found in the directory
|
||||
<verbatim|$TEXMACS_PATH/progs/convert>, like
|
||||
<hlink|init-html.scm|$TEXMACS_PATH/progs/convert/html/init-html.scm>.
|
||||
<hlink|<verbatim|init-html.scm>|$TEXMACS_PATH/progs/convert/html/init-html.scm>.
|
||||
|
||||
<paragraph*|Declaring new formats>
|
||||
|
||||
|
@ -101,7 +101,7 @@
|
|||
using a shortest path algorithm. In other words, if you have a converter
|
||||
from <math|x> to <math|y> and a converter from <math|y> to <math|z>, then
|
||||
you will automatically have a converter from <math|x> to <math|z>. A
|
||||
``distance between two formats via a given converter'' may be specified
|
||||
\Pdistance between two formats via a given converter\Q may be specified
|
||||
using
|
||||
|
||||
<\scm-code>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.5>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Structured cursor movement>
|
||||
|
@ -17,7 +17,7 @@
|
|||
</enumerate>
|
||||
|
||||
Most keyboard shortcuts for structured cursor movements can be used in
|
||||
combination with the<nbsp><prefix|S-><nbhyph>key so as to similtaneously
|
||||
combination with the<nbsp><prefix|S-><nbhyph>key so as to simultaneously
|
||||
select text while moving around.
|
||||
|
||||
<paragraph*|Structured traversal of the document>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.5>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english|pari>>
|
||||
<style|<tuple|tmdoc|english|pari|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Structured variants>
|
||||
|
@ -18,7 +18,7 @@
|
|||
finally back into a theorem. The <shortcut|(variant-circulate (focus-tree)
|
||||
#f)> key allows you to cycle in the reverse direction:
|
||||
theorem<nbsp><math|<op|\<rightarrow\>>>
|
||||
conjectur<nbsp><math|<op|\<rightarrow\>>>
|
||||
conjecture<nbsp><math|<op|\<rightarrow\>>>
|
||||
corollary<nbsp><math|<op|\<rightarrow\>>>
|
||||
lemma<nbsp><math|<op|\<rightarrow\>>> proposition<nbsp><math|<op|\<rightarrow\>>>
|
||||
theorem.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.14>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Specification of style properties>
|
||||
|
@ -67,7 +67,7 @@
|
|||
</big-figure>
|
||||
|
||||
<paragraph|Text alignment>For textual and mathematical boxes, its is
|
||||
possible to specifiy the horizontal and vertical alignement properties, as
|
||||
possible to specify the horizontal and vertical alignment properties, as
|
||||
indicated in the figure below:
|
||||
|
||||
<\big-figure|<with|gr-mode|<tuple|edit|line>|gr-frame|<tuple|scale|1cm|<tuple|0.420008gw|0.5gh>>|gr-geometry|<tuple|geometry|1par|0.6par>|gr-grid|<tuple|empty>|gr-grid-old|<tuple|cartesian|<point|0|0>|1>|gr-edit-grid-aspect|<tuple|<tuple|axes|none>|<tuple|1|none>|<tuple|10|none>>|gr-edit-grid|<tuple|empty>|gr-edit-grid-old|<tuple|cartesian|<point|0|0>|1>|gr-line-width|2ln|gr-text-at-halign|center|gr-text-at-valign|top|gr-auto-crop|true|<graphics||<with|color|light
|
||||
|
@ -93,8 +93,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,13 +1,13 @@
|
|||
<TeXmacs|1.99.2>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Plug-ins as scripting languages>
|
||||
|
||||
<TeXmacs> provides a few other kinds of additional interfaces to external
|
||||
systems in addition to shell-like interfaces. First of all, it is possible
|
||||
to insert a so called ``executable switch'' anywhere in the document using
|
||||
to insert a so called \Pexecutable switch\Q anywhere in the document using
|
||||
<menu|Insert|Fold|Executable>.
|
||||
|
||||
For instance, if <name|Maxima> is installed on your system, then
|
||||
|
@ -41,7 +41,7 @@
|
|||
the input by pressing <key|return> once more.
|
||||
|
||||
Contrary to executable switches, you may attach an identifier to the
|
||||
executable input field by disactivating the field or by editing the
|
||||
executable input field by deactivating the field or by editing the
|
||||
<samp|Ref> field in the focus bar. Inside other executable input fields,
|
||||
you may then refer to the value of the field by inserting a <em|field
|
||||
reference> using <shortcut|(make 'calc-ref)> or <menu|Insert|Link|Field
|
||||
|
@ -52,7 +52,7 @@
|
|||
other fields which depend on it.
|
||||
|
||||
<\example>
|
||||
The excutable input fields may for instance be nice in pedagogic
|
||||
The executable input fields may for instance be nice in pedagogic
|
||||
documents in which parts of the document may be modified and recomputed
|
||||
by the reader. For instance, evaluation of the input fragment
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.16>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Selecting the input method>
|
||||
|
@ -23,8 +23,8 @@
|
|||
<subsubmenu|Session|Input|Mathematical input> mode: for instance the key
|
||||
<key|$> is usually redefined inside math mode, so if you want to input it
|
||||
you'll have to type <key|S-F5><key|$>. You can read more about the prefix
|
||||
key <key|S-F5> in ``<hlink|Keyboard shortcuts fot text
|
||||
mode|../text/keyboard/man-text-kbd.en.tm>''.
|
||||
key <key|S-F5> in \P<hlink|Keyboard shortcuts for text
|
||||
mode|../text/keyboard/man-text-kbd.en.tm>\Q.
|
||||
|
||||
<\example>
|
||||
Below, you will find the <hlink|previous example
|
||||
|
@ -86,8 +86,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.15>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Spreadsheets>
|
||||
|
@ -83,7 +83,7 @@
|
|||
Inversely, each spreadsheet also carries an invisible <samp|Ref> field
|
||||
which can be edited by deactivating the spreadsheet or from the focus bar
|
||||
(when selecting the entire spreadsheet). The <samp|Ref> field of the
|
||||
spreadsheet is used as a prefix for refering to the contents of cells
|
||||
spreadsheet is used as a prefix for referring to the contents of cells
|
||||
outside the table or from within other spreadsheets. For instance, if
|
||||
<samp|Ref> equals <samp|sheet>, then <samp|sheet-c4> will refer to the
|
||||
field <samp|c4> inside the spreadsheet.
|
||||
|
@ -98,8 +98,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.99.3>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Floating objects>
|
||||
|
@ -11,10 +11,10 @@
|
|||
<menu|Insert|Note|Floating object>.
|
||||
|
||||
You may also create a floating object and directly insert a figure or table
|
||||
inside it using <menu|Insert|Note|Floating figure> resp.
|
||||
inside it using <menu|Insert|Note|Floating figure> <abbr|resp.>
|
||||
<menu|Insert|Note|Floating table>. However, sometimes you might want to
|
||||
insert several smaller figures or tables inside one floating object. You
|
||||
may do this using <menu|Insert|Image|Small figure> resp.
|
||||
may do this using <menu|Insert|Image|Small figure> <abbr|resp.>
|
||||
<menu|Insert|Table|Small table>.
|
||||
|
||||
After creating a floating object, you may control its position using
|
||||
|
|
|
@ -1,41 +1,26 @@
|
|||
<TeXmacs|1.0.0.8>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<expand|tmdoc-title|Compiling a glossary>
|
||||
<tmdoc-title|Compiling a glossary>
|
||||
|
||||
Glossaries are compiled in a similar way as indexes, but the entries are
|
||||
not sorted. A ``regular'' glossary entry just contains some text and a page
|
||||
number will be generated for it. An ``explained'' glossary entry contains a
|
||||
second argument, which explains the notation. A ``duplicate'' entry may be
|
||||
used to create a page number for the second occurence of an entry. A
|
||||
not sorted. A \Pregular\Q glossary entry just contains some text and a page
|
||||
number will be generated for it. An \Pexplained\Q glossary entry contains a
|
||||
second argument, which explains the notation. A \Pduplicate\Q entry may be
|
||||
used to create a page number for the second occurrence of an entry. A
|
||||
glossary line creates an entry without a page number.
|
||||
|
||||
<apply|tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
||||
<expand|tmdoc-license|Permission is granted to copy, distribute and/or
|
||||
modify this document under the terms of the GNU Free Documentation License,
|
||||
Version 1.1 or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the section entitled
|
||||
"GNU Free Documentation License".>
|
||||
<tmdoc-license|Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|paragraph width|150mm>
|
||||
<associate|odd page margin|30mm>
|
||||
<associate|shrinking factor|4>
|
||||
<associate|page right margin|30mm>
|
||||
<associate|page top margin|30mm>
|
||||
<associate|reduction page right margin|25mm>
|
||||
<associate|page type|a4>
|
||||
<associate|reduction page bottom margin|15mm>
|
||||
<associate|even page margin|30mm>
|
||||
<associate|reduction page left margin|25mm>
|
||||
<associate|page bottom margin|30mm>
|
||||
<associate|reduction page top margin|15mm>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.7>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Inserting images>
|
||||
|
@ -9,9 +9,9 @@
|
|||
Currently, <TeXmacs> recognizes the <verbatim|ps>, <verbatim|eps>,
|
||||
<verbatim|tif>, <verbatim|pdf>, <verbatim|pdm>, <verbatim|gif>,
|
||||
<verbatim|ppm>, <verbatim|xpm> and <verbatim|fig> file formats. Here,
|
||||
<verbatim|gs> (i.e. ghostscript) is used to render postscript images. If
|
||||
ghostscript has not yet been installed on your system, you can download
|
||||
this package from\
|
||||
<verbatim|gs> (i.e. <name|Ghostscript>) is used to render postscript
|
||||
images. If <name|Ghostscript> has not yet been installed on your system,
|
||||
you can download this package from\
|
||||
|
||||
<\verbatim>
|
||||
\ \ \ \ www.cs.wisc.edu/~ghost/index.html
|
||||
|
@ -61,8 +61,5 @@
|
|||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.17>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Entering titles and abstracts>
|
||||
|
@ -95,7 +95,7 @@
|
|||
</explain>
|
||||
|
||||
<\explain|<explain-macro|author-note|note>>
|
||||
A miscellanous <src-arg|note> attached to the author, like a thank-word.
|
||||
A miscellaneous <src-arg|note> attached to the author, like a thank-word.
|
||||
</explain>
|
||||
|
||||
As a general rule, the use of any of the subtags of <markup|doc-data> or
|
||||
|
@ -115,4 +115,7 @@
|
|||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,6 +1,6 @@
|
|||
<TeXmacs|1.0.7.20>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|<tuple|tmdoc|english>>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<tmdoc-title|Standard markup>
|
||||
|
@ -196,7 +196,7 @@
|
|||
Centered tables with a border of standard <verbatim|1ln> width.
|
||||
</explain>
|
||||
|
||||
The folowing tags are used to adjust the typesetting of content whenever
|
||||
The following tags are used to adjust the typesetting of content whenever
|
||||
necessary:
|
||||
|
||||
<\explain>
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<TeXmacs|1.0.0.17>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<expand|tmdoc-title|Advanced table features>
|
||||
<tmdoc-title|Advanced table features>
|
||||
|
||||
In the menus, you also find some other more special features for tables.
|
||||
Very briefly, these include the following:
|
||||
|
||||
<\itemize>
|
||||
<item>Change the ``span'' of a cell and let it run over its neighbouring
|
||||
<item>Change the \Pspan\Q of a cell and let it run over its neighbouring
|
||||
cells on its right and below.
|
||||
|
||||
<item>Creation of entire subtables inside cells.
|
||||
|
@ -21,11 +21,11 @@
|
|||
the entire table.
|
||||
|
||||
<item>Gluing several rows and/or columns together, so that the glued
|
||||
cells become ``part of the borders'' of the remaining cells.
|
||||
cells become \Ppart of the borders\Q of the remaining cells.
|
||||
|
||||
<item>Disactivation of the table, in order to see its ``source code''.
|
||||
<item>Deactivation of the table, in order to see its \Psource code\Q.
|
||||
|
||||
<item>Setting the ``extension center'' of a table. From now on, the
|
||||
<item>Setting the \Pextension center\Q of a table. From now on, the
|
||||
formatting properties of this cell will be used for new cells created
|
||||
around this center.
|
||||
|
||||
|
@ -36,33 +36,18 @@
|
|||
|
||||
Currently, all tables come inside an environment like <markup|tabular>,
|
||||
<markup|block>, <markup|matrix>, etc. When creating your own table macros,
|
||||
you may use <apply|menu|Table|Special table properties|Extract format> to
|
||||
extract the format from a given table.
|
||||
you may use <menu|Table|Special table properties|Extract format> to extract
|
||||
the format from a given table.
|
||||
|
||||
<apply|tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
||||
<expand|tmdoc-license|Permission is granted to copy, distribute and/or
|
||||
modify this document under the terms of the GNU Free Documentation License,
|
||||
Version 1.1 or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the section entitled
|
||||
"GNU Free Documentation License".>
|
||||
<tmdoc-license|Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|paragraph width|150mm>
|
||||
<associate|odd page margin|30mm>
|
||||
<associate|shrinking factor|4>
|
||||
<associate|page right margin|30mm>
|
||||
<associate|page top margin|30mm>
|
||||
<associate|reduction page right margin|25mm>
|
||||
<associate|page type|a4>
|
||||
<associate|reduction page bottom margin|15mm>
|
||||
<associate|even page margin|30mm>
|
||||
<associate|reduction page left margin|25mm>
|
||||
<associate|page bottom margin|30mm>
|
||||
<associate|reduction page top margin|15mm>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,57 +1,40 @@
|
|||
<TeXmacs|1.0.0.17>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<expand|tmdoc-title|Specifying the cell and table alignment>
|
||||
<tmdoc-title|Specifying the cell and table alignment>
|
||||
|
||||
The most frequent formatting operation is the horizontal or vertical
|
||||
alignment of a block of cells. You may use the
|
||||
<shortcut|(positioning-left)>,
|
||||
<shortcut|(positioning-right)>,
|
||||
<shortcut|(positioning-up)> and
|
||||
<shortcut|(positioning-down)> keystrokes to quickly align more to
|
||||
the left, right, top or bottom.
|
||||
<shortcut|(positioning-left)>, <shortcut|(positioning-right)>,
|
||||
<shortcut|(positioning-up)> and <shortcut|(positioning-down)> keystrokes to
|
||||
quickly align more to the left, right, top or bottom.
|
||||
|
||||
A specific alignment can also be selected in the
|
||||
<apply|menu|Table|Horizontal cell alignment> and <apply|menu|Table|Vertical
|
||||
cell alignment> menus. Alternatively, you may use keyboard shorthands of
|
||||
the types <key|table h><render-key|<with|mode|math|x>> and <key|table v
|
||||
><render-key|<with|mode|math|x>> for horizontal resp. vertical alignment.
|
||||
A specific alignment can also be selected in the <menu|Table|Horizontal
|
||||
cell alignment> and <menu|Table|Vertical cell alignment> menus.
|
||||
Alternatively, you may use keyboard shorthands of the types <key|table
|
||||
h><render-key|<math|x>> and <key|table v ><render-key|<math|x>> for
|
||||
horizontal <abbr|resp.> vertical alignment.
|
||||
|
||||
Similarly, you may specify how the table itself should be aligned with
|
||||
respect to the surrounding text. This is either done via the
|
||||
<apply|menu|Table|Horizontal table alignment> and
|
||||
<apply|menu|Table|Vertical table alignment> submenus, or using keyboard
|
||||
shorthands of the form <key|table H><render-key|<with|mode|math|x>> or
|
||||
<key|table V><render-key|<with|mode|math|x>>. Here <render-key|<with|mode|math|x>>
|
||||
represents <key|l> for ``left'', <key|c> for ``centered'', <key|r> for
|
||||
``right'', <key|b> for ``bottom'' and <key|t> for ``top''.
|
||||
<menu|Table|Horizontal table alignment> and <menu|Table|Vertical table
|
||||
alignment> submenus, or using keyboard shorthands of the form <key|table
|
||||
H><render-key|<math|x>> or <key|table V><render-key|<math|x>>. Here
|
||||
<render-key|<math|x>> represents <key|l> for \Pleft\Q, <key|c> for
|
||||
\Pcentered\Q, <key|r> for \Pright\Q, <key|b> for \Pbottom\Q and <key|t> for
|
||||
\Ptop\Q.
|
||||
|
||||
<apply|tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
||||
<expand|tmdoc-license|Permission is granted to copy, distribute and/or
|
||||
modify this document under the terms of the GNU Free Documentation License,
|
||||
Version 1.1 or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the section entitled
|
||||
"GNU Free Documentation License".>
|
||||
<tmdoc-license|Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|paragraph width|150mm>
|
||||
<associate|odd page margin|30mm>
|
||||
<associate|shrinking factor|4>
|
||||
<associate|page right margin|30mm>
|
||||
<associate|page top margin|30mm>
|
||||
<associate|reduction page right margin|25mm>
|
||||
<associate|page type|a4>
|
||||
<associate|reduction page bottom margin|15mm>
|
||||
<associate|even page margin|30mm>
|
||||
<associate|reduction page left margin|25mm>
|
||||
<associate|page bottom margin|30mm>
|
||||
<associate|reduction page top margin|15mm>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
|
@ -1,61 +1,46 @@
|
|||
<TeXmacs|1.0.0.5>
|
||||
<TeXmacs|1.99.8>
|
||||
|
||||
<style|tmdoc>
|
||||
<style|<tuple|tmdoc|english|old-spacing>>
|
||||
|
||||
<\body>
|
||||
<expand|tmdoc-title|Specifying the cell and table size>
|
||||
<tmdoc-title|Specifying the cell and table size>
|
||||
|
||||
Using <subsubmenu|Table|cell width|set width> resp. <subsubmenu|Table|cell
|
||||
height|set height> you may specify the width or height of a cell. In fact,
|
||||
Using <menu|Table|Cell width|Set width> <abbr|resp.> <menu|Table|Cell
|
||||
height|Set height> you may specify the width or height of a cell. In fact,
|
||||
the specified width (or height) may be taken into account in three
|
||||
different ways:
|
||||
|
||||
<\description>
|
||||
<expand|item*|Minimum mode.>The actual width of the cell will be the
|
||||
minimum of the specified width and the width of the box inside the cell.
|
||||
<item*|Minimum mode>The actual width of the cell will be the minimum of
|
||||
the specified width and the width of the box inside the cell.
|
||||
|
||||
<expand|item*|Exact mode.>The width of the cell will be precisely the
|
||||
specified one.
|
||||
<item*|Exact mode>The width of the cell will be precisely the specified
|
||||
one.
|
||||
|
||||
<expand|item*|Maximum mode.>The actual width of the cell will be the
|
||||
maximum of the specified width and the width of the box inside the cell.
|
||||
<item*|Maximum mode>The actual width of the cell will be the maximum of
|
||||
the specified width and the width of the box inside the cell.
|
||||
</description>
|
||||
|
||||
The border width and the cell padding (to be explained below) are taken
|
||||
into account in the size of the box inside the cell.
|
||||
|
||||
You may also specify the width and the height of the entire table in
|
||||
<submenu|Table|special table properties>. In particular, you may specify
|
||||
the table to run over the entire width of a paragraph. When specifying a
|
||||
width (or height) for the entire table, you may specify how the unused
|
||||
space is distributed over the cells using <subsubmenu|Table|special cell
|
||||
properties|distribute unused space>. By default, the unused space is
|
||||
<menu|Table|Special table properties>. In particular, you may specify the
|
||||
table to run over the entire width of a paragraph. When specifying a width
|
||||
(or height) for the entire table, you may specify how the unused space is
|
||||
distributed over the cells using <menu|Table|Special cell
|
||||
properties|Distribute unused space>. By default, the unused space is
|
||||
equally distributed.
|
||||
|
||||
<apply|tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
||||
|
||||
<expand|tmdoc-license|Permission is granted to copy, distribute and/or
|
||||
modify this document under the terms of the GNU Free Documentation License,
|
||||
Version 1.1 or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the section entitled
|
||||
"GNU Free Documentation License".>
|
||||
<tmdoc-license|Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled "GNU Free
|
||||
Documentation License".>
|
||||
</body>
|
||||
|
||||
<\initial>
|
||||
<\collection>
|
||||
<associate|paragraph width|150mm>
|
||||
<associate|odd page margin|30mm>
|
||||
<associate|shrinking factor|4>
|
||||
<associate|page right margin|30mm>
|
||||
<associate|page top margin|30mm>
|
||||
<associate|reduction page right margin|25mm>
|
||||
<associate|page type|a4>
|
||||
<associate|reduction page bottom margin|15mm>
|
||||
<associate|even page margin|30mm>
|
||||
<associate|reduction page left margin|25mm>
|
||||
<associate|page bottom margin|30mm>
|
||||
<associate|reduction page top margin|15mm>
|
||||
<associate|language|english>
|
||||
</collection>
|
||||
</initial>
|
||||
<initial|<\collection>
|
||||
</collection>>
|
Loading…
Reference in New Issue