1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
6 \IfFileExists{isolatin.def}
7 {\usepackage[isolatin]{inputenc}}
8 {\usepackage[latin1]{inputenc}}
11 \inputencoding default
14 \paperfontsize default
21 \use_numerical_citations 0
22 \paperorientation portrait
25 \paragraph_separation indent
27 \quotes_language english
31 \paperpagestyle headings
35 Customizing LyX: Features for the Advanced User
44 Principal maintainer of this file is
49 If you have comments or error corrections, please send them to the LyX
50 Documentation mailing list, <lyx-docs@lists.lyx.org>.
57 \begin_inset LatexCommand \tableofcontents{}
67 This manual covers the customization features present in LyX.
68 In it, we discuss issues like keyboard shortcuts, screen previewing options,
69 printer options, sending commands to LyX via the LyX Server, internationalizati
70 on, installing new LaTeX classes and LyX layouts, etc.
71 We can't possibly hope to touch on everything you can change---our developers
72 add new features faster than we can document them---but we will explain
73 the most common customizations and hopefully point you in the right direction
74 for some of the more obscure ones.
77 LyX configuration files
81 \begin_inset LatexCommand \label{chap:config}
85 This chapter aims to help you to find your way through the LyX configuration
87 Before continuing to read this chapter, you should find out where your
88 LyX library directory is by using
93 elp\SpecialChar \menuseparator
101 This directory is the place where LyX places its system-wide configuration
102 files, and we will simply name it
106 in the remainder of this document.
121 and its sub-directories contain a number of files and that can be used
122 to customise LyX's behaviour.
123 You can change many of these files from within LyX itself through the
128 ools\SpecialChar \menuseparator
136 Most customization that you might want to do to LyX is possible through
138 However, many other inner aspects of LyX can be customized by modifying
144 They fall in different categories, described in the following subsections.
147 Automatically generated files
150 These files are generated when you configure LyX.
151 They contain various default values that are guessed by inspection.
152 In general, it is not a good idea to modify them, since they might be overwritt
155 \labelwidthstring 00.00.0000
163 contains defaults for various commands.
165 \labelwidthstring 00.00.0000
173 contains the list of packages that have been recognized by LyX.
174 It is currently unused by the LyX program itself, but the information extracted
175 , and more, is made available with
180 elp\SpecialChar \menuseparator
190 \labelwidthstring 00.00.0000
198 is the list of text classes that have been found in your
202 directory, along with the associated LaTeX document class and their description.
204 \labelwidthstring 00.00.0000
210 is automatically generated during configuration from the file
219 \labelwidthstring 00.00.0000
227 this directory contains files with the extension
231 that define the keybindings used in LyX (see section\SpecialChar ~
233 \begin_inset LatexCommand \ref{sec:bindings}
238 If there exists an internationalized version of the bindfile named
242 , that will be used first.
243 See Chapter\SpecialChar ~
245 \begin_inset LatexCommand \ref{chap:i18n}
250 \begin_inset LatexCommand \ref{sec:bindings}
256 \labelwidthstring 00.00.0000
264 contains graphics files that can be included in documents.
267 \labelwidthstring 00.00.0000
275 contains LyX documentation files (including the one you are currently reading).
280 deserves special attention, as noted above.
281 If there exists an internationalized version of the help-document with
286 prepended to the name, that will be used first.
287 See Chapter\SpecialChar ~
289 \begin_inset LatexCommand \ref{chap:i18n}
295 \labelwidthstring 00.00.0000
303 contains example files that explain how to use some features.
304 In the file browser, press the
310 \labelwidthstring 00.00.0000
316 contains image files that are used by the
321 In addition, it also contains the individual icons used in the toolbar
322 and the banners that can be shown when LyX is launched.
324 \labelwidthstring 00.00.0000
332 contains keyboard keymapping files.
333 See Chapter\SpecialChar ~
335 \begin_inset LatexCommand \ref{sec:keymap}
341 \labelwidthstring 00.00.0000
349 contains the text class files described in Chapter\SpecialChar ~
351 \begin_inset LatexCommand \ref{chap:textclass}
357 \labelwidthstring 00.00.0000
363 contains lots of files that together make up reLyX, the translator of
364 \begin_inset Quotes eld
368 \begin_inset Quotes erd
373 \labelwidthstring 00.00.0000
379 contains some files that demonstrate the capabilities of the
381 External\SpecialChar ~
386 \labelwidthstring 00.00.0000
392 contains the standard LyX template files described in Chapter\SpecialChar ~
394 \begin_inset LatexCommand \ref{sec:templates}
400 \labelwidthstring 00.00.0000
406 contains some LaTeX cls files distributed with LyX.
408 \labelwidthstring 00.00.0000
414 contains files with the extension
418 that define the user interface to LyX.
419 That is, the files define which items appear in which menus and the items
420 appearing on the toolbar.
421 See Chapter\SpecialChar ~
423 \begin_inset LatexCommand \ref{sec:ui}
430 Files you don't want to modify
433 These files are used internally by LyX and you generally do not need to
434 modify them unless you are a developer.
436 \labelwidthstring 00.00.0000
444 this file contains the list of LyX developers.
445 The contents are displayed with the menu entry
450 elp\SpecialChar \menuseparator
456 \labelwidthstring 00.00.0000
464 this is a LaTeX script used during the configuration process.
467 \labelwidthstring 00.00.0000
475 this is the script that is used to re-configure LyX.
476 It creates configuration files in the directory it was run from.
479 Other files needing a line or two...
481 \labelwidthstring 00.00.0000
487 this contains tables describing how different character encodings can be
490 \labelwidthstring 00.00.0000
496 this file contains the templates available to the new
498 External\SpecialChar ~
503 \labelwidthstring 00.00.0000
509 this file contains a list of all the languages currently supported by LyX.
511 \labelwidthstring 00.00.0000
517 Deprecated and definitely obfuscated.
518 This is the old style preferences file.
519 It will probably disappear in the near future.
522 Your local configuration directory
525 Even if you are using LyX as an unprivileged user, you might want to change
526 LyX configuration for your own use.
531 directory contains all your personal configuration files.
532 This is the directory described as
533 \begin_inset Quotes eld
537 \begin_inset Quotes erd
545 elp\SpecialChar \menuseparator
550 This directory is used as a mirror of
554 , which means that every file in
558 is a replacement for the corresponding file in
563 Any configuration file described in the above sections can be placed either
564 in the system-wide directory, in which case it will affect all users, or
565 in your local directory for your own use.
568 To make things clearer, let's provide a few examples:
571 The preferences set in the
576 ools\SpecialChar \menuseparator
583 dialog are saved to a file
594 When you reconfigure using
599 ools\SpecialChar \menuseparator
610 and the resulting files are written in your local configuration directory
611 (see section\SpecialChar ~
613 \begin_inset LatexCommand \ref{sec:autodetected}
617 to have a list of the
621 settings affected by this section).
622 This means that any additional text class file that you might have added
627 will be added to the list of classes in the
632 ayout\SpecialChar \menuseparator
642 Similarly, if you have installed some LaTeX document classes in your home
643 directory, that LaTeX can find with your
647 path, they will show up in your list of text classes.
653 as long as LyX or yourself have a
657 file for it, of course.
663 If you get some updated documentation from LyX ftp site and cannot install
664 it because you do not have sysadmin rights on your system, you can just
679 Running LyX with multiple configurations
682 The configuration freedom of the local configuration directory may not suffice
683 if you want to have more than one configuration at your disposal.
684 For example, you may want to be use different key bindings or printer settings
686 You can achieve this by having several such directories.
687 You then specify which directory to use at run-time.
690 Invoking LyX with the command line switch
697 instructs the program to read the configuration from that directory, and
698 not from the default directory (you can determine the default directory
699 by running LyX without this switch as described above).
700 If this directory does not exist, LyX offers to create it for you, just
701 like it does for the default directory on the first time you run the program.
702 You can modify the configuration options in this additional
706 exactly as you would for the default directory.
707 These directories are completely independent (but read on).
708 Note that setting the environment variable
712 to some value has exactly the same effect
717 Having several configurations also requires more maintenance: if you want
718 to add a new layout to
722 which you want available from all your configurations, you must add it
723 to each directory separately.
724 You can avoid this with the following trick: after LyX creates the additional
725 directory, most of the subdirectories (see above) are empty.
726 If you want the new configuration to mirror an existing one, replace the
727 empty subdirectory with a symbolic link to the matching subdirectory in
728 the existing configuration.
735 subirectory, however, since it contains a file written by the configuration
736 script (also accessible through
741 ools\SpecialChar \menuseparator
747 \begin_inset LatexCommand \ref{sec:autodetected}
753 which is configuration-specific.
766 Using the dialog for the first time
773 file will contain only changes that you have made to the default behaviour,
774 some of which is hard-coded into LyX and some of which is contained in
777 LyXDir/lyxrc.defaults
780 Note that in both files lines beginning with a
781 \begin_inset Quotes eld
789 \begin_inset Quotes erd
792 are just comments and not interpreted.
793 However, only system administrators should edit
804 ools\SpecialChar \menuseparator
811 dialog to create and modify their own
823 ools\SpecialChar \menuseparator
830 dialog will be largely self-explanatory.
831 Almost all the commands have an associated comment, so you shouldn't have
832 too much trouble modifying it to taste.
833 Before we highlight a few of the more important commands below, however,
838 ing some of your changes (e.g., screen fonts) will have an instant effect.
840 changing the bind file) will not.
841 If nothing appears to have changed, just
845 the changes and restart LyX.
851 The font used to display your documents on the LyX screen is very important,
852 since you'll be reading all your documents with this font.
853 Therefore it is important that the font is as readable and good-looking
855 The LyX team tried to provide the best possible default font for you, but
856 since practically all X11 systems are different, it's likely that the default
857 fonts will be sub-optimal on your system.
858 Fortunately, you can do something about this.
859 Before we explain how to do this, you should learn a bit more about fonts
860 so that you are better prepared for choosing your fonts, because it is
861 a trade-off that is specific to your preferences and the capabilities of
865 Notice that this section only deals with the fonts on the
869 inside the LyX window.
870 The fonts that appear on the
878 are independent from these fonts, and are determined by the document class.
883 to learn how to change the font of the printed version of your document.
886 Basically, screen fonts come in two different kinds: scalable outline fonts
887 and non-scalable bitmap fonts.
888 This distinction seems a bit arbitrary, since non-scalable fonts are actually
889 scalable in most modern font renderers.
890 The difference lies in the
894 of the scaling, and the
899 The most important decision is thus whether you should use non-scalable
900 bitmap fonts or scalable outline fonts.
903 The scalable fonts are built from
907 of the single glyphs (i.e.
908 characters) in the font.
909 This means that each glyph is defined using mathematical curves that are
910 well suited for scaling to any requested size.
911 This mathematical definition is interpreted by the font renderer and turned
912 into a small picture composed of pixels according to which size and glyph,
913 the programmer requests.
914 This means that scalable fonts will look pretty good in all sizes.
915 Well, almost all sizes.
916 Since scalable fonts are defined in an abstract way, it can be hard to
917 provide a good rendering at small sizes, where each pixel has to be very
918 carefully computed to provide a good image.
919 Technically it is possible to do this from the mathematical definition,
920 but in order to keep the rendering reasonably fast, tradeoffs have to be
921 made, and the result is that scalable fonts can be difficult to read at
925 Bitmap fonts on the other hand, are defined by bitmap graphics from the
926 start, so they will look good at all the sizes they are meant for.
927 However, they don't scale well, because in order to scale a glyph, each
928 pixel is enlarged into several pixels.
929 It is the same effect that happens if you try to enlarge a picture in
933 or any other picture manipulation program.
934 In order to relieve this effect, bitmap fonts are typically provided in
935 several fixed sizes typically from around 8 pixels high up to 34 pixels
936 or so high in steps according to what is believed to be useful.
937 The advantage of bitmap fonts is that no complicated computations are necessary
938 to display each glyph, so bitmap fonts are thus faster displayed than scalable
940 The disadvantage is that sizes that don't exists as fixed versions have
941 to be scaled by doubling pixels, and thus look bad.
944 The net result of all this, is that bitmap fonts are generally best for
945 the small sizes, where they are available, while scalable fonts are generally
946 best for large sizes.
947 The logical conclusion would thus be to use bitmap fonts for the small
948 sizes, and scalable fonts for the large sizes.
949 Unfortunately, this is not a good idea, since bitmap fonts and scalable
950 fonts are not designed to be used together, so the overall look of such
951 a scheme would be bad.
952 The best you can do is thus to try both schemes and decide for yourself
956 By default, LyX uses non-scalable bitmap fonts (when using the XForms frontend).
961 is used, for sans serif fonts,
969 is used as the monospaced/typewriter font.
972 In the following, we will describe what to do if the text does not look
974 We'll start with the most important parameters: DPI and font zoom.
977 DPI setting and Font Zoom
980 LyX automatically tries to scale the fonts to look as close as the paper
981 output size as possible, except for the so-called font zoom factor.
984 In order for this to work on all systems, it relies on the screen DPI (dots
985 per inch) setting to be correct.
986 The DPI setting for your system is autodetected by LyX using the information
987 the X server can provide.
988 You can check what LyX autodetects the DPI setting to, by running LyX as
996 On many systems, X is not set up correctly, so you should check that it
999 \begin_inset Quotes eld
1007 \begin_inset Quotes erd
1010 and write down what the DPI is for the resolution you use (this will be
1011 close to the value LyX detects).
1012 It is the number mentioned as
1013 \begin_inset Quotes eld
1017 \begin_inset Quotes erd
1021 Also write down the number of pixels you have in the width (the first number
1023 \begin_inset Quotes eld
1027 \begin_inset Quotes erd
1033 Then get the good old ruler out of the closet, and measure the width of
1034 the visible screen-image on your monitor.
1035 Convert this measurement to inches if you used a centimeter ruler by dividing
1037 Now you can determine the correct DPI setting for your screen by dividing
1038 the number of pixels in the width by the width of the screen-image on the
1040 If this number is more than, say, 5 DPI from the detected value, you should
1041 either fix the X setup, or at least tell LyX that the DPI is different
1042 than the detected value.
1045 If you can't fix the X setup (which of course is best since other programs
1046 than LyX will benefit from this as well), you can tell LyX the correct
1054 If the text is too small or too big for your taste, you should fiddle with
1055 the font zoom setting.
1056 This setting is used to scale the point size of the text.
1057 If your DPI setting is correct, and the font zoom setting is set to 100,
1058 this means that LyX will try to display the text exactly the same size
1059 as it will appear on the paper-output.
1060 If you set the zoom factor to 200, the text will try to be 2 times as big
1062 Of course, this will only happen if LyX can find a font that has the appropriat
1063 e size, which you can't count on.
1064 Since LyX is a WYSIWYM system anyways, this limitation isn't much of an
1068 The default font zoom setting is 150, since a monitor is typically wider
1069 than a piece of paper, but you should try to fiddle with it through the
1083 dialog to find a size that you like.
1084 When you've found a setting that seems to work nicely for you (tip: use
1092 button to keep the dialog open while you experiment), you can make this
1093 setting the default by using the
1103 While it is often possible to find a suitable size for the text on the screen,
1104 this doesn't necessarily mean that the fonts are the best ones available
1106 In order to help you get the most out of your system, you can use the font
1107 definition commands to fine-tune the look of the text in greater detail
1111 Font definition commands
1114 As mentioned, LyX uses non-scalable bitmap fonts by default with the XForms
1120 is used, for sans serif fonts,
1128 is used as the monospaced/typewriter font.
1131 You can change all of these from within the
1136 The number of fonts that are available on different systems vary, but the
1141 should be available everywhere.
1142 Use that program to find candidate fonts.
1143 When you've found a font that you like, try to insert the first two elements
1145 \begin_inset Quotes eld
1149 \begin_inset Quotes erd
1153 \begin_inset Quotes eld
1157 \begin_inset Quotes erd
1164 ) in the appropriate field in the
1176 LyX will then reformat your document using the new font, and if you like
1177 the font, you should
1185 One place to start for a new font is to see if the scalable font
1186 \begin_inset Quotes eld
1190 \begin_inset Quotes erd
1194 Tip: You can see whether a font is a bitmap font or a scalable font by
1196 \begin_inset Quotes eld
1200 \begin_inset Quotes erd
1204 \begin_inset Quotes eld
1208 \begin_inset Quotes erd
1216 If the value 0 is available, the font is scalable.
1217 If the value 0 isn't available, the font is a bitmap font.
1220 Before you go about scrapping a bitmap font because the larger sizes look
1222 \begin_inset Quotes eld
1226 \begin_inset Quotes erd
1229 , you should toggle the
1230 \begin_inset Quotes eld
1234 \begin_inset Quotes erd
1238 This is only useful if you use bitmap fonts, because only these don't scale
1240 If you define this flag, LyX will only use the fixed font sizes that are
1241 available, and this guarantees that all bitmap fonts look well.
1242 (You can see which individual font sizes are available with the
1251 .) However, the prize is that the difference between the size of the fonts
1252 on screen and the size of fonts on paper will be larger because LyX will
1253 have to be satisfied with the closest available size, and not try to scale
1255 Also, you can risk that some logically different sizes, such as
1263 , will be mapped to the same screen font, making it hard for you to see
1264 the difference on screen.
1265 We've decided not to use scalable fonts by default because of these artifacts,
1266 but since LyX is a WYSIWYM system, many people like to use the flag anyways,
1267 well-knowing that the font size on the screen can't be trusted.
1268 But remember that this flag only makes a difference when you use bitmap
1270 Scalable fonts won't be affected for reasons you should understand by now.
1273 One final note regarding this flag: you should know that there is nothing
1274 wrong with using bitmap and scalable fonts at the same time for different
1276 For instance, it's common to use the scalable
1277 \begin_inset Quotes eld
1281 \begin_inset Quotes erd
1284 for the serif text together with a bitmap version of
1285 \begin_inset Quotes eld
1289 \begin_inset Quotes erd
1293 And you can safely select the
1294 \begin_inset Quotes eld
1298 \begin_inset Quotes erd
1301 button without worries: It will only apply to the Helvetica font.
1304 Sometimes the artifacts introduced by use of the flag can be relieved by
1305 using the fine-detail screen font sizes which defines which point sizes
1306 the different logical font sizes correspond to.
1311 to see exactly what concrete fonts the logical sizes map to, and try adjusting
1312 the corresponding entries in the
1316 dialog until you've managed to hit the nail and get the fonts you want.
1317 This can be hard to do, because LyX uses the DPI setting and the font zoom
1318 settings to calculate which exact screen font size to ask the X server
1319 for, thus obfuscating the mapping.
1320 If you can't make it by trial-and-error, you can make the process more
1321 transparent if you set both the DPI setting and font zoom settings to 100---eve
1322 n when this is known to be wrong.
1323 This will of course make your scalable fonts look weird, so use with care.
1329 By default, LyX will use fonts meant to write Western European text, including
1330 all kinds of English.
1331 This is defined through the so-called
1340 If you want to use LyX to write for instance Eastern European text, Cyrillic
1341 or any other language not covered by the ISO-8859-1 font encoding, you
1342 can define a different one with the encoding setting.
1343 This requires you to have special fonts installed.
1348 to see whether this is the case: check the
1349 \begin_inset Quotes eld
1353 \begin_inset Quotes erd
1357 \begin_inset Quotes eld
1361 \begin_inset Quotes erd
1364 fields for ISO-8859-X values different from ISO-8859-1, and search for
1365 one that contains the national characters of your language.
1366 If you find any, enter this encoding in the dialog.
1367 If not, go searching the Web for appropriate fonts.
1368 For the Qt frontend, it's recommended you use an iso646 font set.
1371 When you've set LyX up to use a different font encoding, you should also
1372 consider changing the font used by dialog windows in LyX.
1379 dialog will not be understandable unless you tell LyX to use a different
1381 By default the menu font is set to
1383 -*-helvetica-medium-r
1385 , but often Helvetica is not available in the font encoding you need, so
1386 the dialog allows this to be changed.
1389 As you can see, there are quite a few options that can be used to fine tune
1390 the look of your fonts.
1391 This should not scare you from fiddling with the settings, because after
1392 all, you will hopefully be using LyX for many hours in the future.
1393 And contrary to real WYSIWYG word processors where you are tied to using
1394 fonts that have to look good both on paper and on screen, LyX gives you
1395 the possibility of using fonts that are designed to look good on the screen
1396 while using a different set of fonts to look good on paper.
1400 \begin_inset LatexCommand \label{sec:bindings}
1407 Bindings are used to, well, bind a function to a key.
1408 Several prepackaged binding files are available: a CUA set of bindings
1409 (familiar as the typical set of PC and CDE set of keyboard shortcuts),
1410 an Emacs set of bindings, for those of us who follow the One True Way and
1411 refuse to lower our standards,
1417 I'm kidding here, of course!
1420 as well as specialty bindings (broadway and hollywood) and other languages
1421 (French, German, etc.).
1424 If, however, you'd like to customise the keybindings to your own exacting
1425 tastes, then copy the best-fit file in
1434 Don't forget to load this new file into LyX using the
1439 (For the moment you'll have to restart LyX for these changes to take effect.)
1442 LyX supports internationalization of the user interface (see Chapter\SpecialChar ~
1444 \begin_inset LatexCommand \ref{chap:i18n}
1453 is set, with the environment variable
1457 , LyX will try to use bindfiles by prepending
1462 For example, you can put a translated copy of some standard bind file in
1467 directory, and LyX will use it automatically.
1474 files is straightforward:
1481 bind <key combination> <lyx-function>
1484 Both key combination and lyx-function (including any arguments) must be
1485 enclosed in "double quotes".
1486 All the LyX functions are listed in the
1494 \begin_inset LatexCommand \label{sec:ui}
1501 The appearance of both the menu and toolbar may both be changed using the
1516 For the moment, only one file exists,
1520 , but feel free to experiment.
1521 Just copy the file to the
1525 directory and play! Note that, for the moment, you'll have to restart LyX
1526 for these changes to take effect.
1533 files is straightforward: have a look at
1546 entries must be ended with an explicit
1571 s and in the case of the
1572 \begin_inset Quotes eld
1576 \begin_inset Quotes erd
1584 One small word of warning.
1589 s may be inserted in a
1597 , but they are defined as
1608 Converters, Formats and Viewers
1611 LyX has a new and powerful mechanism to convert to and from any file format
1612 using external programs.
1613 Define a pair of formats, e.g.
1623 Now define a converter from one format to the other.
1624 In our example, two possible mechanisms exist.
1627 A direct conversion, from LaTeX to PDF using pdflatex
1630 A more convoluted route using intermediate formats and converters: LaTeX
1631 to DVI (using latex) to PostScript® (using dvips) to PDF (using ps2pdf).
1634 LyX will always choose the shortest possible route, so you must specify
1635 two different Format names for
1639 files to be able to use either.
1640 Both are included by default in the
1645 Have a look and then invent your own!
1648 Moreover, each Format can have a Viewer associated with it.
1649 For example, you might want to use
1653 to examine PostScript® files, or
1657 to preview the LaTeX output.
1658 You can alter the viewer to use (and what options to pass to it) via the
1664 ools\SpecialChar \menuseparator
1669 references:Converters
1672 For example, to change the
1680 format in the dialog, change the viewer to be
1684 (or whatever), and hit
1694 BibTeX and makeindex
1697 Both the bibliography generating command (default
1701 ) and the index generating command (default
1714 As an alternative for
1726 The command to enter is
1731 makeindex.sh -m $$lang
1734 where the placeholder
1738 will be replaced by the chosen document (babel) language.
1742 have installed the packages
1759 at a shell prompt for a help page.
1762 ASCII export options
1764 \added_space_top bigskip \noindent
1765 There are a couple of commands that can be used to
1766 \begin_inset Quotes eld
1770 \begin_inset Quotes erd
1773 exported ASCII text files.
1774 Note that LyX automatically detects and uses the best settings for your
1775 system at installation time, but you can modify them if you disagree with
1787 This option defines the command used to produce better ASCII tables with
1792 UNIX-commands (refer to their manpages for more information about them).
1793 Setting this as empty tells LyX to use the internal (inferior) formatter.
1805 With this command you can set the default line length of the ASCII output
1807 Setting it to 0 means endless lines.
1813 There are a bunch of configuration options that are used for interaction
1814 with the external print command from LyX.
1815 Normally the defaults are fine: if, however, your print command takes different
1816 option names, you can modify them here.
1822 You can change the colors used by LyX on-screen using the new
1827 Alternatively, if you're feeling particularly perverse you could use the
1832 bindable function (see the
1837 Input would have the format:
1842 set-color LyXName X11Color
1845 Here is a (partial) list of the functions and default colors:
1849 \begin_inset Tabular
1850 <lyxtabular version="3" rows="10" columns="3">
1852 <column alignment="left" valignment="top" leftline="true" width="0pt">
1853 <column alignment="left" valignment="top" leftline="true" width="0pt">
1854 <column alignment="center" valignment="top" leftline="true" rightline="true" width="0pt">
1855 <row topline="true" bottomline="true">
1856 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1873 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1890 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1908 <row topline="true">
1909 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
1926 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
1943 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1961 <row topline="true">
1962 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
1979 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
1996 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2014 <row topline="true">
2015 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2032 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2049 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2067 <row topline="true">
2068 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2085 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2102 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2120 <row topline="true">
2121 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2138 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2152 fraction Lines, brackets, etc.
2155 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2173 <row topline="true">
2174 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2191 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2198 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2216 <row topline="true">
2217 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2234 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2241 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2259 <row topline="true">
2260 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2277 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2284 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2302 <row topline="true" bottomline="true">
2303 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2320 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2334 selection background
2337 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2362 The autodetected settings
2366 \begin_inset LatexCommand \label{sec:autodetected}
2370 There are several items that are detected for you when you run
2377 \SpecialChar \menuseparator
2383 In this section, we list those which pertain to the user preferences.
2406 , depending on what is available.
2421 plus a bunch of options.
2436 on systems (so-called System V) who have this command, and
2440 otherwise (BSD systems).
2448 print_spool_printerprefix
2459 , depending on whether
2486 fonts are found and LaTeX has support for these fonts built-in.
2487 You can set it manually if you only have the so-called
2497 There are many other configuration options that can be used to customize
2499 We still need to document them here, but again, most should be fairly obvious.
2500 Please ask on the mailing lists if you need some more information; it may
2501 even prompt us to expand this section.
2504 Internationalizing LyX
2505 \begin_inset LatexCommand \label{chap:i18n}
2512 LyX supports using a translated interface.
2513 Last time we checked, LyX provided text in 14 languages together with the
2514 default English text.
2515 The language of choice is called your
2520 (For further reading on locale settings, see also the documentation for
2521 locale that comes with your operating system.
2522 For Linux, the manual page for locale(5) could be a good place to start).
2525 Notice that these translations will work, but do contain a few flaws.
2526 In particular, all dialogs have been designed with the English text in
2527 mind, which means that some of the translated text will be too large to
2528 fit within the space allocated.
2529 This is only a display problem and will not cause any harm.
2530 Also, you will find that some of the translations do not define short-cut
2531 keys for everything.
2532 Sometimes, there are simply not enough free letters to do it.
2533 Other times, the translator just hasn't got around to doing it yet.
2534 We'll try to fix these shortcomings in future versions of LyX.
2537 Selecting an alternative language for the user interface
2540 This feature is disabled by default, meaning that the text will be English.
2541 To enable an alternative language, you have to set an appropriate environment
2549 for csh class shells
2564 with the two letter code for the language you want.
2572 Normally, you'll want to put the appropriate line in
2580 so that the translation is on by default.
2581 Remember that if LyX is configured and compiled with
2582 \begin_inset Quotes eld
2590 \begin_inset Quotes erd
2593 , this will not work.
2599 Translating the graphical user interface (text messages).
2606 library to handle the internationalization of the interface.
2607 To have LyX speak your favorite language in all menus and dialogs, you
2612 -file for that language.
2613 When this is available, you'll have to generate a mo-file from it and install
2619 The process of doing all of this is explained in the documentation for
2624 , but in short, this is what you do (
2628 denotes the language code):
2646 LYX-SOURCE-DIR/po/lyx.pot
2659 doesn't exist, it can be remade with
2663 in that directory, or you can use an existing po-file for some other language
2675 We recommend that you use Emacs to do this, since the
2679 distribution includes a nice mode that supports you in doing this.
2685 For some menu- and widget-labels, there are also shortcut keys that should
2687 Those keys are marked after a `|', and should be translated according to
2688 the words and phrases of the
2693 There is a tool named
2697 written in Prolog in
2699 LYX-SOURCE-DIR/development/tools/
2701 that may be useful to help determine short-cut keys.
2702 Note that XForms (version 0.86 at least) can't handle anything but 7-bit
2703 characters as shortcut keys.
2704 You should also fill also out the information at the beginning of the new
2709 -file with your email-address, etc., so people know where to reach you with
2710 suggestions and entertaining flames.
2721 This can be done with
2744 -file to your locale-tree, at the correct directory for application messages
2749 , and under the name
2758 /usr/local/share/locale/
2782 Adding a new po-file to the
2786 of LyX involves altering the configure scripts and more, but the way
2790 works, you don't actually need the source-code of LyX to translate it---having
2806 If you've written a translation file for a language that LyX does not currently
2807 support, feel free to submit it for inclusion by sending a patch.
2808 In this case, we recommend that you read the
2816 directory for more instructions.
2819 Translating the documentation.
2822 The online documentation (in the
2829 -menu) can (and should!) be translated.
2830 If there are translated versions of the documentation available
2836 As of February 2003, almost all of the docs have been translated into German
2842 has been translated into at least 12 ther languages, with other translations
2844 The library of translated documents is growing rapidly.
2847 , and the locale is set accordingly, these will be used automagically by
2849 LyX looks for translated versions as
2863 denotes the language as set by the environmental variable
2868 If there are none, the default English versions will be displayed.
2869 Note that the translated versions must have the same filenames (
2873 above) as the original.
2874 If you feel up to translating the documentation (an excellent way to proof-read
2875 the original documentation BTW!), there are a few things you should do
2883 , the guide to writing LyX documentation.
2884 Pay special attention to the translator's section.
2887 Check out the documentation translation web page at
2888 \begin_inset LatexCommand \url[The LyX Developer's Web Site]{http://www.devel.lyx.org}
2893 That way, you can find out which (if any) documents have already been translate
2894 d into your language.
2895 You can also find out who (if anyone) is organizing the effort to translate
2896 the documentation into your language.
2897 If no one is organizing the effort, please let us know that you're interested.
2900 Once you get to actually translating, here's a few hints for you that may
2904 Join the documentation team! There is information on how to do that in
2913 elp\SpecialChar \menuseparator
2920 ), which by the way is the first document you should translate.
2923 Learn the typographic conventions for the language you are translating to.
2924 Typography is an ancient art and over the centuries, a great variety of
2925 conventions have developed throughout different parts of the world.
2926 Also study the professional terminology amongst typographers in your country.
2927 Inventing your own terminology will only confuse the users.
2930 (Warning! Typography is addictive!)
2933 Make a copy of the document.
2934 This will be your working copy.
2935 You can use this as your personal translated help-file by placing it in
2943 Sometimes the original document (from the LyX-team) will be updated.
2944 Use the ViewCVS tool available at
2945 \begin_inset LatexCommand \htmlurl{http://www.lyx.org/viewcvs.cgi/lyxdoc/}
2949 to see what has been changed
2955 Alternatively, you can keep a copy of the latest version of the English
2956 document which you've translated.
2960 That way you can easily see which parts of the translated document need
2964 If you ever find an error in the original document, fix it and notify the
2965 rest of the documentation team of the changes! (You didn't forget to join
2966 the documentation team did you?)
2969 International Keyboard Support
2974 [Editor's Note: The following section is by
2979 It needs to be fixed to conform to the new Documentation Style sheet and
2980 to make use of the new v1.0 features.
2981 The whole thing also needs to be merged with the section following it.-jw]
2984 Defining Own Keymaps: Keymap File Format
2987 Let's look at a keyboard definition file a little closer.
2988 It is a plain ASCII file defining
2991 key-to-key or key-to-string translations
2997 dead keys exceptions
3000 To define key-to-key or key-to-string translation, use this command:
3022 is the key to be translated and
3026 is the string to be inserted into the document.
3027 To define dead keys, use:
3054 The following dead keys are supported (shortcut name is in parentheses):
3171 hungarian umlaut (hug)
3199 Since in many international keyboards there are exceptions to what some
3200 dead keys should do, you can define them using
3211 deadkey key outstring
3214 For example, on Slovak keyboard, if you enter caron-o, it generates circumflex-o
3231 to make it work correctly.
3232 Also, you have to define as exceptions dead keys over i and j, to remove
3233 the dot from them before inserting an accent mark.
3234 I will change this when the time comes, but so far I haven't had time.
3237 Oh, and about characters: backslash is escaped, so to enter it, you'll need
3243 have different meaning.
3248 marks comments, quotes start and end LaTeX-style commands.
3249 To enter quote, you'll need to use
3268 If you make a keyboard description file that works for your language, please
3269 mail it to me, so I can include it in the next keymap distribution.
3272 More keywords will be supported in keymap configuration file in future,
3307 an external keymap translation program
3310 Also, it should look into
3314 file for defaults, too (for example, a
3320 option to include default keyboard).
3323 International Keymap Stuff
3324 \begin_inset LatexCommand \label{sec:keymap}
3331 The next two sections describe the
3343 file syntax in detail.
3344 These sections should help you design your own key map if the ones provided
3345 do not meet your needs.
3359 file maps keystrokes to characters or strings.
3360 As the name suggests it sets a keyboard mapping.
3385 are described in this section.
3387 \labelwidthstring 00.00.0000
3395 Map a character to a string
3427 the double-quote (")
3435 must be escaped with a preceding backslash (
3452 statement to cause the symbol
3458 to be output for the keystroke
3471 \labelwidthstring 00.00.0000
3479 Specify an accent character
3491 This will make the cha
3506 This is the dead key
3518 refers to a key that does not produce a character by itself, but when followed
3519 with another key, produces the desired accent character.
3520 For example, a German characte
3522 r with an umlaut like
3526 can be produced in this manner.
3539 and then another key not in
3547 followed by the other, unallowed key, as output.
3556 cancels a dead key, so if
3567 , the cursor will not go one position backwards but will instead cancel
3574 might have had on the next keystroke.
3578 The following example specifies that the character ' is to be an acute accent,
3579 allowed on the characters a, e, i, o, u, A, E, I, O, and U:
3584 kmod ' acute aeiouAEIOU
3586 \labelwidthstring 00.00.0000
3592 Specify an exception to the accent character
3605 This defines an exce
3624 have been assigned a keystroke with a previous
3638 must not belong in the
3658 If such a declaration does not exist in
3695 The following command produces causes äi to be produced when you enter acute-i
3711 \labelwidthstring 00.00.0000
3717 Combine two accent characters
3725 accent1 accent2 allowed
3728 This one is getting pretty esoteric.
3729 It allows you to combine the effect
3774 Consider this example from the
3785 kmod ; acute aeioyvhAEIOYVH
3789 kcomb acute umlaut iyIY
3792 This allows you to press
3798 and get the effect of
3815 in this case cancels the last dead key, so if you press
3843 mapping is performed, a
3850 file maps the strings that the symbols generate to characters in the current
3852 The LyX distribution currently includes at least the
3875 file is a sequence of declarations of the form
3888 For example, in order to map
3896 to the corresponding character in the iso-8859-1 set (233), the following
3926 the same character can apply to more than one string.
3964 If LyX cannot find a mapping for the string produced by the keystroke or
3965 a deadkey sequence, it will check if it looks like an accented char and
3966 try to draw an accent over the character on screen.
3972 There is a second way to add support for international characters through
3973 so-called dead-keys.
3974 A dead-key works in combination with a letter to produce an accented character.
3975 Here, we'll explain how to create a really simple dead-key to illustrate
3979 Suppose you happen to need the circumflex character,
3980 \begin_inset Quotes eld
3985 \begin_inset Quotes erd
3993 -key [a.k.a.\SpecialChar ~
3998 ] to the LyX command
4007 Now, whenever you type the
4011 -key followed by a letter, that letter will have a circumflex accent on
4013 For example, the sequence
4014 \begin_inset Quotes eld
4022 \begin_inset Quotes erd
4025 produces the letter:
4026 \begin_inset Quotes eld
4030 \begin_inset Quotes erd
4034 If you tried to type
4035 \begin_inset Quotes eld
4043 \begin_inset Quotes erd
4046 , however, LyX will complain with a beep, since a
4047 \begin_inset Quotes eld
4055 \begin_inset Quotes erd
4058 never takes a circumflex accent.
4063 after a dead-key produces the bare-accent.
4064 Please note this last point! If you bind a key to a dead-key, you'll need
4065 to rebind the character on that key to yet another key.
4070 to a cedilla is a bad idea, since you'll only get cedillas instead of commas.
4073 One common way to bind dead-keys is to use
4085 in combination with an accent, like
4086 \begin_inset Quotes eld
4094 \begin_inset Quotes erd
4098 \begin_inset Quotes eld
4106 \begin_inset Quotes erd
4110 \begin_inset Quotes eld
4118 \begin_inset Quotes erd
4122 Another way involves using
4130 [remember them from section?] to set up the special
4139 acts in some ways just like
4143 and permits you to bind keys to accented characters.
4144 You can also turn keys into dead-keys by binding them to something like
4149 and then binding this symbolic key to the corresponding LyX command.
4159 : This is exactly what I do in my
4170 Scroll\SpecialChar ~
4177 and a bunch of these
4178 \begin_inset Quotes eld
4186 \begin_inset Quotes erd
4189 symbolic keys bound such things as
4191 Scroll\SpecialChar ~
4196 Scroll\SpecialChar ~
4200 This is how I produce my accented characters.
4203 You can make just about anything into the
4211 keys, a spare function key, etc.
4212 As for the LyX commands that produce accents, check the entry for
4221 You'll find the complete list there.
4224 Saving your Language Configuration
4228 \begin_inset LatexCommand \label{sec:savlang}
4232 You can edit your preferences so that your desired language environment
4233 is automatically configured when LyX starts up, via the
4238 dit\SpecialChar \menuseparator
4248 Installing New Document Classes, Layouts, and Templates
4249 \begin_inset LatexCommand \label{chap:textclass}
4259 Installing New Document Classes
4265 In this chapter, we describe the procedures for creating and installing
4266 new LyX layout and template files, as well as offer a refresher on correctly
4267 installing new LaTeX document classes.
4268 Some definitions: a document class is a LaTeX file (usually ending in
4276 ) which describes the format of a document such as an article, report, journal
4278 and all the commands needed to realize that format.
4279 A layout file is a LyX file which corresponds to a LaTeX document class
4280 and which tells LyX how to
4281 \begin_inset Quotes eld
4285 \begin_inset Quotes erd
4288 things on the screen to make the display look something like the final
4290 More precisely, a layout file describes a
4291 \begin_inset Quotes eld
4295 \begin_inset Quotes erd
4298 which is the internal construct LyX uses to render the screen display.
4300 \begin_inset Quotes eld
4304 \begin_inset Quotes erd
4308 \begin_inset Quotes eld
4312 \begin_inset Quotes erd
4315 can be used somewhat interchangeably, but it is better to refer to the
4316 file as the layout, and the thing living in LyX's memory as the text class.
4317 A template file is simply a LyX document which contains a set of predefined
4318 entries for a given document class which are generally required for that
4320 Templates are especially useful for things like journal manuscripts which
4321 are to be submitted electronically.
4324 Installing a new LaTeX package
4327 Some installations may not include a LaTeX package that you would like to
4329 For example, you might need FoilTeX, a common (and very powerful) package
4330 for preparing slides or viewgraphs for overhead projectors.
4331 Here are the formal steps involved in getting the package up and running
4332 if you are using teTeX or some other web2c based distribution.
4336 Get the package from CTAN or wherever.
4344 Inventory of your LaTeX configuration
4346 manual for details of what CTAN is and where supported document classes
4357 (this usually lives in the directory
4361 , though you can run
4366 It describes how to add a local
4370 directory; follow the instructions.
4371 You need to insert the name of your local
4384 is a logical place to install software that did not come with your distribution
4390 Usually, you will have to modify only two things:
4398 to the directory you chose; e.g.
4403 TEXMFLOCAL = /usr/local/texmf
4419 TEXMF = {$HOMETEXMF,!!$TEXMFLOCAL,!!$TEXMFMAIN}
4433 You must follow the directory structure of your existing
4437 directory (for example, latex packages should go under
4439 /usr/local/texmf/tex/latex/
4444 Install the package.
4445 For example, you would unpack the FoilTeX tarball and create
4447 /usr/local/texmf/tex/latex/foiltex
4454 directory contains various files.
4464 /usr/local/texmf/ls-R
4469 From within LyX, do:
4474 ools\SpecialChar \menuseparator
4485 Now you should see your new package---for example
4494 ayout\SpecialChar \menuseparator
4509 Note that there are simpler ways of installing packages: you can add a
4510 link to the new package directory in the system LaTeX directory (
4514 , don't forget to then run
4518 ), or sometimes simply set the
4522 environment variable to include the new package.
4523 However, the formal procedure described in
4527 is guaranteed to work, so you should follow it unless circumstances absolutely
4528 prevent it: such as, when you don't have superuser access.
4534 This section describes how to write and install your own LyX layout files
4535 (also known as text classes) and walks through the
4539 text class format as an example.
4544 files describe what paragraph styles are available for a given document
4545 class and how LyX should display them.
4546 We try to provide a thorough description of the process here; however,
4547 there are so many different types of documents supported by LaTeX classes
4548 we can't hope to cover every different possibility or problem you might
4553 When you plan to write a new layout, it is extremely helpful to look at
4554 the example layouts distributed with LyX.
4555 If you use a nice LaTeX document class that might be of interest for others,
4556 too, and have a nice corresponding LyX layout, feel free to contribute
4557 the stuff to us, so we may put it into the distribution.
4560 All the tags described in this chapter are case-insensitive; this means
4573 are really the same command.
4574 The possible values are printed in brackets after the feature's name.
4575 The default value if a feature isn't specified inside a text class-description
4583 If the argument has a datatype like
4584 \begin_inset Quotes eld
4588 \begin_inset Quotes erd
4592 \begin_inset Quotes eld
4596 \begin_inset Quotes erd
4599 , the default is shown like this:
4609 Supporting new document classes
4612 There are two situations you are likely to encounter when wanting to support
4613 a new LaTeX document class, involving LaTeX2e class (
4631 If your new document class is provided as a style file that is used in conjuncti
4632 on with an existing, supported document class, start by copying the existing
4633 class's layout file into your local directory.
4634 For the sake of example we'll assume that the style file is called
4638 and it is meant to be used with
4642 which is a standard class.
4645 cp report.layout ~/.lyx/layouts/myclass.layout
4652 and change the line:
4657 DeclareLaTeXClass{report}
4665 DeclareLaTeXClass[report, myclass.sty]{report (myclass)}
4680 near the top of the file.
4683 Start LyX and select
4688 ools\SpecialChar \menuseparator
4696 Restart LyX and try creating a new document.
4701 " as a document class option in the
4706 ocument\SpecialChar \menuseparator
4714 It is likely that some of the sectioning commands and such will differ
4715 from how the base class
4728 works, so you can fiddle around with the settings for the different sections
4730 See below for more discussion on this.
4740 In this case, you will probably have to
4741 \begin_inset Quotes eld
4745 \begin_inset Quotes erd
4749 We strongly suggest copying an existing layout file which uses a similar
4750 LaTeX class and modifying it if at all possible.
4751 At least use an existing file as a starting point so you can find out what
4752 items you need to worry about.
4753 Again, the specifics are covered below.
4756 Declaring a new text class
4759 When it's finally time to get your hands dirty and create or edit your own
4760 layout file, the following sections describe what you're up against.
4761 Our advice is to go slowly, save and test often, listen to soothing music,
4762 and enjoy one or two of your favorite adult beverages; more if you are
4763 getting particularly stuck.
4764 It's really not that hard, except that the multitude of options can become
4765 overwhelming if you try to do to much in one sitting.
4766 Go have another adult beverage, just for good measure.
4772 Lines in a layout file which begin with a
4777 There is one exception to this rule: all layouts should begin with lines
4783 #% Do not delete the line below; configure depends on this
4790 DeclareLaTeXClass{article}
4793 The second line is used when you configure LyX.
4794 The layout file is read by the LaTeX script
4798 , in a special mode where
4803 The first line is just a LaTeX comment, and the second one contains the
4804 declaration of the text class.
4805 If these lines appear in a file named
4809 , then they define a text class of name
4813 (the name of the layout file) which uses the LaTeX document class
4817 (the default is to use the same name as the layout).
4819 \begin_inset Quotes eld
4823 \begin_inset Quotes erd
4826 that appears above is used as a description of the text class in the
4831 ocument\SpecialChar \menuseparator
4841 Let's assume that you wrote your own text class that uses the
4845 documentclass, but where you changed the appearance of the section headings.
4846 If you put it in a file
4850 , the header of this file should be:
4855 #% Do not delete the line below; configure depends on this
4862 DeclareLaTeXClass[article]{article (with my own headings)}
4865 This declares a text class
4869 , associated with the LaTeX document class
4874 \begin_inset Quotes eld
4877 article (with my own headings)
4878 \begin_inset Quotes erd
4882 If your text class depends on several packages, you can declare it as:
4887 #% Do not delete the line below; configure depends on this
4894 DeclareLaTeXClass[article,foo.sty]{article (with my own headings)}
4897 This indicates that your text class uses the foo.sty package.
4898 Finally, it is also possible to declare classes for SGML and DocBook code.
4899 Typical declarations will look like
4904 #% Do not delete the line below; configure depends on this
4911 DeclareSGMLClass{SGML (LinuxDoc)}
4917 #% Do not delete the line below; configure depends on this
4922 DeclareDocBookClass[article]{SGML (DocBook article)}
4925 Note that these declarations can also be given an optional parameter declaring
4926 the name of the document class (but not a list).
4929 When the text class has been modified to your taste, all you have to do
4930 is to copy it either in
4943 ools\SpecialChar \menuseparator
4951 Exit LyX and restart it; then your new text class should be available along
4955 General text class parameters
4958 These are the general parameters which describe the form of the entire document:
4987 ] Whether the class-default should have one or two columns.
4988 Can be changed in the
4993 ocument\SpecialChar \menuseparator
5004 This setting (same goes for
5008 , too) is important: if your text class has two columns by default but you
5009 forget to set it correctly, the
5017 be output when you select
5026 ocument\SpecialChar \menuseparator
5047 ] Whether the class-default should be printing on one or both sides of the
5049 Can be changed in the
5057 ocument\SpecialChar \menuseparator
5081 ] The class default pagestyle.
5082 Can be changed in the
5087 ocument\SpecialChar \menuseparator
5111 , Counter_Section, Counter_Subsection, Counter_Subsubsection, Counter_Paragraph,
5114 Counter_Subparagraph, Counter_EnumI, Counter_EnumII,
5116 Counter_EnumIII, Counter_EnumIV
5118 ] The highest level of automatic enumeration.
5123 for a book or report and
5128 If there is no enumeration needed at all, for example inside a letter class,
5144 ClassOptions\SpecialChar \ldots{}
5148 This section describes various global options supported by the document
5150 See Section\SpecialChar ~
5152 \begin_inset LatexCommand \ref{sec:classoptions}
5172 ] Whether the class already loads the
5177 This is the case of the
5201 ] Whether the class already provides the functionality of the
5206 This is the case of the
5230 ] Whether the class already provides the functionality of the
5235 This is the case of the
5248 This is used to describe the default font of the document.
5249 See Section\SpecialChar ~
5251 \begin_inset LatexCommand \ref{sec:fonts}
5268 ] This is the style that will be assigned to new paragraphs, usually
5273 This will default to the first defined style if not given, but you are
5274 highly encouraged to use this directive.
5293 ] Indicates what kind of markup is used to define the title of a document.
5298 means that the macro with name
5302 will be inserted after the last layout which has
5303 \begin_inset Quotes eld
5311 \begin_inset Quotes erd
5319 corresponds to the case where the block of paragraphs which have
5320 \begin_inset Quotes eld
5328 \begin_inset Quotes erd
5331 should be enclosed into the
5350 ] The name of the command/environment mentionned above.
5356 Preamble\SpecialChar \ldots{}
5360 A set of macro definitions that will be output at the beginning of the
5362 Use this for global definitions.
5371 As its name implies, this command allows you to include another layout
5372 definition file within yours to avoid duplicating commands.
5373 Common examples are the standard layout files, for example,
5377 , which contains most of the basic layouts.
5383 Style\SpecialChar \ldots{}
5387 This sequence defines a new style.
5388 See Section\SpecialChar ~
5390 \begin_inset LatexCommand \ref{sec:style}
5403 This command deletes an existing style.
5404 This is particularly useful when you want to suppress a style that has
5405 be defined in an input file.
5411 Float\SpecialChar \ldots{}
5415 This sequance defines a new float.
5416 See Section\SpecialChar ~
5418 \begin_inset LatexCommand \ref{sec:floats}
5431 This command deletes an existing float.
5432 This is particularly useful when you want to suppress a float that has
5433 be defined in an input file.
5439 Counter\SpecialChar \ldots{}
5443 This sequence defines a new counter.
5444 See Section\SpecialChar ~
5446 \begin_inset LatexCommand \ref{sec:counter}
5474 \begin_inset LatexCommand \label{sec:classoptions}
5482 section can contain the following entries:
5495 ] The list of available font sizes for the document's main font, separated
5497 \begin_inset Quotes eld
5505 \begin_inset Quotes erd
5519 string="empty|plain|headings|fancy"
5521 ] The list of available page styles, separated by
5522 \begin_inset Quotes eld
5530 \begin_inset Quotes erd
5546 ] Some document class options, separated by a comma, that will be added
5547 to the optional part of the
5556 Specific Paragraph Layouts
5560 \begin_inset LatexCommand \label{sec:style}
5564 A paragraph layout description looks like this
5570 Note that this will either define a new layout or modify an existing one.
5588 where the following commands are allowed:
5610 This is used to copy all the features of an existing layout into the current
5626 , Command, Environment, Item_Environment,
5632 ] How the layout should be translated into LaTeX.
5637 means nothing special.
5650 {\SpecialChar \ldots{}
5665 }\SpecialChar \ldots{}
5689 is generated for each paragraph of this environment.
5702 is passed as an argument to the environment.
5707 can be defined in the
5712 ayout\SpecialChar \menuseparator
5726 is perhaps a bit misleading, since these rules apply to SGML classes, too.
5727 Visit the SGML class files for specific examples.
5737 If 1, marks the layout as being part of a title block (see also the
5754 The name of the corresponding LaTeX stuff.
5755 Either the environment or command name.
5764 The optional parameter for the corresponding
5771 This parameter cannot be changed from within LyX.
5785 , Manual, Dynamic, First_Dynamic, Right_Address_Box
5789 The kind of margin that the layout has on the left side.
5794 just means a fixed margin.
5799 means that the left margin depends on the string entered in the
5804 dit\SpecialChar \menuseparator
5809 aragraph\SpecialChar ~
5813 This is used to typeset nice lists without tabulators.
5818 means that the margin depends on the size of the label.
5819 This is used for automatic enumerated headlines.
5820 It is obvious that the headline
5821 \begin_inset Quotes eld
5824 5.4.3.2.1 Very long headline
5825 \begin_inset Quotes erd
5828 must have a wider left margin (as wide as
5829 \begin_inset Quotes eld
5833 \begin_inset Quotes erd
5836 plus the space) than
5837 \begin_inset Quotes eld
5840 3.2 Very long headline
5841 \begin_inset Quotes erd
5844 , even if other word processors are not able to do this.
5849 is similar, but only the very first row of the paragraph is dynamic, while
5850 the others are static; this is used, for example, for descriptions.
5855 means the margin is chosen in a way that the longest row of this paragraph
5856 fits to the right margin.
5857 This is used to typeset an address on the right edge of the page.
5873 ] Whether the following Paragraph is allowed to indent its very first row.
5878 means that it is not allowed to do so,
5882 means it could do so if it wants to.
5895 ] The indent of the very first line of a paragraph.
5896 The argument is passed as a string.
5901 means that the paragraph is indented with the width of
5910 You can get a negative width by prefixing the string with
5915 This way was chosen so that the look is the same with each used screen
5921 will be fixed for a certain layout.
5922 The exception is Standard layout, since the indentation of a Standard layout
5923 paragraph can be prohibited with
5928 Also, Standard layout paragraphs inside environments use the
5932 of the environment, not their native one.
5933 For example, Standard paragraphs inside an enumeration are not indented.
5946 ] LyX allows to choose either
5947 \begin_inset Quotes eld
5951 \begin_inset Quotes erd
5955 \begin_inset Quotes eld
5959 \begin_inset Quotes erd
5962 to typeset a document.
5964 \begin_inset Quotes eld
5968 \begin_inset Quotes erd
5971 is chosen, this value is completely ignored.
5973 \begin_inset Quotes eld
5977 \begin_inset Quotes erd
5980 is chosen, the parindent of a LaTeXtype
5981 \begin_inset Quotes eld
5985 \begin_inset Quotes erd
5988 layout is ignored and all paragraphs are additionally separated by this
5990 The vertical space is calculated with
5992 value*DefaultHeight()
5998 is the height of a row with the normal font.
5999 This way, the look stays the same with different screen fonts.
6012 ] The vertical space with which the very first of a chain of paragraphs
6013 with this layout is separated from the previous paragraph.
6014 If the previous paragraph has another layout, the separations are not simply
6015 added, but the maximum is taken.
6032 for the very last paragraph.
6045 ] The vertical space between two paragraphs of this layout.
6058 ] This is an extra space between the paragraphs of an environment layout.
6059 If you put other layouts into an environment, each is separated with the
6065 But the whole items of the environment are additionally separated with
6084 ] If you put layouts into environments, the leftmargins are not simply added,
6085 but added with a factor
6086 \begin_inset Formula $\frac{4}{depth+4}$
6090 Note that this parameter is also used when the border is defined as
6099 Then it is added to the manual or dynamic border.
6100 This string has the same meaning as for
6135 , Manual, Static, Top_Environment,
6137 Centered_Top_Environment, Sensitive, Counter_Chapter,
6139 Counter_Section, Counter_Subsection, Counter_Subsubsection,
6141 Counter_Paragraph, Counter_Subparagraph, Counter_EnumI,
6147 Counter_EnumII, Counter_EnumIII, Counter_EnumIV
6155 means the label is the very first word (up to the first real blank).
6160 means it is defined in the layout (see
6171 Centered_Top_Environment
6173 are special cases of
6178 The label will be printed above the paragraph, but only at the top of an
6179 environment or the top of a chain of paragraphs with this layout.
6180 Usage is for example the
6189 This is also the case for
6193 labels with latex type
6197 , in order to make layouts for theorems work correctly.
6202 is a special case for the caption-labels
6203 \begin_inset Quotes eld
6207 \begin_inset Quotes erd
6211 \begin_inset Quotes eld
6215 \begin_inset Quotes erd
6223 means the (hardcoded) label string depends on the kind of float.
6228 label types should be self explanatory.
6241 ] The horizontal space between the label and the text body.
6242 Only used for labels that are not above the text body.
6251 [float=0] The vertical space between the label and the text body.
6252 Only used for labels that are above the text body (
6258 Centered_Top_Environment
6273 ] The string used for a label with a
6282 this string is also used as a suggestion for the
6286 that can be set in the
6291 dit\SpecialChar \menuseparator
6296 aragraph\SpecialChar ~
6300 When the labeltype is
6307 , this string is prepended to the counter.
6321 , Box, Filled_Box, Static
6323 ] The type of label that stands at the end of the paragraph (or sequence
6346 \begin_inset Quotes eld
6350 \begin_inset Quotes erd
6362 ) is a white (resp.\SpecialChar ~
6363 black) square suitable for end of proof markers,
6367 is an explicit text string.
6380 ] The string used for a label with a
6403 , left, right, center
6405 ] Paragraph alignment.
6419 , left, right, center
6426 Some LaTeX styles prohibit certain alignments, since those wouldn't make
6428 For example a right-aligned or centered enumeration isn't possible.
6444 ] With this parameter the
6449 \begin_inset Quotes eld
6452 Vertical space above
6453 \begin_inset Quotes erd
6461 dit\SpecialChar \menuseparator
6466 aragraph\SpecialChar ~
6469 dialog can be set when initializing a paragraph with this layout
6477 Note from Jean-Marc:
6479 I'm not sure that this setting has much use, and it should probably be removed
6520 ] Whether fragile commands in this layout should be
6542 ] Whether newlines are translated into LaTeX newlines (
6551 The translation can be switched off to allow more comfortable LaTeX editing
6568 ] Whether the contents of this paragraph should be output in raw form, meaning
6569 without special translations that LaTeX would require.
6570 This somehow replaces the older
6590 ] Usually LyX doesn't allow you to insert more than one space between words,
6591 since a space is considered as the separation between two words, not a
6592 character or symbol of its own.
6593 This is a very fine thing but sometimes annoying, for example when typing
6594 program code or plain LaTeX code.
6600 Note that LyX will create protected blanks for the additional blanks when
6601 in another mode than LaTeX-mode.
6617 ] Usually LyX does not allow you to leave a paragraph empty, since it would
6618 lead to empty LaTeX output.
6619 There are some cases where this could be desirable however: in a letter
6620 template, the required fields can be provided as empty fields, so that
6621 people do not forget them; in some special classes, a layout can be used
6622 as some kind of break, which does not contain actual text.
6636 , onehalf, double, other
6641 ] This defines what the default spacing should be in the layout.
6654 correspond respectively to a multiplier value of 1, 1.25 and 1.667.
6655 If you specify the argument
6659 , then you should also provide a numerical argument which will be the actual
6661 Note that, contrary to other parameters,
6665 implies the generation of specific LaTeX code, using the package
6679 The font used for both the text body
6684 See section\SpecialChar ~
6686 \begin_inset LatexCommand \ref{sec:fonts}
6691 Note that defining this font automatically defines the
6704 The font used for the text body .
6705 See section\SpecialChar ~
6707 \begin_inset LatexCommand \ref{sec:fonts}
6720 The font used for the label.
6721 See section\SpecialChar ~
6723 \begin_inset LatexCommand \ref{sec:fonts}
6733 Preamble\SpecialChar \ldots{}
6737 A set of macro definitions that will be output at the beginning of the
6738 LaTeX files when the layout is used.
6739 Use this to define the macros needed by this particular layout.
6748 the name of a style which preamble should be output
6752 the one mentionned above.
6753 This allows to ensure some ordering of the preamble snippets when macros
6754 definitions depend on one another
6760 Note that, besides that functionality, there is no way to ensure any ordering
6762 The ordering that you see in a given version of LyX may change without
6763 warning in later versions).
6786 \begin_inset LatexCommand \label{sec:floats}
6790 Since version 1.3.0 of LyX, it is necessary to define the floats (
6798 , \SpecialChar \ldots{}
6799 ) in the text class itself.
6800 If you are looking here to learn how to upgrade an existing text class,
6801 it will probably turn out that all you have to do is to add
6807 at a reasonable location of the text class.
6813 Don't forget to also have a look at counters in next section.
6816 If you want to implement a text class that proposes some other float types
6817 (like the AGU class bundled with LyX), the information below will hopefully
6832 \begin_inset Quotes erd
6836 \begin_inset Quotes erd
6840 \begin_inset Quotes eld
6844 \begin_inset Quotes erd
6847 of the new class of floats, like program or algorithm.
6848 After the appropriate
6880 \begin_inset Quotes erd
6884 \begin_inset Quotes erd
6887 ] The string that will be used in the menus and also for the caption.
6910 if the float is already defined by the documentclass.
6915 , the float will be defined using the LaTeX package
6933 \begin_inset Quotes erd
6937 \begin_inset Quotes erd
6940 ] This (optional) argument determines whether floats of this class will
6941 be numbered within some sectional unit of the document.
6942 For example, if within is equal to
6946 , the floats will be numbered within chapters.
6961 \begin_inset Quotes erd
6965 \begin_inset Quotes erd
6968 ] The style used when defining the float using
6988 \begin_inset Quotes erd
6992 \begin_inset Quotes erd
6995 ] The default placement for the given class of floats.
6996 They are like in standard LaTeX:
7012 for top, bottom, page, and here, respectively.
7018 Note that the order of these letters in the string is irrelevant, like in
7022 On top of that there is a new type,
7026 , which does not really correspond to a float, since it means: put it
7027 \begin_inset Quotes eld
7031 \begin_inset Quotes erd
7035 Note, however that the
7039 specifier is special and, because of implementation details cannot be used
7040 in non-builtin float types.
7041 If you do not understand what this means, just use
7059 \begin_inset Quotes erd
7063 \begin_inset Quotes erd
7066 ] The file name extension of an auxiliary file for the list of figures (or
7068 LaTeX writes the captions to this file.
7082 \begin_inset Quotes erd
7086 \begin_inset Quotes erd
7089 ] The heading used for the list of floats.
7096 \begin_inset LatexCommand \label{sec:counter}
7100 Since version 1.3.0 of LyX, it is necessary to define the counters (
7108 , \SpecialChar \ldots{}
7109 ) in the text class itself.
7110 If you are looking here to learn how to upgrade an existing text class,
7111 it will probably turn out that all you have to do is to add
7114 Input stdcounters.inc
7117 The definition of counters if presently a bit primitive in LyX, since many
7118 things are still hardcoded.
7119 The following two parameters can be used:
7133 \begin_inset Quotes erd
7137 \begin_inset Quotes erd
7140 ] The name of the counter
7154 \begin_inset Quotes erd
7158 \begin_inset Quotes erd
7161 ] If this is set to the name of another counter, the present counter will
7162 be reset everytime the other one is increased (is that unclear enough?).
7169 \begin_inset LatexCommand \label{sec:fonts}
7173 A font description looks like that:
7191 and the following commands are available:
7237 , Italic, SmallCaps, Slanted
7254 , large, larger, largest, huge, giant
7271 , black, white, red, green, blue, cyan, magenta, yellow
7277 \begin_inset LatexCommand \label{sec:templates}
7284 Templates are created just like usual documents.
7285 The only difference is that usual documents contain all possible settings,
7286 including the fontscheme and the papersize.
7287 Usually a user doesn't want a template to overwrite his defaults in these
7289 For that reason, the designer of a template should remove the corresponding
7302 from the template LyX file.
7303 This can be done with any simple text-editor, for example
7315 Put the edited template files you create in
7319 , copy the ones you use from the global template directory in
7323 to the same place, and redefine the template path in the
7328 dit\SpecialChar \menuseparator
7347 Note that there is a template which has a particular meaning:
7352 This template is loaded everytime you create a new document with
7359 \SpecialChar \menuseparator
7367 in order to provide useful defaults.
7368 To create this template from inside LyX, all you have to do is to open
7369 a document with the correct settings, and use the
7375 e as Document Defaults
7380 Including External Material
7386 One often requested feature from LyX users is to be able to interface LyX
7387 with XFig, Dia, or other similar applications that specialize in producing
7388 a certain kind of diagram, figure, schematic or whatever material might
7389 be relevant to include in your document.
7390 Previously, it was only possible to include boring, static, fixed images
7391 in LyX documents with the graphics feature, but there are several limitations
7392 attached to this approach:
7395 If you want to change the figure, you have to invoke an external program
7399 LyX does not notice that the referenced files change, so the on-screen display
7400 can fast become obsolete, and this is aggravated by the lack of a means
7401 of updating the display
7404 The graphics stuff does not provide any mechanisms for coping with different
7405 exported formats such as DocBook, HTML or raw Ascii
7408 The external material facility attempts to solve all of these problems
7414 Even if the graphics facility can't solve all problems, it is still valuable
7415 because it does provide in-line preview of the graphics, and supports advanced
7416 geometric transformations with a comfortable user interface.
7420 It does this by offering a general method to interface LyX to external
7422 Instead of introducing a long list of different constructs tailored for
7423 each specific application, we chose to sacrifice the in-line displaying
7424 of the included material in order to provide a general construct to cover
7425 a wide range of applications.
7426 The result is the external material construct.
7427 External material presents itself in the document simply as a button, but
7428 don't let this fool you.
7429 When you click on it, a dialog will appear that allows you to chose exactly
7430 what material to include, and in the following sections you will learn
7431 that this is indeed a powerful mechanism that can solve all of the above
7438 The external material feature is based on the concept of a
7443 A template is a specification of how LyX should interface with a certain
7445 As bundled, LyX comes with predefined templates for XFig figures, Dia diagrams,
7446 various raster format images, gnuplot, and more.
7447 You can check the actual list by using the
7449 Insert\SpecialChar \menuseparator
7458 Furthermore, it is possible to roll your own template to support a specific
7460 Later we'll describe in more detail what is involved, and hopefully you
7461 will submit all the templates you create so we can include them in a later
7465 Another basic idea of the external material feature is to distinguish between
7466 the original file that serves as a base for final material and the produced
7467 file that is included in your exported or printed document.
7468 For example, consider the case of a figure produced with XFig.
7469 The XFig application itself works on an original file with the
7474 Within XFig, you create and change your figure, and when you are done,
7480 When you want to include the figure in your document, you invoke
7484 in order to create a PostScript file that can readily be included in your
7490 file is the original file, and the PostScript file is the produced file.
7493 This distinction is important in order to allow updating of the material
7494 while you are in the process of writing the document.
7495 Furthermore, it provides us with the flexibility that is needed to support
7496 multiple export formats.
7497 For instance, in the case of an Ascii resulting file, it is not exactly
7498 an award-winning idea to include the figure as raw PostScript.
7499 Instead, you'd either prefer to just include a reference to the figure,
7500 or try to invoke some graphics to Ascii converter to make the final result
7501 look similar to the real graphics.
7502 The external material management allows you to do this, because it is parameter
7503 ized on the different export formats that LyX supports.
7506 Besides supporting the production of different products according to the
7507 exported format, it supports tight integration with editing and viewing
7509 In the case of an XFig figure, you are able to invoke
7513 on the original file with a single click from within the external material
7514 dialog in LyX, and also preview the produced PostScript file with
7519 No more fiddling around with the command line and/or file browsers to locate
7520 and manipulate the original or produced files.
7521 In this way, you are finally able to take full advantage of the many different
7522 applications that are relevant to use when you write your documents, and
7523 ultimately be more productive.
7526 So, all in all, LyX has information about a number of different programs
7527 to use behind the scenes in order to realize all of this machinery.
7528 This information, in fact, is exactly what is contained in the templates.
7529 To each template, there is associated a list of command lines that are
7530 used to invoke applications, convert the original file to the produced
7532 This mechanism allows the advanced user to extend the capabilities of LyX
7533 without fiddling with the source code.
7534 It requires some footwork to define all the different commands and flags,
7535 but luckily, the LyX team did all the hard work and specified these for
7539 But before the trees grow into the skies, we have to admit that we did take
7541 Since you can produce many different kinds of files to go with each exported
7542 format, one could also expect that it would be possible to preview each
7544 The LyX team decided against this in order to keep the user interface simple.
7545 Instead of providing a button for each exported file format, we decided
7546 to introduce the concept of the primary file format and just have one button.
7556 in the external material dialog, you will get a view of the produced file
7557 in the primary file format.
7558 And the primary file format is specified by your document class.
7559 For most document classes, the primary file format is LaTeX, but for the
7560 DocBook document classes, the primary file format is DocBook.
7561 So, when you view the produced file, keep in mind that it will only be
7562 a preview of what the main result will be.
7563 If you want to see how other exported formats turn out, you have to export
7564 them and preview them by hand.
7567 The external material dialog
7570 You insert external material from the
7578 When you do this, a button is inserted into your document, and the external
7579 material dialog is shown.
7580 This dialog allows you to describe exactly what material should be included,
7581 and also how it should be included.
7582 Furthermore, it provides access to the external applications to either
7583 view, edit or produce the material that is used in the resulting file.
7586 At the top of this dialog, there is a drop-down list where you can chose
7587 which template should be used.
7588 Just below the template drop-down, there's a text area with a short blurb
7589 about the chosen template that should help you use it.
7590 Most often, it will provide a short description of the template, and a
7591 few hints on how to parameterize the use of it.
7592 Further down, you'll find a filename input field along with a
7593 \begin_inset Quotes eld
7597 \begin_inset Quotes erd
7600 button that allows you to chose which file should be included with the
7601 standard file browser.
7602 Thus this field specifies the original file.
7603 Since the produced file is automatically generated when needed, there is
7604 no need to give access to it in the user interface.
7607 At the bottom of the dialog, you'll find a general input box called
7612 This box is generally used to parameterize the specific template.
7613 The specific use should be covered in the help blurb associated with the
7614 template, but it typically allows you to define variations on how the produced
7615 file should be generated.
7618 At the right side of the dialog, you'll find three buttons:
7646 These in turn allow you to edit your original file with the appropriate
7647 editing application, view the produced file as included in the primary
7648 format document, and finally force an update of the resulting material
7649 in the primary format.
7659 button will be disabled, because most templates are configured to automatically
7660 update the produced file when needed.
7661 In those cases, there is no need to force the production of a new produced
7663 However, some templates are configured to not be automatically producing
7664 the residual product, because the cost of producing the produced file might
7665 be so large that it would be a pain to do it all the time.
7666 Those types are known as
7671 In those cases, you can use the button to force the production of the produced
7672 file exactly when you need it, and thus control the amount of work that
7678 responsibility to do this to keep the produced files current at all times:
7679 before printing, before exporting, before viewing, etc.
7680 At some time in the future, it might be possible that LyX will help you
7681 with this task.Any changes in the template, filename or parameters are actually
7682 applied whenever you press
7710 In this section, we should include some examples of use of the external
7712 Those examples could include:
7715 External raster images
7718 External XFig figures
7727 The use of makefiles
7730 Recursive external LyX templates
7733 The external template configuration file
7736 It is relatively easy to add custom external template definitions to LyX.
7737 However, be aware this doing this in an careless manner most probably
7741 introduce an easily exploitable security hole.
7742 So before you do this, please read the discussion about security which
7746 Having said that, we encourage you to submit any interesting templates that
7751 The external templates are defined in the
7753 lib/external_templates
7756 You can place your own version in
7758 .lyx/external_templates
7761 At some point in time, hopefully somebody will document the template contents,
7762 and the syntax used to define your templates.
7765 The substitution mechanism
7768 When the external material facility invokes an external program, it is done
7769 on the basis of a command defined in the template configuration file.
7770 These commands can contain various macros that are expanded before execution.
7771 Execution always take place in the directory of the containing document.
7774 Also, whenever external material is to be displayed, the name will be produced
7775 by the substitution mechanism.
7778 The available macros are the following:
7781 $$FName The filename of the file specified in the external material dialog.
7784 $$Basename The filename without the extension.
7787 $$Tempname A name and full path to a temporary file which will be automatically
7788 deleted whenever the containing document is closed, or the external material
7793 \begin_inset Quotes eld
7797 \begin_inset Quotes erd
7800 ) This macro will expand to the contents of the file with the name
7807 $$Sysdir This macro will expand to the absolute path of the system directory.
7808 This is typically used to point to the various helper scripts that are
7812 In addition to these, the facility will expand general environment variables
7823 The external material feature interfaces with a lot of external programs
7824 and does so automatically, so we have to consider the security implications
7826 In particular, since you have the option of including your own filenames
7827 and/or parameter strings and those are expanded into a command, it seems
7828 that it would be possible to create a malicious document which executes
7829 arbitrary commands when a user views or prints the document.
7830 This is something we definately want to avoid.
7833 However, since the external program commands are specified in the template
7834 configuration file only, there are no security issues if LyX is properly
7835 configured with safe templates only.
7836 This is so because the external programs are invoked with the
7840 -system call rather than the
7844 system-call, so it's not possible to execute arbitrary commands from the
7845 filename or parameter section via the shell.
7848 This also implies that you are restricted in what command strings you can
7849 use in the external material templates.
7850 In particular, pipes and redirection are not readily available.
7851 This has to be so if LyX should remain safe.
7852 If you want to use some of the shell features, you should write a safe
7853 script to do this in a controlled manner, and then invoke the script from
7859 directory of the LyX installation, you can find a safe wrapper script
7861 general_command_wrapper.py
7863 that supports redirection of input and output.
7864 That can serve as an example for how to write safe template scripts.
7865 For a more advanced example that uses
7869 and friends, take a look at the
7876 It is possible to design a template that interacts directly with the shell,
7877 but since this would allow a malicious user to execute arbitrary commands
7878 by writing clever filenames and/or parameters, we generally recommend that
7879 you only use safe scripts that work with the
7883 system call in a controlled manner.
7884 Of course, for use in a controlled environment, it can be tempting to just
7885 fall back to use ordinary shell scripts.
7886 If you do so, be aware that you
7890 provide an easily exploitable security hole in your system.
7891 Of course it stands to reason that such unsafe templates will never be
7892 included in the standard LyX distribution, although we do encourage people
7893 to submit new templates in the open source tradition.
7894 But LyX as shipped from the official distribution channels will never have
7898 Including external material provides a lot of power, and you have to be
7899 careful not to introduce security hazards with this power.
7900 A subtle error in a single line in an innocent looking script can open
7901 the door to huge security problems.
7902 So if you do not fully understand the issues, we recommend that you consult
7903 a knowledgable security professional or the LyX development team if you
7904 have any questions about whether a given template is safe or not.
7905 And do this before you use it in an uncontrolled environment.
7914 The LyX server is a method implemented in LyX that will enable other programs
7915 to talk to LyX, invoke LyX commands, and retrieve information about the
7917 This is only intended for advanced users, but they should find it useful.
7920 Starting the LyX Server
7923 The LyX server works through the use of a pair of named pipes.
7924 These are usually located in your home directory and have the names
7925 \begin_inset Quotes eld
7933 \begin_inset Quotes erd
7937 \begin_inset Quotes eld
7945 \begin_inset Quotes erd
7949 External programs write into
7953 and read back data from
7958 The stem of the pipe names can be defined in the
7963 ools\SpecialChar \menuseparator
7972 "/home/myhome/.lyxpipe"
7985 ' to create the pipes.
7986 The above setting also has the effect of activating the LyX server.
7987 If one of the pipes already exists, LyX will assume that another LyX process
7988 is already running and will not start the server.
7989 To have several LyX processes with servers at the same time, you have to
7990 change the configuration between the start of the programs.
7993 If you are developing a client program, you might find it useful to enable
7994 debugging information from the LyX server.
7995 Do this by starting LyX as
8000 Warning: if LyX crashes, it may not manage to remove the pipes; in this
8001 case you must remove them manually.
8002 If LyX starts and the pipes exist already, it will not start any server.
8005 Other than this, there are a few points to consider:
8008 Both server and clients must run on UNIX or OS/2 machines.
8009 Communications between LyX on UNIX and clients on OS/2 or vice versa is
8010 not possible right now.
8013 On OS/2, only one client can connect to LyXServer at a time.
8016 On OS/2, clients must open inpipe with
8023 You can find a complete example client written in C in the source distribution
8026 development/server_monitor.c
8031 Normal communication
8034 To issue a LyX call, the client writes a line of ASCII text into the input
8036 This line has the following format:
8056 is a name that the client can choose arbitrarily.
8057 Its only use is that LyX will echo it if it sends an answer - so a client
8058 can dispatch results from different requesters.
8065 is the function you want LyX to perform.
8066 It is the same as the commands you'd use in the minibuffer.
8073 is an optional argument which is meaningful only to some functions (for
8075 \begin_inset Quotes eld
8079 \begin_inset Quotes erd
8082 which will insert the argument as text at the cursor position.)
8085 The answer from LyX will arrive in the output pipe and be of the form
8109 are just echoed from the command request, while
8113 is more or less useful information filled according to how the command
8114 execution worked out.
8115 Some commands will return information about the internal state of LyX,
8117 \begin_inset Quotes eld
8121 \begin_inset Quotes erd
8124 , while other will return an empty data-response.
8125 This means that the command execution went fine.
8128 In case of errors, the response from LyX will have this form
8148 should contain an explanation of why the command failed.
8154 echo "LYXCMD:test:beginning-of-buffer:" >~/.lyxpipe.in
8157 echo "LYXCMD:test:get-xy:" >~/.lyxpipe.in
8159 read a <~/.lyxpipe.out
8167 LyX can notify clients of events going on asynchronously.
8168 Currently it will only do this if the user binds a key sequence with the
8170 \begin_inset Quotes eld
8174 \begin_inset Quotes erd
8178 The format of the string LyX sends is as follows:
8193 is the printed representation of the key sequence that was actually typed
8197 This mechanism can be used to extend LyX's command set and implement macros:
8198 bind some key sequence to
8199 \begin_inset Quotes eld
8203 \begin_inset Quotes erd
8206 , start a client that listens on the out pipe, dispatches the command according
8207 to the sequence and starts a function that may use LyX calls and LyX requests
8208 to issue a command or a series of commands to LyX.
8211 The simple LyX Server Protocol
8214 LyX implements a simple protocol that can be used for session management.
8215 All messages are of the form
8232 \begin_inset Quotes eld
8236 \begin_inset Quotes erd
8240 \begin_inset Quotes eld
8244 \begin_inset Quotes erd
8249 \begin_inset Quotes eld
8253 \begin_inset Quotes erd
8256 is received from a client, LyX will report back to inform the client that
8257 it's listening to it's messages, while
8258 \begin_inset Quotes eld
8262 \begin_inset Quotes erd
8265 sent from LyX will inform clients that LyX is closing.
8271 This appendix is a huge cross-reference to all the English language keybindings.
8272 Originally, we simply wanted to list all of the key bindings followed by
8273 the function it's bound to.
8274 That way, a user can look up a key to find out what it does.
8275 We then decided, what the hey, why not include the default toolbar and
8277 Please note this section is likely to be very out of date.
8280 The form is really self-explanatory, but here are a few tips: all entries
8281 are arranged roughly alphabetically for a given modifier (
8290 For the general keyboard layout, simpler prefixes precede the more complex
8300 All entries were gleaned from the default user interface and binding files
8301 located in the directories
8303 \SpecialChar \ldots{}
8308 \SpecialChar \ldots{}
8311 ; they should be treated as the final word on the bindings.
8314 As a final note, be aware that some window managers (such as FVWM) take
8315 control of some of the function keys or motion keys.
8320 is listed here as generating
8324 , but FVWM grabs it and uses it to change virtual desktops instead.
8325 Very annoying unless you instruct your window manager to stop intercepting
8383 Icon "footnote-insert"
8386 Icon "marginpar-insert"
8395 Icon "figure-insert"
8398 Icon "dialog-tabular-insert"
8409 \labelwidthstring 00.00.0000
8418 \labelwidthstring 00.00.0000
8429 \labelwidthstring 00.00.0000
8440 \labelwidthstring 00.00.0000
8453 \labelwidthstring 00.00.0000
8462 \labelwidthstring 00.00.0000
8475 \labelwidthstring 00.00.0000
8484 \labelwidthstring 00.00.0000
8495 \labelwidthstring 00.00.0000
8506 \labelwidthstring 00.00.0000
8517 \labelwidthstring 00.00.0000
8526 \labelwidthstring 00.00.0000
8538 \labelwidthstring 00.00.0000
8546 \labelwidthstring 00.00.0000
8554 \labelwidthstring 00.00.0000
8562 \labelwidthstring 00.00.0000
8570 \labelwidthstring 00.00.0000
8578 \labelwidthstring 00.00.0000
8587 \labelwidthstring 00.00.0000
8599 \labelwidthstring 00.00.0000
8610 \labelwidthstring 00.00.0000
8621 \labelwidthstring 00.00.0000
8632 \labelwidthstring 00.00.0000
8643 \labelwidthstring 00.00.0000
8654 \labelwidthstring 00.00.0000
8665 \labelwidthstring 00.00.0000
8679 \labelwidthstring 00.00.0000
8687 tabular-feature append-row
8689 \labelwidthstring 00.00.0000
8697 tabular-feature toggle-line-bottom
8699 \labelwidthstring 00.00.0000
8707 tabular-feature align-center
8709 \labelwidthstring 00.00.0000
8717 tabular-feature delete-column
8719 \labelwidthstring 00.00.0000
8727 tabular-feature align-left
8729 \labelwidthstring 00.00.0000
8737 tabular-feature align-right
8739 \labelwidthstring 00.00.0000
8747 tabular-feature toggle-line-left
8749 \labelwidthstring 00.00.0000
8757 tabular-feature multicolumn
8759 \labelwidthstring 00.00.0000
8767 tabular-feature valign-center
8769 \labelwidthstring 00.00.0000
8777 tabular-feature valign-top
8779 \labelwidthstring 00.00.0000
8787 tabular-feature toggle-line-right
8789 \labelwidthstring 00.00.0000
8797 tabular-feature toggle-line-top
8799 \labelwidthstring 00.00.0000
8807 tabular-feature append-column
8809 \labelwidthstring 00.00.0000
8817 tabular-feature valign-bottom
8819 \labelwidthstring 00.00.0000
8827 tabular-feature delete-row
8830 \labelwidthstring 00.00.0000
8842 \labelwidthstring 00.00.0000
8848 floats-operate openfoot
8850 \labelwidthstring 00.00.0000
8856 floats-operate closefoot
8858 \labelwidthstring 00.00.0000
8864 floats-operate openfig
8866 \labelwidthstring 00.00.0000
8874 \labelwidthstring 00.00.0000
8882 \labelwidthstring 00.00.0000
8888 floats-operate closefig
8891 \labelwidthstring 00.00.0000
8902 \labelwidthstring 00.00.0000
8915 \labelwidthstring 00.00.0000
8926 \labelwidthstring 00.00.0000
8937 \labelwidthstring 00.00.0000
8950 \labelwidthstring 00.00.0000
8959 \labelwidthstring 00.00.0000
8971 \labelwidthstring 00.00.0000
8979 primary-selection-paste
8981 \labelwidthstring 00.00.0000
8989 primary-selection-paste paragraph
8995 \labelwidthstring 00.00.0000
9009 \labelwidthstring 00.00.0000
9017 buffer-float-insert algorithm
9019 \labelwidthstring 00.00.0000
9027 buffer-float-insert wide-tab
9029 \labelwidthstring 00.00.0000
9037 buffer-float-insert figure
9039 \labelwidthstring 00.00.0000
9047 buffer-float-insert table
9049 \labelwidthstring 00.00.0000
9057 buffer-float-insert wide-fig
9060 \labelwidthstring 00.00.0000
9069 dialog-tabular-insert
9071 \labelwidthstring 00.00.0000
9082 \labelwidthstring 00.00.0000
9093 \labelwidthstring 00.00.0000
9104 \labelwidthstring 00.00.0000
9115 \labelwidthstring 00.00.0000
9126 \labelwidthstring 00.00.0000
9137 \labelwidthstring 00.00.0000
9148 \labelwidthstring 00.00.0000
9159 \labelwidthstring 00.00.0000
9170 \labelwidthstring 00.00.0000
9181 \labelwidthstring 00.00.0000
9195 \labelwidthstring 00.00.0000
9205 \labelwidthstring 00.00.0000
9215 \labelwidthstring 00.00.0000
9225 \labelwidthstring 00.00.0000
9235 \labelwidthstring 00.00.0000
9245 \labelwidthstring 00.00.0000
9256 \labelwidthstring 00.00.0000
9267 \labelwidthstring 00.00.0000
9281 \labelwidthstring 00.00.0000
9289 protected-space-insert
9291 \labelwidthstring 00.00.0000
9299 end-of-sentence-period-insert
9301 \labelwidthstring 00.00.0000
9311 \labelwidthstring 00.00.0000
9321 \labelwidthstring 00.00.0000
9331 \labelwidthstring 00.00.0000
9339 menu-separator-insert
9341 \labelwidthstring 00.00.0000
9349 hyphenation-point-insert
9351 \labelwidthstring 00.00.0000
9361 \labelwidthstring 00.00.0000
9369 command-sequence math-insert ^;math-mode;
9371 \labelwidthstring 00.00.0000
9379 command-sequence math-insert _;math-mode;
9382 \labelwidthstring 00.00.0000
9396 \labelwidthstring 00.00.0000
9404 file-insert-ascii lines
9406 \labelwidthstring 00.00.0000
9414 file-insert-ascii paragraphs
9416 \labelwidthstring 00.00.0000
9427 \labelwidthstring 00.00.0000
9438 \labelwidthstring 00.00.0000
9449 \labelwidthstring 00.00.0000
9463 \labelwidthstring 00.00.0000
9474 \labelwidthstring 00.00.0000
9485 \labelwidthstring 00.00.0000
9496 \labelwidthstring 00.00.0000
9507 \labelwidthstring 00.00.0000
9518 \labelwidthstring 00.00.0000
9529 \labelwidthstring 00.00.0000
9540 \labelwidthstring 00.00.0000
9551 \labelwidthstring 00.00.0000
9562 \labelwidthstring 00.00.0000
9573 \labelwidthstring 00.00.0000
9584 \labelwidthstring 00.00.0000
9594 \layout Subsubsection
9598 ayout\SpecialChar \menuseparator
9603 \labelwidthstring 00.00.0000
9612 \labelwidthstring 00.00.0000
9621 \labelwidthstring 00.00.0000
9630 \labelwidthstring 00.00.0000
9639 \labelwidthstring 00.00.0000
9650 \labelwidthstring 00.00.0000
9659 \labelwidthstring 00.00.0000
9668 \labelwidthstring 00.00.0000
9677 \labelwidthstring 00.00.0000
9686 \labelwidthstring 00.00.0000
9695 \labelwidthstring 00.00.0000
9704 \labelwidthstring 00.00.0000
9713 \labelwidthstring 00.00.0000
9722 \labelwidthstring 00.00.0000
9731 \labelwidthstring 00.00.0000
9742 \labelwidthstring 00.00.0000
9753 \labelwidthstring 00.00.0000
9764 \labelwidthstring 00.00.0000
9775 \labelwidthstring 00.00.0000
9784 \labelwidthstring 00.00.0000
9795 \labelwidthstring 00.00.0000
9806 \labelwidthstring 00.00.0000
9815 \labelwidthstring 00.00.0000
9826 \labelwidthstring 00.00.0000
9837 \labelwidthstring 00.00.0000
9848 \labelwidthstring 00.00.0000
9859 \labelwidthstring 00.00.0000
9868 \labelwidthstring 00.00.0000
9877 \labelwidthstring 00.00.0000
9888 \labelwidthstring 00.00.0000
9899 \labelwidthstring 00.00.0000
9910 \labelwidthstring 00.00.0000
9919 \labelwidthstring 00.00.0000
9940 \labelwidthstring 00.00.0000
9951 \labelwidthstring 00.00.0000
9962 \labelwidthstring 00.00.0000
9973 \labelwidthstring 00.00.0000
9984 \labelwidthstring 00.00.0000
9995 \labelwidthstring 00.00.0000
10004 layout ShortFoilhead
10006 \labelwidthstring 00.00.0000
10017 \labelwidthstring 00.00.0000
10028 \labelwidthstring 00.00.0000
10039 \labelwidthstring 00.00.0000
10050 \labelwidthstring 00.00.0000
10059 layout ShortRotatefoilhead
10061 \labelwidthstring 00.00.0000
10072 \labelwidthstring 00.00.0000
10083 \labelwidthstring 00.00.0000
10094 \labelwidthstring 00.00.0000
10103 drop-layouts-choice
10105 \labelwidthstring 00.00.0000
10119 \labelwidthstring 00.00.0000
10133 \labelwidthstring 00.00.0000
10144 \labelwidthstring 00.00.0000
10155 \labelwidthstring 00.00.0000
10164 layout Subsubsection
10166 \labelwidthstring 00.00.0000
10177 \labelwidthstring 00.00.0000
10186 layout Subparagraph
10188 \labelwidthstring 00.00.0000
10193 asterisk\SpecialChar ~
10200 \labelwidthstring 00.00.0000
10205 asterisk\SpecialChar ~
10212 \labelwidthstring 00.00.0000
10217 asterisk\SpecialChar ~
10224 \labelwidthstring 00.00.0000
10229 asterisk\SpecialChar ~
10236 \labelwidthstring 00.00.0000
10241 asterisk\SpecialChar ~
10246 layout Subsubsection*
10248 \labelwidthstring 00.00.0000
10253 asterisk\SpecialChar ~
10260 \labelwidthstring 00.00.0000
10265 asterisk\SpecialChar ~
10270 layout Subparagraph*
10272 \labelwidthstring 00.00.0000
10283 \labelwidthstring 00.00.0000
10292 layout Bibliography
10294 \labelwidthstring 00.00.0000
10305 \labelwidthstring 00.00.0000
10316 \labelwidthstring 00.00.0000
10327 \labelwidthstring 00.00.0000
10338 \labelwidthstring 00.00.0000
10349 \labelwidthstring 00.00.0000
10358 layout Rotatefoilhead
10360 \labelwidthstring 00.00.0000
10369 layout RightAddress
10371 \labelwidthstring 00.00.0000
10382 \labelwidthstring 00.00.0000
10393 \labelwidthstring 00.00.0000
10404 \labelwidthstring 00.00.0000
10416 These ones are kept for backwards compatibility, but only make sense on
10419 \labelwidthstring 00.00.0000
10430 \labelwidthstring 00.00.0000
10439 layout Subsubsection*
10441 \labelwidthstring 00.00.0000
10460 \labelwidthstring 00.00.0000
10470 \labelwidthstring 00.00.0000
10480 \labelwidthstring 00.00.0000
10490 \labelwidthstring 00.00.0000
10500 \labelwidthstring 00.00.0000
10510 \labelwidthstring 00.00.0000
10520 \labelwidthstring 00.00.0000
10528 hyphenation-point-insert
10530 \labelwidthstring 00.00.0000
10540 \labelwidthstring 00.00.0000
10548 line-delete-forward
10550 \labelwidthstring 00.00.0000
10560 \labelwidthstring 00.00.0000
10570 \labelwidthstring 00.00.0000
10580 \labelwidthstring 00.00.0000
10590 \labelwidthstring 00.00.0000
10600 \labelwidthstring 00.00.0000
10608 \labelwidthstring 00.00.0000
10618 \labelwidthstring 00.00.0000
10628 \labelwidthstring 00.00.0000
10638 \labelwidthstring 00.00.0000
10648 \labelwidthstring 00.00.0000
10658 \labelwidthstring 00.00.0000
10668 \labelwidthstring 00.00.0000
10679 \labelwidthstring 00.00.0000
10690 \labelwidthstring 00.00.0000
10701 \labelwidthstring 00.00.0000
10712 \labelwidthstring 00.00.0000
10724 \labelwidthstring 00.00.0000
10735 \labelwidthstring 00.00.0000
10746 \labelwidthstring 00.00.0000
10757 \labelwidthstring 00.00.0000
10768 \labelwidthstring 00.00.0000
10780 \labelwidthstring 00.00.0000
10791 \labelwidthstring 00.00.0000
10802 \labelwidthstring 00.00.0000
10814 \labelwidthstring 00.00.0000
10826 \labelwidthstring 00.00.0000
10838 \labelwidthstring 00.00.0000
10850 \labelwidthstring 00.00.0000
10862 \labelwidthstring 00.00.0000
10874 \labelwidthstring 00.00.0000
10885 \labelwidthstring 00.00.0000
10896 \labelwidthstring 00.00.0000
10907 \labelwidthstring 00.00.0000
10916 menu-open Documents
10918 \labelwidthstring 00.00.0000
10929 \labelwidthstring 00.00.0000
10940 \labelwidthstring 00.00.0000
10951 \labelwidthstring 00.00.0000
10962 \labelwidthstring 00.00.0000
10973 \labelwidthstring 00.00.0000
10982 buffer-toggle-read-only
10984 \labelwidthstring 00.00.0000
10995 \labelwidthstring 00.00.0000
11006 \labelwidthstring 00.00.0000
11017 \labelwidthstring 00.00.0000
11027 \labelwidthstring 00.00.0000
11037 \labelwidthstring 00.00.0000
11047 \labelwidthstring 00.00.0000
11057 \labelwidthstring 00.00.0000
11067 \labelwidthstring 00.00.0000
11077 \labelwidthstring 00.00.0000
11087 \labelwidthstring 00.00.0000
11097 \labelwidthstring 00.00.0000
11107 \labelwidthstring 00.00.0000
11117 \labelwidthstring 00.00.0000
11127 \labelwidthstring 00.00.0000
11137 \labelwidthstring 00.00.0000
11147 \labelwidthstring 00.00.0000
11157 \labelwidthstring 00.00.0000
11165 word-delete-forward
11167 \labelwidthstring 00.00.0000
11175 word-delete-backward
11177 \labelwidthstring 00.00.0000
11187 \labelwidthstring 00.00.0000
11195 end-of-sentence-period-insert
11197 \labelwidthstring 00.00.0000
11205 protected-space-insert
11207 \labelwidthstring 00.00.0000
11217 \labelwidthstring 00.00.0000
11227 \labelwidthstring 00.00.0000
11237 \labelwidthstring 00.00.0000
11247 \labelwidthstring 00.00.0000
11257 \labelwidthstring 00.00.0000
11267 \labelwidthstring 00.00.0000
11275 buffer-begin-select
11277 \labelwidthstring 00.00.0000
11287 \labelwidthstring 00.00.0000
11295 paragraph-up-select
11297 \labelwidthstring 00.00.0000
11305 paragraph-down-select
11307 \labelwidthstring 00.00.0000
11315 word-backward-select
11317 \labelwidthstring 00.00.0000
11325 word-forward-select
11327 \labelwidthstring 00.00.0000
11337 \labelwidthstring 00.00.0000
11345 word-delete-forward
11347 \labelwidthstring 00.00.0000
11357 \labelwidthstring 00.00.0000
11367 \labelwidthstring 00.00.0000
11377 \labelwidthstring 00.00.0000
11387 \labelwidthstring 00.00.0000
11395 break-paragraph-keep-layout
11397 \labelwidthstring 00.00.0000
11410 \labelwidthstring 00.00.0000
11420 \labelwidthstring 00.00.0000
11430 \labelwidthstring 00.00.0000
11440 \labelwidthstring 00.00.0000
11450 \labelwidthstring 00.00.0000
11460 \labelwidthstring 00.00.0000
11470 \labelwidthstring 00.00.0000
11480 \labelwidthstring 00.00.0000
11490 \labelwidthstring 00.00.0000
11500 \labelwidthstring 00.00.0000
11510 \labelwidthstring 00.00.0000
11520 \labelwidthstring 00.00.0000
11530 \labelwidthstring 00.00.0000
11540 \labelwidthstring 00.00.0000
11550 \labelwidthstring 00.00.0000
11560 \labelwidthstring 00.00.0000
11570 \labelwidthstring 00.00.0000
11580 \labelwidthstring 00.00.0000
11590 \labelwidthstring 00.00.0000
11600 \labelwidthstring 00.00.0000
11610 \labelwidthstring 00.00.0000
11620 \labelwidthstring 00.00.0000
11630 \labelwidthstring 00.00.0000
11638 protected-space-insert
11640 \labelwidthstring 00.00.0000
11650 \labelwidthstring 00.00.0000
11660 \labelwidthstring 00.00.0000
11670 \labelwidthstring 00.00.0000
11678 buffer-new-template
11680 \labelwidthstring 00.00.0000
11690 \labelwidthstring 00.00.0000
11700 \labelwidthstring 00.00.0000
11710 \labelwidthstring 00.00.0000
11720 \labelwidthstring 00.00.0000
11730 \labelwidthstring 00.00.0000
11740 \labelwidthstring 00.00.0000
11750 \labelwidthstring 00.00.0000
11758 end-of-sentence-period-insert
11760 \labelwidthstring 00.00.0000
11770 \labelwidthstring 00.00.0000
11780 \labelwidthstring 00.00.0000
11788 hyphenation-point-insert
11790 \labelwidthstring 00.00.0000
11800 \labelwidthstring 00.00.0000
11808 protected-space-insert
11810 \labelwidthstring 00.00.0000
11820 \labelwidthstring 00.00.0000
11830 \labelwidthstring 00.00.0000
11840 \labelwidthstring 00.00.0000
11850 \labelwidthstring 00.00.0000
11860 \labelwidthstring 00.00.0000
11870 \labelwidthstring 00.00.0000
11880 \labelwidthstring 00.00.0000
11890 \labelwidthstring 00.00.0000
11900 \labelwidthstring 00.00.0000
11910 \labelwidthstring 00.00.0000
11920 \labelwidthstring 00.00.0000
11930 \labelwidthstring 00.00.0000
11940 \labelwidthstring 00.00.0000
11950 \labelwidthstring 00.00.0000
11960 \labelwidthstring 00.00.0000
11968 word-delete-forward
11970 \labelwidthstring 00.00.0000
11978 word-delete-backward
11980 \labelwidthstring 00.00.0000
11990 \labelwidthstring 00.00.0000
12000 \labelwidthstring 00.00.0000
12010 \labelwidthstring 00.00.0000
12020 \labelwidthstring 00.00.0000
12028 paragraph-down-select
12030 \labelwidthstring 00.00.0000
12040 \labelwidthstring 00.00.0000
12048 buffer-begin-select
12050 \labelwidthstring 00.00.0000
12058 word-backward-select
12060 \labelwidthstring 00.00.0000
12068 word-forward-select
12070 \labelwidthstring 00.00.0000
12078 paragraph-up-select
12080 \labelwidthstring 00.00.0000
12090 \labelwidthstring 00.00.0000
12098 break-paragraph-keep-layout
12100 \labelwidthstring 00.00.0000
12110 \labelwidthstring 00.00.0000
12120 \labelwidthstring 00.00.0000
12130 \labelwidthstring 00.00.0000
12140 \labelwidthstring 00.00.0000
12150 \labelwidthstring 00.00.0000
12158 \labelwidthstring 00.00.0000
12168 \labelwidthstring 00.00.0000
12178 \labelwidthstring 00.00.0000
12188 \labelwidthstring 00.00.0000
12198 \labelwidthstring 00.00.0000
12214 These are LyX keyboard definitions for mathematics, similar to those of
12218 The bindings file and the present documentation were prepared by Serge Winitzki
12219 with assistance from Jean-Marc Lasgouttes.
12220 Version 1.3, for LyX 1.2.x and 1.3.x.
12223 These definitions make it a lot easier to type equations without using the
12224 mouse, especially for people familiar with Scientific Word.
12225 The standard LyX bindings such as
12236 Tip: to find the "LyX bind name" for a key, look at the status bar after
12237 typing some non-existent key combination.
12239 to find how "Ctrl-&" is referenced, press Ctrl-S and then Ctrl-&: the status
12240 bar shows "C-s S-C-ampersand." (This does not work in LyX 1.3.0!)
12242 \labelwidthstring 00.00.0000
12252 -- Copy, cut, paste is as in Sciword,
12266 \labelwidthstring 00.00.0000
12276 -- Display equation toggle: type
12280 to insert a displayed formula (
12285 \begin_inset Quotes eld
12289 \begin_inset Quotes erd
12297 in a displayed formula to convert it back to an inline formula.
12299 \labelwidthstring 00.00.0000
12315 to insert a fraction (
12320 \begin_inset Quotes eld
12324 \begin_inset Quotes erd
12328 You can also select an expression and type
12332 to convert it to the numerator of a fraction.
12341 end of the denominator will delete the numerator and convert the denominator
12344 \labelwidthstring 00.00.0000
12357 \begin_inset Formula $\int$
12365 \begin_inset Quotes eld
12369 \begin_inset Quotes erd
12374 \labelwidthstring 00.00.0000
12382 line-delete-forward
12384 -- Emacs-like binding: delete forward of cursor to end of line.
12386 \labelwidthstring 00.00.0000
12396 -- A text/math toggle (
12401 \begin_inset Quotes eld
12405 \begin_inset Quotes erd
12408 ): switches to math in text mode, and also inserts roman text in math mode.
12418 \begin_inset Quotes eld
12422 \begin_inset Quotes erd
12427 \labelwidthstring 00.00.0000
12437 -- Add/remove numbering in a single equation.
12439 \labelwidthstring 00.00.0000
12449 -- Add/remove numbering at a line in equation arrays.
12452 The above commands are toggles that control the numbering of equations (
12457 \begin_inset Quotes eld
12461 \begin_inset Quotes erd
12465 Note: when deleting a number in a labeled eqnarray, the label is not really
12466 removed (the TeX code becomes
12467 \begin_inset Quotes eld
12479 \begin_inset Quotes erd
12482 ) and this generates a (harmless) LaTeX warning.
12484 \labelwidthstring 00.00.0000
12494 -- Open a new document.
12497 \labelwidthstring 00.00.0000
12507 -- Insert a quote character " (
12512 \begin_inset Quotes eld
12516 \begin_inset Quotes erd
12521 \begin_inset Quotes eld
12525 \begin_inset Quotes erd
12528 double quote character that you get by default.
12530 \labelwidthstring 00.00.0000
12542 -- Square root sign
12543 \begin_inset Formula $\sqrt{x}$
12551 \begin_inset Quotes eld
12555 \begin_inset Quotes erd
12560 \labelwidthstring 00.00.0000
12573 \begin_inset Formula $\sqrt[n]{x}$
12578 \labelwidthstring 00.00.0000
12588 -- Another binding for a switch between the text and the math mode (
12593 \begin_inset Quotes eld
12597 \begin_inset Quotes erd
12601 Note that the roman text inserted in math mode is special.
12603 \labelwidthstring 00.00.0000
12617 the selected text (text mode only, use things like
12631 \labelwidthstring 00.00.0000
12641 -- W*ndows heritage.
12643 \labelwidthstring 00.00.0000
12653 -- Close the current document (again, a W*ndows heritage).
12655 \labelwidthstring 00.00.0000
12665 \labelwidthstring 00.00.0000
12675 \labelwidthstring 00.00.0000
12686 \begin_inset Quotes eld
12690 \begin_inset Quotes erd
12694 \begin_inset Quotes eld
12698 \begin_inset Quotes erd
12704 Bracket delimiters: press
12708 -<bracket key> to insert a matching pair of delimiters.
12713 inserts a pair of parentheses
12714 \begin_inset Formula $\left[\right]$
12722 does the same thing.) It will switch to math mode if needed.
12723 The supported characters are ( [ { < |.
12724 It is the same to press the right or the left bracket.
12725 The corresponding delimiters are
12726 \begin_inset Formula $\left(\right)$
12730 \begin_inset Formula $\left[\right]$
12734 \begin_inset Formula $\left\{ \right\} $
12738 \begin_inset Formula $\left\langle \right\rangle $
12742 \begin_inset Formula $\left|\right|$
12747 \begin_inset Quotes eld
12751 \begin_inset Quotes erd
12754 and resize with their contents.
12755 Use Math Panel to get other or non-matching delimiters.
12756 Press backspace on the
12760 delimiter to remove both
12761 \begin_inset Quotes eld
12765 \begin_inset Quotes erd
12768 delimiters without removing their contents.
12770 \labelwidthstring 00.00.0000
12780 -- for convenience, pressing
12792 \labelwidthstring 00.00.0000
12802 \labelwidthstring 00.00.0000
12812 \labelwidthstring 00.00.0000
12822 \labelwidthstring 00.00.0000
12832 \labelwidthstring 00.00.0000
12842 \labelwidthstring 00.00.0000
12850 math-delim langle rangle
12852 -- angular delimiters
12853 \begin_inset Formula $\left\langle \right\rangle $
12856 , not to confuse with ordinary < > signs.
12858 \labelwidthstring 00.00.0000
12866 math-delim langle rangle
12869 The bar bracket: on some keyboards (e.g.\SpecialChar ~
12870 some British ones), the bar character
12875 -something and on some wayward Unices to "brokenbar".
12876 So we define all of these keys as well.
12878 \labelwidthstring 00.00.0000
12888 \labelwidthstring 00.00.0000
12898 \labelwidthstring 00.00.0000
12908 \labelwidthstring 00.00.0000
12918 \labelwidthstring 00.00.0000
12929 Accents are in most cases
12933 -<accent key>, e.g.\SpecialChar ~
12947 for tilde (you also need to press
12953 \begin_inset Quotes eld
12965 \begin_inset Quotes erd
12969 Some accents work only in math mode and others only in text mode.
12971 \labelwidthstring 00.00.0000
12981 -- overdot accent, \i \.{a}
12984 \labelwidthstring 00.00.0000
12997 \begin_inset Formula $\dot{a}$
13000 (math mode only -- in physics this denotes a first derivative).
13002 \labelwidthstring 00.00.0000
13014 -- Vector accent over math
13015 \begin_inset Formula $\overrightarrow{x}$
13020 \labelwidthstring 00.00.0000
13030 -- umlaut accent, ä (text mode only)
13032 \labelwidthstring 00.00.0000
13044 -- double dot accent,
13045 \begin_inset Formula $\ddot{a}$
13048 (math mode only -- in physics this denotes a second derivative).
13049 To get a triple dot in math mode, use
13055 \labelwidthstring 00.00.0000
13065 -- grave accent à (text mode only, use
13073 \labelwidthstring 00.00.0000
13083 -- tilde accent ã (text mode only, use
13091 \labelwidthstring 00.00.0000
13101 -- acute accent á (text mode only, use
13109 \labelwidthstring 00.00.0000
13119 -- circumflex (caret) accent â (text mode only, use
13129 The new key S-F2 for creating a LaTeX file seems handy.
13131 \labelwidthstring 00.00.0000
13141 -- Save current document.
13143 \labelwidthstring 00.00.0000
13151 buffer-export latex
13153 -- Write a LaTeX file for the current document.
13155 \labelwidthstring 00.00.0000
13165 -- Find and replace dialog.
13167 \labelwidthstring 00.00.0000
13183 \labelwidthstring 00.00.0000
13197 to quit LyX is the W*ndows w*ndow manager's mnemonic.
13208 are used to switch fonts.
13213 to switch back to the normal font.
13214 The non-default font switches
13222 all work as toggles.
13223 They also work on the whole word if you put the cursor in the middle of
13224 the word, or if you select some text.
13226 \labelwidthstring 00.00.0000
13236 -- stop using any special font
13238 \labelwidthstring 00.00.0000
13254 \labelwidthstring 00.00.0000
13270 \labelwidthstring 00.00.0000
13286 \labelwidthstring 00.00.0000
13301 (Used sometimes for people's names.)
13309 \begin_inset Quotes eld
13313 \begin_inset Quotes erd
13320 key (useful e.g.\SpecialChar ~
13321 if the keyboard has no working
13328 Here are some Sciword-inspired mnemonics for frequently used math symbols.
13329 Many symbols start with a
13338 cannot be itself bound to anything.
13340 \labelwidthstring 00.00.0000
13353 \begin_inset Quotes eld
13357 \begin_inset Quotes erd
13361 \begin_inset Formula $\prime$
13365 This is frequently unnecessary: in most cases the normal apostrophe works
13368 \begin_inset Formula $x'+2x=0$
13371 , but in some cases this would generate a double superscript error in LaTeX.
13373 \begin_inset Formula $x^{\prime2}$
13377 \begin_inset Formula $x$
13380 prime squared) must be entered with the prime character.
13382 \labelwidthstring 00.00.0000
13391 command-sequence math-superscript; math-insert
13395 -- Insert a prime as a superscript (see example above).
13397 \labelwidthstring 00.00.0000
13407 -- Insert an upper index.
13412 \labelwidthstring 00.00.0000
13422 -- Insert a lower index.
13427 \labelwidthstring 00.00.0000
13440 -- Partial derivative symbol
13441 \begin_inset Formula $\partial$
13446 \labelwidthstring 00.00.0000
13459 -- Summation symbol
13460 \begin_inset Formula $\sum$
13463 (not the same as the Greek letter uppercase Sigma
13464 \begin_inset Formula $\Sigma$
13467 because it can resize and allows smart upper/lower limits).
13469 \labelwidthstring 00.00.0000
13483 \begin_inset Formula $\prod$
13486 (not the same as the Greek letter uppercase Pi,
13487 \begin_inset Formula $\Pi$
13492 \labelwidthstring 00.00.0000
13506 \begin_inset Formula $\infty$
13511 \labelwidthstring 00.00.0000
13525 \begin_inset Formula $\times$
13530 \labelwidthstring 00.00.0000
13541 -- Insert a stacked array
13542 \begin_inset Formula $\begin{array}{c}
13544 \\\end{array}\end{array}$
13548 (Frequently useful in formulae.)
13550 \labelwidthstring 00.00.0000
13562 \begin_inset Formula $\times$
13566 \begin_inset Formula $\begin{array}{ccc}
13571 (Then you can modify its size using the
13573 Edit\SpecialChar \menuseparator
13578 \labelwidthstring 00.00.0000
13592 \begin_inset Quotes eld
13596 \begin_inset Quotes erd
13600 \begin_inset Formula $\dagger$
13605 \labelwidthstring 00.00.0000
13619 \begin_inset Quotes eld
13623 \begin_inset Quotes erd
13627 \begin_inset Formula $\equiv$
13632 \labelwidthstring 00.00.0000
13645 \begin_inset Quotes eld
13648 Approximate equality
13649 \begin_inset Quotes erd
13653 \begin_inset Formula $\approx$
13658 \labelwidthstring 00.00.0000
13671 \begin_inset Quotes eld
13675 \begin_inset Quotes erd
13679 \begin_inset Formula $\sim$
13684 \labelwidthstring 00.00.0000
13697 \begin_inset Formula $\rightarrow$
13701 \begin_inset Formula $\lim_{x\rightarrow0}$
13706 \labelwidthstring 00.00.0000
13719 \begin_inset Formula $\leq$
13724 \labelwidthstring 00.00.0000
13736 -- Greater-or-equal
13737 \begin_inset Formula $\geq$
13742 \labelwidthstring 00.00.0000
13756 \begin_inset Quotes eld
13760 \begin_inset Quotes erd
13764 \begin_inset Formula $\ll$
13767 (useful in physics)
13769 \labelwidthstring 00.00.0000
13783 \begin_inset Quotes eld
13787 \begin_inset Quotes erd
13791 \begin_inset Formula $\gg$
13797 Standard math bindings
13799 \labelwidthstring 00.00.0000
13812 \labelwidthstring 00.00.0000
13823 \labelwidthstring 00.00.0000
13834 \labelwidthstring 00.00.0000
13847 \labelwidthstring 00.00.0000
13858 \labelwidthstring 00.00.0000
13869 \labelwidthstring 00.00.0000
13882 \labelwidthstring 00.00.0000
13893 \labelwidthstring 00.00.0000
13904 \labelwidthstring 00.00.0000
13915 \labelwidthstring 00.00.0000
13928 \labelwidthstring 00.00.0000
13941 \labelwidthstring 00.00.0000
13954 \labelwidthstring 00.00.0000
13967 \labelwidthstring 00.00.0000
13980 \labelwidthstring 00.00.0000
13993 \labelwidthstring 00.00.0000
14004 \labelwidthstring 00.00.0000
14017 \labelwidthstring 00.00.0000
14028 \labelwidthstring 00.00.0000
14039 \labelwidthstring 00.00.0000
14050 \labelwidthstring 00.00.0000
14061 \labelwidthstring 00.00.0000
14074 \labelwidthstring 00.00.0000
14085 \labelwidthstring 00.00.0000
14096 \labelwidthstring 00.00.0000
14107 \labelwidthstring 00.00.0000
14116 math-delim langle rangle
14118 \labelwidthstring 00.00.0000
14127 math-delim rangle langle
14129 \labelwidthstring 00.00.0000
14140 \labelwidthstring 00.00.0000
14153 \labelwidthstring 00.00.0000
14169 \labelwidthstring 00.00.0000
14178 \labelwidthstring 00.00.0000
14187 \labelwidthstring 00.00.0000
14196 \labelwidthstring 00.00.0000
14205 \labelwidthstring 00.00.0000