1
0
Fork 0

Fix typos

This commit is contained in:
Joris van der Hoeven 2019-01-16 16:04:56 +00:00
parent 345a641f34
commit 118570c783
68 changed files with 1110 additions and 1503 deletions

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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

View File

@ -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>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>.

View File

@ -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>>

View File

@ -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>

View File

@ -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>

View File

@ -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>>

View File

@ -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.

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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

View File

@ -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] >

View File

@ -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.>

View File

@ -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.>

View File

@ -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>

View File

@ -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.

View File

@ -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

View File

@ -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>>

View File

@ -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>

View File

@ -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>>

View File

@ -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:

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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.

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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.

View File

@ -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>.

View File

@ -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>

View File

@ -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>

View File

@ -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.

View File

@ -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>>

View File

@ -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

View File

@ -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>>

View File

@ -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>>

View File

@ -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

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>

View File

@ -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>>

View File

@ -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>>

View File

@ -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>>