+.
+ It needs to be fixed to conform to the new Documentation Style sheet and
+ to make use of the new v1.0 features.
+ The whole thing also needs to be merged with the section following it.-jw
+ It may also be badly out of date.-rh (2008)]
+\end_layout
+
+\begin_layout Subsection
+Defining Own Keymaps: Keymap File Format
+\end_layout
+
+\begin_layout Standard
+Let's look at a keyboard definition file a little closer.
+ It is a plain text file defining
+\end_layout
+
+\begin_layout Itemize
+key-to-key or key-to-string translations
+\end_layout
+
+\begin_layout Itemize
+dead keys
+\end_layout
+
+\begin_layout Itemize
+dead keys exceptions
+\end_layout
+
+\begin_layout Standard
+To define key-to-key or key-to-string translation, use this command:
+\end_layout
+
+\begin_layout Quotation
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+kmap
+\end_layout
+
+\end_inset
+
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+key
+\end_layout
+
+\end_inset
+
+ outstring
+\end_layout
+
+\begin_layout Standard
+where
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+key
+\end_layout
+
+\end_inset
+
+ is the key to be translated and
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+outstring
+\end_layout
+
+\end_inset
+
+ is the string to be inserted into the document.
+ To define dead keys, use:
+\end_layout
+
+\begin_layout Quotation
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+kmod
+\end_layout
+
+\end_inset
+
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+key
+\end_layout
+
+\end_inset
+
+ deadkey
+\end_layout
+
+\begin_layout Standard
+where
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+key
+\end_layout
+
+\end_inset
+
+ is a keyboard key and
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+deadkey
+\end_layout
+
+\end_inset
+
+ is dead key name.
+ The following dead keys are supported (shortcut name is in parentheses):
+\end_layout
+
+\begin_layout Quotation
+
+\emph on
+Name
+\begin_inset space \hfill{}
+\end_inset
+
+Example
+\end_layout
+
+\begin_layout Quotation
+acute (acu)
+\begin_inset space \hfill{}
+\end_inset
+
+áéíóú
+\end_layout
+
+\begin_layout Quotation
+grave (gra)
+\begin_inset space \hfill{}
+\end_inset
+
+àèìòù
+\end_layout
+
+\begin_layout Quotation
+macron (mac)
+\begin_inset space \hfill{}
+\end_inset
+
+ ō
+\end_layout
+
+\begin_layout Quotation
+tilde (til)
+\begin_inset space \hfill{}
+\end_inset
+
+ñÑ
+\end_layout
+
+\begin_layout Quotation
+underbar (underb)
+\begin_inset space \hfill{}
+\end_inset
+
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+b o
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Quotation
+cedilla (ced)
+\begin_inset space \hfill{}
+\end_inset
+
+çÇ
+\end_layout
+
+\begin_layout Quotation
+underdot (underd)
+\begin_inset space \hfill{}
+\end_inset
+
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+d o
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Quotation
+circumflex (circu)
+\begin_inset space \hfill{}
+\end_inset
+
+âêîôû
+\end_layout
+
+\begin_layout Quotation
+circle (circl)
+\begin_inset space \hfill{}
+\end_inset
+
+ÅůŮ
+\end_layout
+
+\begin_layout Quotation
+tie (tie)
+\begin_inset space \hfill{}
+\end_inset
+
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+t o
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Quotation
+breve (bre)
+\begin_inset space \hfill{}
+\end_inset
+
+ă
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+u o
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Quotation
+caron (car)
+\begin_inset space \hfill{}
+\end_inset
+
+čšž
+\end_layout
+
+\begin_layout Quotation
+hungarian umlaut (hug)
+\begin_inset space \hfill{}
+\end_inset
+
+őű
+\end_layout
+
+\begin_layout Quotation
+umlaut (uml)
+\begin_inset space \hfill{}
+\end_inset
+
+äöü
+\end_layout
+
+\begin_layout Quotation
+dot (dot)
+\begin_inset space \hfill{}
+\end_inset
+
+ż
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+.s
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Since in many international keyboards there are exceptions to what some
+ dead keys should do, you can define them using
+\end_layout
+
+\begin_layout Quotation
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+kxmod
+\end_layout
+
+\end_inset
+
+ deadkey key outstring
+\end_layout
+
+\begin_layout Standard
+For example, on Slovak keyboard, if you enter caron-o, it generates circumflex-o
+, so you put in
+\end_layout
+
+\begin_layout Quotation
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+kxmod
+\end_layout
+
+\end_inset
+
+ caron o "
+\backslash
+^o"
+\end_layout
+
+\begin_layout Standard
+to make it work correctly.
+ Also, you have to define as exceptions dead keys over i and j, to remove
+ the dot from them before inserting an accent mark.
+ I will change this when the time comes, but so far I haven't had time.
+\end_layout
+
+\begin_layout Standard
+Oh, and about characters: backslash is escaped, so to enter it, you'll need
+ double backslash.
+ Also, quotes and
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+#
+\end_layout
+
+\end_inset
+
+ have different meaning.
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+#
+\end_layout
+
+\end_inset
+
+ marks comments, quotes start and end LaTeX-style commands.
+ To enter quote, you'll need to use
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+"
+\end_layout
+
+\end_inset
+
+, to enter
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+#
+\end_layout
+
+\end_inset
+
+, use
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+#
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+If you make a keyboard description file that works for your language, please
+ mail it to me, so I can include it in the next keymap distribution.
+\end_layout
+
+\begin_layout Standard
+More keywords will be supported in keymap configuration file in future,
+ like
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+kinclude filename
+\end_layout
+
+\end_inset
+
+
+\emph on
+
+\begin_inset space \hfill{}
+\end_inset
+
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+include
+\end_layout
+
+\end_inset
+
+ another file
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+kprog program
+\end_layout
+
+\end_inset
+
+
+\emph on
+
+\begin_inset space \hfill{}
+\end_inset
+
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+define
+\end_layout
+
+\end_inset
+
+ an external keymap translation program
+\end_layout
+
+\begin_layout Standard
+Also, it should look into
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+lyxrc
+\end_layout
+
+\end_inset
+
+ file for defaults, too (for example, a
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+kinclude
+\end_layout
+
+\end_inset
+
+ option to include default keyboard).
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+\begin_inset CommandInset label
+LatexCommand label
+name "sec:keymap"
+
+\end_inset
+
+International Keymap Stuff
+\end_layout
+
+\begin_layout Standard
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+In doing the revisions on this document in March 2008, I did not look over
+ this stuff, as I do not understand it.
+ It would be good if someone else could do so.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The next two sections describe the
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+.kmap
+\end_layout
+
+\end_inset
+
+ and
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+.cdef
+\end_layout
+
+\end_inset
+
+ file syntax in detail.
+ These sections should help you design your own key map if the ones provided
+ do not meet your needs.
+\end_layout
+
+\begin_layout Subsection
+The .kmap File
+\end_layout
+
+\begin_layout Standard
+A
+\shape up
+.
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+kmap
+\end_layout
+
+\end_inset
+
+ file maps keystrokes to characters or strings.
+ As the name suggests, it sets a keyboard mapping.
+ The
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+.kmap
+\end_layout
+
+\end_inset
+
+
+\shape default
+ file keywords
+\shape up
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+kmap
+\end_layout
+
+\end_inset
+
+
+\shape default
+,
+\shape up
+
+\shape default
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+kmod
+\end_layout
+
+\end_inset
+
+,
+\shape up
+
+\shape default
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+ksmod
+\end_layout
+
+\end_inset
+
+, and
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+kcomb
+\end_layout
+
+\end_inset
+
+ are described in this section.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+kmap
+\end_layout
+
+\end_inset
+
+ Map a character to a string
+\end_layout
+
+\begin_layout LyX-Code
+
+\backslash
+kmap
+\family roman
+\emph on
+char
+\family default
+\emph default
+
+\family roman
+\emph on
+string
+\end_layout
+
+\begin_layout Standard
+This will ma
+\family roman
+p
+\family default
+
+\family roman
+\emph on
+char
+\family default
+\emph default
+
+\family roman
+to
+\family default
+
+\family roman
+\emph on
+string
+\emph default
+.
+ Note that in
+\family default
+
+\family roman
+\emph on
+string
+\emph default
+,
+\family default
+
+\family roman
+\shape up
+the double-quote (")
+\family default
+\shape default
+
+\family roman
+and
+\family default
+
+\family roman
+\shape up
+the backslash (
+\backslash
+)
+\family default
+\shape default
+
+\family roman
+must be escaped with a preceding backslash (
+\shape up
+
+\backslash
+
+\shape default
+)
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+An example of a
+\begin_inset Flex CharStyle:MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+kmap
+\end_layout
+
+\end_inset
+
+ statement to cause the symbol
+\begin_inset Flex CharStyle:MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+/
+\end_layout
+
+\end_inset
+
+ to be output for the keystroke
+\begin_inset Flex CharStyle:MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+&
+\end_layout
+
+\end_inset
+
+ is:
+\end_layout
+
+\begin_layout LyX-Code
+
+\backslash
+kmap & /
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+kmod
+\end_layout
+
+\end_inset
+
+ Specify an accent character
+\end_layout
+
+\begin_layout LyX-Code
+
+\backslash
+kmod
+\family roman
+\emph on
+char accent allowed
+\end_layout
+
+\begin_layout Standard
+This will make the cha
+\family roman
+racter
+\family default
+
+\family roman
+\emph on
+char
+\family default
+\emph default
+
+\family roman
+\shape up
+\emph on
+be an accent
+\family default
+\shape default
+\emph default
+
+\family roman
+\shape up
+on the
+\family default
+\shape default
+
+\family roman
+\shape up
+\emph on
+allowed
+\family default
+\shape default
+\emph default
+
+\family roman
+\shape up
+cha
+\family default
+racter(s).
+ This is the dead key
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+The term
+\family roman
+\emph on
+dead key
+\family default
+\emph default
+ refers to a key that does not produce a character by itself, but when followed
+ with another key, produces the desired accent character.
+ For example, a German characte
+\family roman
+r with an umlaut like
+\family default
+
+\family roman
+\emph on
+ä
+\family default
+\emph default
+
+\family roman
+can be produced in this manner.
+\end_layout
+
+\end_inset
+
+ mechanism.
+
+\end_layout
+
+\begin_layout Standard
+If you
+\family roman
+hit
+\family default
+
+\family roman
+\emph on
+char
+\family default
+\emph default
+
+\family roman
+and then another key not in
+\family default
+
+\family roman
+\emph on
+allowed
+\emph default
+, you will get a
+\family default
+
+\family roman
+\emph on
+char
+\family default
+\emph default
+
+\family roman
+followed by the other, unallowed key, as output.
+
+\family default
+ Note that a
+\begin_inset Flex CharStyle:MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+Backspace
+\end_layout
+
+\end_inset
+
+ cancels a dead key, so if
+\family roman
+you hit
+\family default
+
+\family roman
+\emph on
+char
+\family default
+\emph default
+
+\begin_inset Flex CharStyle:MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+\emph on
+Backspace
+\end_layout
+
+\end_inset
+
+, the cursor will not go one position backwards but will instead cancel
+ the effect t
+\family roman
+hat
+\family default
+
+\family roman
+\shape up
+\emph on
+char
+\family default
+\shape default
+\emph default
+
+\family roman
+\shape up
+might have had on the next keystroke.
+
+\end_layout
+
+\begin_layout Standard
+The following example specifies that the character ' is to be an acute accent,
+ allowed on the characters a, e, i, o, u, A, E, I, O, and U:
+\end_layout
+
+\begin_layout LyX-Code
+
+\backslash
+kmod ' acute aeiouAEIOU
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+ksmod
+\end_layout
+
+\end_inset
+
+ Specify an exception to the accent character
+\end_layout
+
+\begin_layout LyX-Code
+
+\backslash
+kxmod
+\family roman
+\emph on
+accent char result
+\end_layout
+
+\begin_layout Standard
+This defines an exce
+\family roman
+ption for
+\family default
+
+\family roman
+\emph on
+accent
+\family default
+\emph default
+
+\family roman
+on
+\family default
+
+\family roman
+\emph on
+char
+\emph default
+.
+ T
+\shape up
+he
+\family default
+\shape default
+
+\family roman
+\shape up
+\emph on
+accent
+\family default
+\shape default
+\emph default
+
+\family roman
+\shape up
+must
+\family default
+\shape default
+
+\shape up
+have been assigned a keystroke with a previous
+\shape default
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+
+\backslash
+kmo
+\shape default
+d
+\end_layout
+
+\end_inset
+
+ declar
+\family roman
+ation and
+\family default
+
+\family roman
+\emph on
+char
+\family default
+\emph default
+
+\family roman
+must not belong in the
+\family default
+
+\family roman
+\emph on
+allowed
+\family default
+\emph default
+
+\family roman
+set of
+\family default
+
+\family roman
+\emph on
+accent
+\emph default
+.
+ When
+\family default
+
+\family roman
+\shape up
+you enter the
+\family default
+\shape default
+
+\family roman
+\shape up
+\emph on
+accent char
+\family default
+\shape default
+\emph default
+
+\family roman
+\shape up
+sequence,
+\family default
+\shape default
+
+\family roman
+\shape up
+\emph on
+result
+\family default
+\shape default
+\emph default
+
+\family roman
+\shape up
+ is produced.
+ If such a declaration does not exist in
+\family default
+\shape default
+
+\shape up
+the
+\shape default
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+.kmap
+\end_layout
+
+\end_inset
+
+ file and yo
+\family roman
+u enter
+\family default
+
+\family roman
+\emph on
+accent char
+\emph default
+, you get
+\family default
+
+\family roman
+\emph on
+accent_key char
+\family default
+\emph default
+
+\family roman
+ where
+\family default
+
+\family roman
+\emph on
+accent_key
+\family default
+\emph default
+
+\family roman
+ is the first arg
+\family default
+ument of the
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+
+\backslash
+kmod
+\end_layout
+
+\end_inset
+
+ declaration.
+
+\end_layout
+
+\begin_layout Standard
+The following command produces causes äi to be produced when you enter acute-i
+ ('i):
+\end_layout
+
+\begin_layout LyX-Code
+
+\backslash
+kxmod acute i "
+\backslash
+
+\backslash
+'{
+\backslash
+
+\backslash
+i}"
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+kcomb
+\end_layout
+
+\end_inset
+
+ Combine two accent characters
+\end_layout
+
+\begin_layout LyX-Code
+
+\backslash
+kcomb
+\family roman
+\emph on
+accent1 accent2 allowed
+\end_layout
+
+\begin_layout Standard
+This one is getting pretty esoteric.
+ It allows you to combine the effect
+\family roman
+of
+\family default
+
+\family roman
+\emph on
+accent1
+\family default
+\emph default
+
+\family roman
+and
+\family default
+
+\family roman
+\emph on
+accent2
+\family default
+\emph default
+
+\family roman
+(in that order!) on
+\family default
+
+\family roman
+\emph on
+allowed
+\family default
+\emph default
+
+\family roman
+chars.
+ The keystrokes for
+\family default
+
+\family roman
+\emph on
+accent1
+\family default
+\emph default
+
+\family roman
+and
+\family default
+
+\family roman
+\emph on
+accent2
+\family default
+\emph default
+
+\family roman
+must have be
+\family default
+en set with a
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\shape up
+
+\backslash
+kmod
+\end_layout
+
+\end_inset
+
+ command at
+\family roman
+a
+\family default
+
+\family roman
+\emph on
+previous
+\family default
+\emph default
+
+\family roman
+point in the
+\family default
+ file.
+
+\end_layout
+
+\begin_layout Standard
+Consider this example from the
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+