-# This file is part of
-# ==================================================================
-#
-# LyX, the Document Processor
-#
-# Copyright (C) 1997 LyX Team
-#
-# Version 0.1, May 28 1997
-#
-# ==================================================================
+# -*- text -*-
+
+# file math.bind
+# This file is part of LyX, the document processor.
+# Licence details can be found in the file COPYING.
+
+# author John Weiss
+# author Alejandro Aguilar Sierra
+# author Lars Gullik Bjønnes
+# author Jean-Marc Lasgouttes
+# author John Levon
+# author André Pönitz
+# author Michael Gerz
+# author Martin Vermeer
-# This file provides math mode keys. Most were suggested by John Weiss
-# and modified by Alejandro Aguilar Sierra to be used with different
+# Full author contact details are available in file CREDITS.
+
+# This file provides math mode keys. Most were suggested by John Weiss
+# and modified by Alejandro Aguilar Sierra to be used with different
# keyboard layouts.
#
# This file is automatically included from the main bind file.
# These are defined for the math menu:
-\bind "M-m f" "math-insert \frac"
-\bind "M-m s" "math-insert \sqrt"
-\bind "M-m e" "math-insert ^"
-\bind "M-m x" "math-insert _"
-\bind "M-m u" "math-insert \sum"
-\bind "M-m i" "math-insert \int"
-\bind "M-m m" "math-mode"
-\bind "M-m d" "math-display"
-
-#\bind "M-m o" "math-insert \oint"
-\bind "M-m p" "math-insert \partial"
-\bind "M-m r" "math-insert \root"
-\bind "M-m l" "math-limits"
-
-\bind "M-m n" "math-number"
-\bind "M-m S-N" "math-nonumber"
-\bind "M-m 8" "math-insert \infty"
-\bind "M-m v" "accent-vector"
-
-\bind "M-m o 1" "math-macro-arg 1"
-\bind "M-m o 2" "math-macro-arg 2"
-\bind "M-m o 3" "math-macro-arg 3"
-\bind "M-m o 4" "math-macro-arg 4"
-\bind "M-m o 5" "math-macro-arg 5"
-\bind "M-m o 6" "math-macro-arg 6"
-\bind "M-m o 7" "math-macro-arg 7"
-\bind "M-m o 8" "math-macro-arg 8"
-\bind "M-m o 9" "math-macro-arg 9"
-
-\bind "M-m t t" "math-mutate dump"
-\bind "M-m t a" "math-mutate align"
-\bind "M-m t i" "math-mutate inline"
-\bind "M-m t d" "math-mutate display"
-\bind "M-m t e" "math-mutate eqnarray"
-
-\bind "M-m c i" "math-column-insert"
-\bind "M-m c d" "math-column-delete"
-
-\bind "M-m w i" "math-row-insert"
-\bind "M-m w d" "math-row-delete"
-
-\bind "M-m a v t" "math-valign top"
-\bind "M-m a v c" "math-valign center"
-\bind "M-m a v b" "math-valign bottom"
-\bind "M-m a h l" "math-halign left"
-\bind "M-m a h c" "math-halign center"
-\bind "M-m a h r" "math-halign right"
+Format 4
+
+\bind "M-m f" "math-insert \frac"
+\bind "M-m s" "math-insert \sqrt"
+\bind "M-m x" "math-subscript"
+\bind "M-m e" "math-superscript"
+
+\bind "M-m u" "math-insert \sum"
+\bind "M-m i" "math-insert \int"
+\bind "M-m m" "math-mode" # produces mathematical text
+\bind "M-m d" "math-display"
+
+\bind "M-m y" "math-insert \oint"
+\bind "M-m p" "math-insert \partial"
+\bind "M-m r" "math-insert \root"
+\bind "M-m l" "math-limits"
+\bind "M-m S-L l" "math-limits limits"
+\bind "M-m S-L n" "math-limits nolimits"
+\bind "M-m S-L space" "math-limits empty"
+
+
+\bind "M-m n" "math-number-toggle"
+\bind "M-m S-N" "math-number-line-toggle"
+\bind "M-m 8" "math-insert \infty"
+
+\bind "M-m o 1" "self-insert \#1"
+\bind "M-m o 2" "self-insert \#2"
+\bind "M-m o 3" "self-insert \#3"
+\bind "M-m o 4" "self-insert \#4"
+\bind "M-m o 5" "self-insert \#5"
+\bind "M-m o 6" "self-insert \#6"
+\bind "M-m o 7" "self-insert \#7"
+\bind "M-m o 8" "self-insert \#8"
+\bind "M-m o 9" "self-insert \#9"
+
+\bind "M-m t n" "math-mutate none"
+\bind "M-m t t" "math-mutate dump"
+\bind "M-m t a" "math-mutate align"
+\bind "M-m t i" "math-mutate simple"
+\bind "M-m t d" "math-mutate equation"
+\bind "M-m t e" "math-mutate eqnarray"
+\bind "M-m t m" "math-mutate multline"
+
+\bind "M-m c i" "tabular-feature append-column"
+\bind "M-m c d" "tabular-feature delete-column"
+\bind "M-m c c" "tabular-feature copy-column"
+\bind "M-m c s" "tabular-feature swap-column"
+\bind "M-m c a" "tabular-feature add-vline-left"
+\bind "M-m c e" "tabular-feature delete-vline-left"
+\bind "M-m c z" "tabular-feature add-vline-right"
+\bind "M-m c x" "tabular-feature delete-vline-right"
+
+\bind "M-m w i" "tabular-feature append-row"
+\bind "M-m w d" "tabular-feature delete-row"
+\bind "M-m w c" "tabular-feature copy-row"
+\bind "M-m w s" "tabular-feature swap-row"
+\bind "M-m w a" "tabular-feature add-hline-above"
+\bind "M-m w e" "tabular-feature delete-hline-above"
+\bind "M-m w z" "tabular-feature add-hline-below"
+\bind "M-m w x" "tabular-feature delete-hline-below"
+
+\bind "M-m w t" "tabular-feature valign-top"
+\bind "M-m w m" "tabular-feature valign-middle"
+\bind "M-m w b" "tabular-feature valign-bottom"
+\bind "M-m c l" "tabular-feature align-left"
+\bind "M-m c m" "tabular-feature align-center"
+\bind "M-m c r" "tabular-feature align-right"
+
+# Decoration accents
# The accent-circumflex is 'h' for 'hat', which is what most math
# folks call it verbally.
+\bind "M-m ~S-quotedbl" "math-insert \ddot"
+\bind "M-m h" "math-insert \hat"
+\bind "M-m ~C-~M-~S-backslash" "math-insert \grave"
+\bind "M-m ~S-slash" "math-insert \acute"
+\bind "M-m ~C-~M-~S-ampersand" "math-insert \tilde"
+\bind "M-m ~S-minus" "math-insert \bar"
+\bind "M-m ~S-period" "math-insert \dot"
+\bind "M-m S-V" "math-insert \check"
+\bind "M-m S-U" "math-insert \breve"
+\bind "M-m v" "math-insert \vec"
+\bind "M-m ~S-underscore" "math-insert \underbar"
+
\bind "M-m b" "math-insert \overline"
-\bind "M-m h" "accent-circumflex"
-\bind "M-m ~S-period" "accent-dot"
-\bind "M-m ~S-asciitilde" "accent-tilde"
\bind "M-m ~S-apostrophe" "math-insert \prime"
-\bind "M-m ~S-quotedbl" "accent-umlaut"
-
# These do pairs of: () {} [] <> ||
\bind "M-m ~S-parenleft" "math-delim ( )"
-\bind "M-m ~S-bracketleft" "math-delim [ ]"
-\bind "M-m ~S-braceleft" "math-delim { }"
-\bind "M-m ~S-less" "math-delim langle rangle"
-\bind "M-m ~S-greater" "math-delim rangle langle"
-\bind "M-m ~S-bar" "math-delim | |"
+\bind "M-m ~C-~M-~S-bracketleft" "math-delim [ ]"
+\bind "M-m ~C-~M-~S-braceleft" "math-delim { }"
+\bind "M-m ~S-less" "math-delim langle rangle" # produces < >
+\bind "M-m ~S-greater" "math-delim rangle langle" # produces > <
+\bind "M-m ~C-~M-~S-bar" "math-delim | |"
-# Note: it's easy to insert binary relations like \pm, \mp, \neq, \geq,
+# Note: it's easy to insert binary relations like \pm, \mp, \neq, \geq,
# and \leq just by typing them. However it's easier to remember these:
-\bind "M-m ~S-plus" "math-insert \pm"
-\bind "M-m ~S-equal" "math-insert \neq"
+\bind "M-m ~S-plus" "math-insert \pm"
+\bind "M-m ~S-equal" "math-insert \neq"
-\bind "Escape" "escape"
-\bind "C-Tab" "tab-insert"
-\bind "M-m space" "math-space"
-\bind "M-m S-G" "math-greek-toggle"
+\bind "Escape" "escape"
+\bind "M-m space" "math-space"
+# FIXME: find another shortcut for cell-split as C-Tab is used for buffer-next
+# in 'cua.bind'.
+#\bind "C-Tab" "cell-split"
-# This should be handled properly by some "get the next key" method
+# math-macros
+\bind "C-S-asterisk" "math-macro-unfold"
+# Defined in cua.bind as command-alternative to specialchar-insert hyphenation
+#\bind "C-minus" "math-macro-fold"
-\bind "M-m g a" "math-insert \alpha"
-\bind "M-m g b" "math-insert \beta"
-\bind "M-m g c" "math-insert \chi"
-\bind "M-m g d" "math-insert \delta"
-\bind "M-m g e" "math-insert \epsilon"
-\bind "M-m g f" "math-insert \phi"
-\bind "M-m g g" "math-insert \gamma"
-\bind "M-m g h" "math-insert \eta"
-\bind "M-m g i" "math-insert \iota"
-\bind "M-m g j" "math-insert \epsilon"
-\bind "M-m g k" "math-insert \kappa"
-\bind "M-m g l" "math-insert \lambda"
-\bind "M-m g m" "math-insert \mu"
-\bind "M-m g n" "math-insert \nu"
-\bind "M-m g o" "math-insert \omega"
-\bind "M-m g p" "math-insert \pi"
-\bind "M-m g q" "math-insert \vartheta"
-\bind "M-m g r" "math-insert \rho"
-\bind "M-m g s" "math-insert \sigma"
-\bind "M-m g t" "math-insert \tau"
-\bind "M-m g u" "math-insert \upsilon"
-\bind "M-m g v" "math-insert \theta"
-\bind "M-m g w" "math-insert \omega"
-\bind "M-m g x" "math-insert \xi"
-\bind "M-m g y" "math-insert \varphi"
-\bind "M-m g z" "math-insert \zeta"
-
-\bind "M-m g S-D" "math-insert \Delta"
-\bind "M-m g S-E" "math-insert \varepsilon"
-\bind "M-m g S-F" "math-insert \Phi"
-\bind "M-m g S-G" "math-insert \Gamma"
-\bind "M-m g S-I" "math-insert \iota"
-\bind "M-m g S-J" "math-insert \epsilon"
-\bind "M-m g S-O" "math-insert \Omega"
-\bind "M-m g S-P" "math-insert \Pi"
-\bind "M-m g S-Q" "math-insert \vartheta"
-\bind "M-m g S-R" "math-insert \varrho"
-\bind "M-m g S-S" "math-insert \Sigma"
-\bind "M-m g S-T" "math-insert \varsigma"
-\bind "M-m g S-U" "math-insert \Upsilon"
-\bind "M-m g S-V" "math-insert \Theta"
-\bind "M-m g S-W" "math-insert \Omega"
-\bind "M-m g S-X" "math-insert \Xi"
-\bind "M-m g S-Y" "math-insert \Varphi"
-
-
-\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 ü"
+# This should be handled properly by some "get the next key" method
+\bind "M-m g a" "math-insert \alpha"
+\bind "M-m g b" "math-insert \beta"
+\bind "M-m g c" "math-insert \chi"
+\bind "M-m g d" "math-insert \delta"
+\bind "M-m g e" "math-insert \epsilon"
+\bind "M-m g f" "math-insert \phi"
+\bind "M-m g g" "math-insert \gamma"
+\bind "M-m g h" "math-insert \eta"
+\bind "M-m g i" "math-insert \iota"
+\bind "M-m g j" "math-insert \varphi"
+\bind "M-m g k" "math-insert \kappa"
+\bind "M-m g l" "math-insert \lambda"
+\bind "M-m g m" "math-insert \mu"
+\bind "M-m g n" "math-insert \nu"
+\bind "M-m g o" "math-insert \omega"
+\bind "M-m g p" "math-insert \pi"
+\bind "M-m g q" "math-insert \vartheta"
+\bind "M-m g r" "math-insert \rho"
+\bind "M-m g s" "math-insert \sigma"
+\bind "M-m g t" "math-insert \tau"
+\bind "M-m g u" "math-insert \upsilon"
+\bind "M-m g v" "math-insert \theta"
+\bind "M-m g w" "math-insert \omega"
+\bind "M-m g x" "math-insert \xi"
+\bind "M-m g y" "math-insert \psi"
+\bind "M-m g z" "math-insert \zeta"
+
+\bind "M-m g S-D" "math-insert \Delta"
+\bind "M-m g S-E" "math-insert \varepsilon"
+\bind "M-m g S-F" "math-insert \Phi"
+\bind "M-m g S-G" "math-insert \Gamma"
+\bind "M-m g S-I" "math-insert \iota"
+\bind "M-m g S-J" "math-insert \epsilon"
+\bind "M-m g S-L" "math-insert \Lambda"
+\bind "M-m g S-O" "math-insert \Omega"
+\bind "M-m g S-P" "math-insert \Pi"
+\bind "M-m g S-Q" "math-insert \vartheta"
+\bind "M-m g S-R" "math-insert \varrho"
+\bind "M-m g S-S" "math-insert \Sigma"
+\bind "M-m g S-T" "math-insert \varsigma"
+\bind "M-m g S-U" "math-insert \Upsilon"
+\bind "M-m g S-V" "math-insert \Theta"
+\bind "M-m g S-W" "math-insert \Omega"
+\bind "M-m g S-X" "math-insert \Xi"
+\bind "M-m g S-Y" "math-insert \Psi"