On Mon, Feb 04, 2002 at 08:58:23AM +0100, Herbert Voss wrote:
 
> Andre Poenitz wrote:
> 
> > On Fri, Feb 01, 2002 at 09:04:20PM +0000, Jules Bean wrote:
> > 
> >>On Fri, Feb 01, 2002 at 04:35:15PM +0100, Andre Poenitz wrote:
> >>
> >>>Ok. So \ddot{o} is not too bad.
> >>>
> >>\textit{o-umlaut} (sorry can't actually type the character in this
> >>combination of terminal type and editor) would be an option, I'd
> >>think.
> >>
> > 
> > Yes, but than mathed has to do the 'translation'  LFUN_UMLAUT+o -> ö
> > instead  of simply wrapping the argument in a decoration inset.
> > 
> > And I'd rather not start fiddling with stuff like that...
> 
> 
> maybe, that I miss something ...
> but why was it so easy in 1.1.6??
> ------------------
> \begin_inset Formula \[
> f(c)=\textrm{größer}\]
> 
> \end_inset
> -----------------
> 
> \[
> f(c)=\textrm{größer}\]
> -----------------
> 
> 
> I did nothing else than alt-m-m and enter größer!
> 
> why is it such a problem in 1.20???
> 
> Herbert

The reason is, that now we separately intercept the dead-keys in order to
interpret them (in math) as decorations.

Outside math, the intercepted dead-keys are handled (if the option that
LyX should handle them is on) in BufferView::pimpl::Dispatch. It uses
the transformation manager trans_mgr.[hC], in a statement like

 view_->owner()->getIntl()->getTrans()
       .deadkey(arg, get_accent(action).accent, bv->getLyXText)

(which is the messiness André refers to :-) 

Mathed does not do this. It simply intercepts the dead-keys, and if a 
corresponding decoration is defined, it puts it there and (with the 
patch I earlier submitted) places the "stripped" character under it.

Translating LFUN_UMLAUT -> \ddot etc. etc. is elegant and I really
would like to have it. But this is the kind of problems it causes.

Note that simply not handling the dead-keys doesn't help. E.g. the
accent-circle (LFUN_CIRCLE) isn't handled by mathed, so when you type
Å, what will be executed is "accent-circle A" in text mode,
but in math mode it will drop through and the Å is placed outside
the math box (See latinkeys.bind).

As a compromise solution (arguably acceptable, as text strings in math
are always short and M-m is already the generic math escape prefix) 
I have been experimenting with putting code like this into math.bind:

\bind "M-m S-Aring"     "math-insert Å"
\bind "M-m aring"       "math-insert å"
\bind "M-m S-Oslash"    "math-insert Ø"
\bind "M-m oslash"      "math-insert ø"
\bind "M-m S-Adiaeresis"    "math-insert Ä"
\bind "M-m adiaeresis"  "math-insert ä"
\bind "M-m S-Odiaeresis"    "math-insert Ö"
\bind "M-m odiaeresis"  "math-insert ö"
\bind "M-m S-Udiaeresis"    "math-insert Ü"
\bind "M-m udiaeresis"  "math-insert ü"

A complete list would be pretty long and perhaps best put in a
separate latinkeys_math.bind.

Having separate namespaces for math and text key sequences (something
André has a pending wish for) would also make this much easier and 
intuitive by removing the mandatory M-m prefix.

-- Martin

Attachment: msg32357/pgp00000.pgp
Description: PGP signature

Reply via email to