> I wonder if somebody could define what an inset is
> and give me typical examples of inset.

In LyX, an inset is mostly a developers term.  This term covers a bunch of the
user interface elements that the users see.  Some of the insets are very
visible, and easily spotted as insets.  In particular, all the buttons in your
documents are inset:  The TOC button, error insets, references, labels, and all
these other funny things that you can click on.
Also, we have some less obvious insets:  Accented characters outside the
encoding in use, which LyX will try to integrate seamlessly into your document
as any other letters.  
The most advanced inset is the math inset:  Every formula is implemented as an
inset.
So an inset can take make shapes and forms on the screen.  It can be very
interactive (the math inset), just understand a click (all the buttons), or it
can be static without any interaction (the accent insets).

In LyX v1.0.x, the footnotes, margin notes, figure floats, tables, and other
similar constructs are not insets in the technical sense when you look at the
code.  For various historical reasons, they are rather implemented as separate
features, that are not derived from the Inset base.  This is something we are
addressing in the 1.1.x branch, where we want to change everything to be
insets.  This will make the code more modular, more powerful and hopefully
easier to maintain.  I can't remember exactly how far we have come in this
regard, but I think the table insets has been insetized.

At the moment, the big discussion is turning around whether paragraphs should
be insets or not.  We have not really decided yet.  But it's clear that
footnotes, margin notes, figure floats, tables, and the rest of the non-insets
in 1.0.x will become insets in 1.1.x.  So in a sense, we can say that any
"special" element in your document will be an inset in 1.2.  
Maybe we will even be able to say that everything in your document is an inset,
but once again, the term is mostly a developers term that covers the code.  We
have other developers terms:  Buffer (which is the term for "document" in the
code), BufferView (which is the term for the window, you can type your
documents in), widget (which is the term for a button, a scrollbar, or any
other GUI element), and so on.

"Inset" is special because it happens to be a typographical term as well as a
LyX developers term, so from the viewpoint of the users, the use of the inset
term in LyX can be confusing, because in LyX, it does not really correspond
100% with the typographical term.  However, Matthias Ettrich chose this name
because in the beginning, the match was closer to the typographical intent. 
Later, more stuff became insets, and the semantics shifted. As mentioned, it
continues to shift corresponding to how the code base looks at one particular
point in time.

Greets,

Asger

Reply via email to