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 ASCII export options
1696 \added_space_top bigskip \noindent
1697 There are a couple of commands that can be used to
1698 \begin_inset Quotes eld
1702 \begin_inset Quotes erd
1705 exported ASCII text files.
1706 Note that LyX automatically detects and uses the best settings for your
1707 system at installation time, but you can modify them if you disagree with
1719 This option defines the command used to produce better ASCII tables with
1724 UNIX-commands (refer to their manpages for more information about them).
1725 Setting this as empty tells LyX to use the internal (inferior) formatter.
1737 With this command you can set the default line length of the ASCII output
1739 Setting it to 0 means endless lines.
1745 There are a bunch of configuration options that are used for interaction
1746 with the external print command from LyX.
1747 Normally the defaults are fine: if, however, your print command takes different
1748 option names, you can modify them here.
1754 You can change the colors used by LyX on-screen using the new
1759 Alternatively, if you're feeling particularly perverse you could use the
1764 bindable function (see the
1769 Input would have the format:
1774 set-color LyXName X11Color
1777 Here is a (partial) list of the functions and default colors:
1781 \begin_inset Tabular
1782 <lyxtabular version="3" rows="10" columns="3">
1784 <column alignment="left" valignment="top" leftline="true" width="0pt">
1785 <column alignment="left" valignment="top" leftline="true" width="0pt">
1786 <column alignment="center" valignment="top" leftline="true" rightline="true" width="0pt">
1787 <row topline="true" bottomline="true">
1788 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1805 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1822 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1840 <row topline="true">
1841 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
1858 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
1875 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1893 <row topline="true">
1894 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
1911 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
1928 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1946 <row topline="true">
1947 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
1964 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
1981 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1999 <row topline="true">
2000 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2017 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2034 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2052 <row topline="true">
2053 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2070 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2084 fraction Lines, brackets, etc.
2087 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2105 <row topline="true">
2106 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2123 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2130 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2148 <row topline="true">
2149 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2166 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2173 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2191 <row topline="true">
2192 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2209 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2216 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2234 <row topline="true" bottomline="true">
2235 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2252 <cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
2266 selection background
2269 <cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2294 The autodetected settings
2298 \begin_inset LatexCommand \label{sec:autodetected}
2302 There are several items that are detected for you when you run
2309 \SpecialChar \menuseparator
2315 In this section, we list those which pertain to the user preferences.
2338 , depending on what is available.
2353 plus a bunch of options.
2368 on systems (so-called System V) who have this command, and
2372 otherwise (BSD systems).
2380 print_spool_printerprefix
2391 , depending on whether
2418 fonts are found and LaTeX has support for these fonts built-in.
2419 You can set it manually if you only have the so-called
2429 There are many other configuration options that can be used to customize
2431 We still need to document them here, but again, most should be fairly obvious.
2432 Please ask on the mailing lists if you need some more information; it may
2433 even prompt us to expand this section.
2436 Internationalizing LyX
2437 \begin_inset LatexCommand \label{chap:i18n}
2444 LyX supports using a translated interface.
2445 Last time we checked, LyX provided text in 14 languages together with the
2446 default English text.
2447 The language of choice is called your
2452 (For further reading on locale settings, see also the documentation for
2453 locale that comes with your operating system.
2454 For Linux, the manual page for locale(5) could be a good place to start).
2457 Notice that these translations will work, but do contain a few flaws.
2458 In particular, all dialogs have been designed with the English text in
2459 mind, which means that some of the translated text will be too large to
2460 fit within the space allocated.
2461 This is only a display problem and will not cause any harm.
2462 Also, you will find that some of the translations do not define short-cut
2463 keys for everything.
2464 Sometimes, there are simply not enough free letters to do it.
2465 Other times, the translator just hasn't got around to doing it yet.
2466 We'll try to fix these shortcomings in future versions of LyX.
2469 Selecting an alternative language for the user interface
2472 This feature is disabled by default, meaning that the text will be English.
2473 To enable an alternative language, you have to set an appropriate environment
2481 for csh class shells
2496 with the two letter code for the language you want.
2504 Normally, you'll want to put the appropriate line in
2512 so that the translation is on by default.
2513 Remember that if LyX is configured and compiled with
2514 \begin_inset Quotes eld
2522 \begin_inset Quotes erd
2525 , this will not work.
2531 Translating the graphical user interface (text messages).
2538 library to handle the internationalization of the interface.
2539 To have LyX speak your favorite language in all menus and dialogs, you
2544 -file for that language.
2545 When this is available, you'll have to generate a mo-file from it and install
2551 The process of doing all of this is explained in the documentation for
2556 , but in short, this is what you do (
2560 denotes the language code):
2578 LYX-SOURCE-DIR/po/lyx.pot
2591 doesn't exist, it can be remade with
2595 in that directory, or you can use an existing po-file for some other language
2607 We recommend that you use Emacs to do this, since the
2611 distribution includes a nice mode that supports you in doing this.
2617 For some menu- and widget-labels, there are also shortcut keys that should
2619 Those keys are marked after a `|', and should be translated according to
2620 the words and phrases of the
2625 There is a tool named
2629 written in Prolog in
2631 LYX-SOURCE-DIR/development/tools/
2633 that may be useful to help determine short-cut keys.
2634 Note that XForms (version 0.86 at least) can't handle anything but 7-bit
2635 characters as shortcut keys.
2636 You should also fill also out the information at the beginning of the new
2641 -file with your email-address, etc., so people know where to reach you with
2642 suggestions and entertaining flames.
2653 This can be done with
2676 -file to your locale-tree, at the correct directory for application messages
2681 , and under the name
2690 /usr/local/share/locale/
2714 Adding a new po-file to the
2718 of LyX involves altering the configure scripts and more, but the way
2722 works, you don't actually need the source-code of LyX to translate it---having
2738 If you've written a translation file for a language that LyX does not currently
2739 support, feel free to submit it for inclusion by sending a patch.
2740 In this case, we recommend that you read the
2748 directory for more instructions.
2751 Translating the documentation.
2754 The online documentation (in the
2761 -menu) can (and should!) be translated.
2762 If there are translated versions of the documentation available
2768 As of February 2003, almost all of the docs have been translated into German
2774 has been translated into at least 12 ther languages, with other translations
2776 The library of translated documents is growing rapidly.
2779 , and the locale is set accordingly, these will be used automagically by
2781 LyX looks for translated versions as
2795 denotes the language as set by the environmental variable
2800 If there are none, the default English versions will be displayed.
2801 Note that the translated versions must have the same filenames (
2805 above) as the original.
2806 If you feel up to translating the documentation (an excellent way to proof-read
2807 the original documentation BTW!), there are a few things you should do
2815 , the guide to writing LyX documentation.
2816 Pay special attention to the translator's section.
2819 Check out the documentation translation web page at
2820 \begin_inset LatexCommand \url[The LyX Developer's Web Site]{http://www.devel.lyx.org}
2825 That way, you can find out which (if any) documents have already been translate
2826 d into your language.
2827 You can also find out who (if anyone) is organizing the effort to translate
2828 the documentation into your language.
2829 If no one is organizing the effort, please let us know that you're interested.
2832 Once you get to actually translating, here's a few hints for you that may
2836 Join the documentation team! There is information on how to do that in
2845 elp\SpecialChar \menuseparator
2852 ), which by the way is the first document you should translate.
2855 Learn the typographic conventions for the language you are translating to.
2856 Typography is an ancient art and over the centuries, a great variety of
2857 conventions have developed throughout different parts of the world.
2858 Also study the professional terminology amongst typographers in your country.
2859 Inventing your own terminology will only confuse the users.
2862 (Warning! Typography is addictive!)
2865 Make a copy of the document.
2866 This will be your working copy.
2867 You can use this as your personal translated help-file by placing it in
2875 Sometimes the original document (from the LyX-team) will be updated.
2876 Use the ViewCVS tool available at
2877 \begin_inset LatexCommand \htmlurl{http://www.lyx.org/viewcvs.cgi/lyxdoc/}
2881 to see what has been changed
2887 Alternatively, you can keep a copy of the latest version of the English
2888 document which you've translated.
2892 That way you can easily see which parts of the translated document need
2896 If you ever find an error in the original document, fix it and notify the
2897 rest of the documentation team of the changes! (You didn't forget to join
2898 the documentation team did you?)
2901 International Keyboard Support
2906 [Editor's Note: The following section is by
2911 It needs to be fixed to conform to the new Documentation Style sheet and
2912 to make use of the new v1.0 features.
2913 The whole thing also needs to be merged with the section following it.-jw]
2916 Defining Own Keymaps: Keymap File Format
2919 Let's look at a keyboard definition file a little closer.
2920 It is a plain ASCII file defining
2923 key-to-key or key-to-string translations
2929 dead keys exceptions
2932 To define key-to-key or key-to-string translation, use this command:
2954 is the key to be translated and
2958 is the string to be inserted into the document.
2959 To define dead keys, use:
2986 The following dead keys are supported (shortcut name is in parentheses):
3103 hungarian umlaut (hug)
3131 Since in many international keyboards there are exceptions to what some
3132 dead keys should do, you can define them using
3143 deadkey key outstring
3146 For example, on Slovak keyboard, if you enter caron-o, it generates circumflex-o
3163 to make it work correctly.
3164 Also, you have to define as exceptions dead keys over i and j, to remove
3165 the dot from them before inserting an accent mark.
3166 I will change this when the time comes, but so far I haven't had time.
3169 Oh, and about characters: backslash is escaped, so to enter it, you'll need
3175 have different meaning.
3180 marks comments, quotes start and end LaTeX-style commands.
3181 To enter quote, you'll need to use
3200 If you make a keyboard description file that works for your language, please
3201 mail it to me, so I can include it in the next keymap distribution.
3204 More keywords will be supported in keymap configuration file in future,
3239 an external keymap translation program
3242 Also, it should look into
3246 file for defaults, too (for example, a
3252 option to include default keyboard).
3255 International Keymap Stuff
3256 \begin_inset LatexCommand \label{sec:keymap}
3263 The next two sections describe the
3275 file syntax in detail.
3276 These sections should help you design your own key map if the ones provided
3277 do not meet your needs.
3291 file maps keystrokes to characters or strings.
3292 As the name suggests it sets a keyboard mapping.
3317 are described in this section.
3319 \labelwidthstring 00.00.0000
3327 Map a character to a string
3359 the double-quote (")
3367 must be escaped with a preceding backslash (
3384 statement to cause the symbol
3390 to be output for the keystroke
3403 \labelwidthstring 00.00.0000
3411 Specify an accent character
3423 This will make the cha
3438 This is the dead key
3450 refers to a key that does not produce a character by itself, but when followed
3451 with another key, produces the desired accent character.
3452 For example, a German characte
3454 r with an umlaut like
3458 can be produced in this manner.
3471 and then another key not in
3479 followed by the other, unallowed key, as output.
3488 cancels a dead key, so if
3499 , the cursor will not go one position backwards but will instead cancel
3506 might have had on the next keystroke.
3510 The following example specifies that the character ' is to be an acute accent,
3511 allowed on the characters a, e, i, o, u, A, E, I, O, and U:
3516 kmod ' acute aeiouAEIOU
3518 \labelwidthstring 00.00.0000
3524 Specify an exception to the accent character
3537 This defines an exce
3556 have been assigned a keystroke with a previous
3570 must not belong in the
3590 If such a declaration does not exist in
3627 The following command produces causes äi to be produced when you enter acute-i
3643 \labelwidthstring 00.00.0000
3649 Combine two accent characters
3657 accent1 accent2 allowed
3660 This one is getting pretty esoteric.
3661 It allows you to combine the effect
3706 Consider this example from the
3717 kmod ; acute aeioyvhAEIOYVH
3721 kcomb acute umlaut iyIY
3724 This allows you to press
3730 and get the effect of
3747 in this case cancels the last dead key, so if you press
3775 mapping is performed, a
3782 file maps the strings that the symbols generate to characters in the current
3784 The LyX distribution currently includes at least the
3807 file is a sequence of declarations of the form
3820 For example, in order to map
3828 to the corresponding character in the iso-8859-1 set (233), the following
3858 the same character can apply to more than one string.
3896 If LyX cannot find a mapping for the string produced by the keystroke or
3897 a deadkey sequence, it will check if it looks like an accented char and
3898 try to draw an accent over the character on screen.
3904 There is a second way to add support for international characters through
3905 so-called dead-keys.
3906 A dead-key works in combination with a letter to produce an accented character.
3907 Here, we'll explain how to create a really simple dead-key to illustrate
3911 Suppose you happen to need the circumflex character,
3912 \begin_inset Quotes eld
3917 \begin_inset Quotes erd
3925 -key [a.k.a.\SpecialChar ~
3930 ] to the LyX command
3939 Now, whenever you type the
3943 -key followed by a letter, that letter will have a circumflex accent on
3945 For example, the sequence
3946 \begin_inset Quotes eld
3954 \begin_inset Quotes erd
3957 produces the letter:
3958 \begin_inset Quotes eld
3962 \begin_inset Quotes erd
3966 If you tried to type
3967 \begin_inset Quotes eld
3975 \begin_inset Quotes erd
3978 , however, LyX will complain with a beep, since a
3979 \begin_inset Quotes eld
3987 \begin_inset Quotes erd
3990 never takes a circumflex accent.
3995 after a dead-key produces the bare-accent.
3996 Please note this last point! If you bind a key to a dead-key, you'll need
3997 to rebind the character on that key to yet another key.
4002 to a cedilla is a bad idea, since you'll only get cedillas instead of commas.
4005 One common way to bind dead-keys is to use
4017 in combination with an accent, like
4018 \begin_inset Quotes eld
4026 \begin_inset Quotes erd
4030 \begin_inset Quotes eld
4038 \begin_inset Quotes erd
4042 \begin_inset Quotes eld
4050 \begin_inset Quotes erd
4054 Another way involves using
4062 [remember them from section?] to set up the special
4071 acts in some ways just like
4075 and permits you to bind keys to accented characters.
4076 You can also turn keys into dead-keys by binding them to something like
4081 and then binding this symbolic key to the corresponding LyX command.
4091 : This is exactly what I do in my
4102 Scroll\SpecialChar ~
4109 and a bunch of these
4110 \begin_inset Quotes eld
4118 \begin_inset Quotes erd
4121 symbolic keys bound such things as
4123 Scroll\SpecialChar ~
4128 Scroll\SpecialChar ~
4132 This is how I produce my accented characters.
4135 You can make just about anything into the
4143 keys, a spare function key, etc.
4144 As for the LyX commands that produce accents, check the entry for
4153 You'll find the complete list there.
4156 Saving your Language Configuration
4160 \begin_inset LatexCommand \label{sec:savlang}
4164 You can edit your preferences so that your desired language environment
4165 is automatically configured when LyX starts up, via the
4170 dit\SpecialChar \menuseparator
4180 Installing New Document Classes, Layouts, and Templates
4181 \begin_inset LatexCommand \label{chap:textclass}
4191 Installing New Document Classes
4197 In this chapter, we describe the procedures for creating and installing
4198 new LyX layout and template files, as well as offer a refresher on correctly
4199 installing new LaTeX document classes.
4200 Some definitions: a document class is a LaTeX file (usually ending in
4208 ) which describes the format of a document such as an article, report, journal
4210 and all the commands needed to realize that format.
4211 A layout file is a LyX file which corresponds to a LaTeX document class
4212 and which tells LyX how to
4213 \begin_inset Quotes eld
4217 \begin_inset Quotes erd
4220 things on the screen to make the display look something like the final
4222 More precisely, a layout file describes a
4223 \begin_inset Quotes eld
4227 \begin_inset Quotes erd
4230 which is the internal construct LyX uses to render the screen display.
4232 \begin_inset Quotes eld
4236 \begin_inset Quotes erd
4240 \begin_inset Quotes eld
4244 \begin_inset Quotes erd
4247 can be used somewhat interchangeably, but it is better to refer to the
4248 file as the layout, and the thing living in LyX's memory as the text class.
4249 A template file is simply a LyX document which contains a set of predefined
4250 entries for a given document class which are generally required for that
4252 Templates are especially useful for things like journal manuscripts which
4253 are to be submitted electronically.
4256 Installing a new LaTeX package
4259 Some installations may not include a LaTeX package that you would like to
4261 For example, you might need FoilTeX, a common (and very powerful) package
4262 for preparing slides or viewgraphs for overhead projectors.
4263 Here are the formal steps involved in getting the package up and running
4264 if you are using teTeX or some other web2c based distribution.
4268 Get the package from CTAN or wherever.
4276 Inventory of your LaTeX configuration
4278 manual for details of what CTAN is and where supported document classes
4289 (this usually lives in the directory
4293 , though you can run
4298 It describes how to add a local
4302 directory; follow the instructions.
4303 You need to insert the name of your local
4316 is a logical place to install software that did not come with your distribution
4322 Usually, you will have to modify only two things:
4330 to the directory you chose; e.g.
4335 TEXMFLOCAL = /usr/local/texmf
4351 TEXMF = {$HOMETEXMF,!!$TEXMFLOCAL,!!$TEXMFMAIN}
4365 You must follow the directory structure of your existing
4369 directory (for example, latex packages should go under
4371 /usr/local/texmf/tex/latex/
4376 Install the package.
4377 For example, you would unpack the FoilTeX tarball and create
4379 /usr/local/texmf/tex/latex/foiltex
4386 directory contains various files.
4396 /usr/local/texmf/ls-R
4401 From within LyX, do:
4406 ools\SpecialChar \menuseparator
4417 Now you should see your new package---for example
4426 ayout\SpecialChar \menuseparator
4441 Note that there are simpler ways of installing packages: you can add a
4442 link to the new package directory in the system LaTeX directory (
4446 , don't forget to then run
4450 ), or sometimes simply set the
4454 environment variable to include the new package.
4455 However, the formal procedure described in
4459 is guaranteed to work, so you should follow it unless circumstances absolutely
4460 prevent it: such as, when you don't have superuser access.
4466 This section describes how to write and install your own LyX layout files
4467 (also known as text classes) and walks through the
4471 text class format as an example.
4476 files describe what paragraph styles are available for a given document
4477 class and how LyX should display them.
4478 We try to provide a thorough description of the process here; however,
4479 there are so many different types of documents supported by LaTeX classes
4480 we can't hope to cover every different possibility or problem you might
4485 When you plan to write a new layout, it is extremely helpful to look at
4486 the example layouts distributed with LyX.
4487 If you use a nice LaTeX document class that might be of interest for others,
4488 too, and have a nice corresponding LyX layout, feel free to contribute
4489 the stuff to us, so we may put it into the distribution.
4492 All the tags described in this chapter are case-insensitive; this means
4505 are really the same command.
4506 The possible values are printed in brackets after the feature's name.
4507 The default value if a feature isn't specified inside a text class-description
4515 If the argument has a datatype like
4516 \begin_inset Quotes eld
4520 \begin_inset Quotes erd
4524 \begin_inset Quotes eld
4528 \begin_inset Quotes erd
4531 , the default is shown like this:
4541 Supporting new document classes
4544 There are two situations you are likely to encounter when wanting to support
4545 a new LaTeX document class, involving LaTeX2e class (
4563 If your new document class is provided as a style file that is used in conjuncti
4564 on with an existing, supported document class, start by copying the existing
4565 class's layout file into your local directory.
4566 For the sake of example we'll assume that the style file is called
4570 and it is meant to be used with
4574 which is a standard class.
4577 cp report.layout ~/.lyx/layouts/myclass.layout
4584 and change the line:
4589 DeclareLaTeXClass{report}
4597 DeclareLaTeXClass[report, myclass.sty]{report (myclass)}
4612 near the top of the file.
4615 Start LyX and select
4620 ools\SpecialChar \menuseparator
4628 Restart LyX and try creating a new document.
4633 " as a document class option in the
4638 ocument\SpecialChar \menuseparator
4646 It is likely that some of the sectioning commands and such will differ
4647 from how the base class
4660 works, so you can fiddle around with the settings for the different sections
4662 See below for more discussion on this.
4672 In this case, you will probably have to
4673 \begin_inset Quotes eld
4677 \begin_inset Quotes erd
4681 We strongly suggest copying an existing layout file which uses a similar
4682 LaTeX class and modifying it if at all possible.
4683 At least use an existing file as a starting point so you can find out what
4684 items you need to worry about.
4685 Again, the specifics are covered below.
4688 Declaring a new text class
4691 When it's finally time to get your hands dirty and create or edit your own
4692 layout file, the following sections describe what you're up against.
4693 Our advice is to go slowly, save and test often, listen to soothing music,
4694 and enjoy one or two of your favorite adult beverages; more if you are
4695 getting particularly stuck.
4696 It's really not that hard, except that the multitude of options can become
4697 overwhelming if you try to do to much in one sitting.
4698 Go have another adult beverage, just for good measure.
4704 Lines in a layout file which begin with a
4709 There is one exception to this rule: all layouts should begin with lines
4715 #% Do not delete the line below; configure depends on this
4722 DeclareLaTeXClass{article}
4725 The second line is used when you configure LyX.
4726 The layout file is read by the LaTeX script
4730 , in a special mode where
4735 The first line is just a LaTeX comment, and the second one contains the
4736 declaration of the text class.
4737 If these lines appear in a file named
4741 , then they define a text class of name
4745 (the name of the layout file) which uses the LaTeX document class
4749 (the default is to use the same name as the layout).
4751 \begin_inset Quotes eld
4755 \begin_inset Quotes erd
4758 that appears above is used as a description of the text class in the
4763 ocument\SpecialChar \menuseparator
4773 Let's assume that you wrote your own text class that uses the
4777 documentclass, but where you changed the appearance of the section headings.
4778 If you put it in a file
4782 , the header of this file should be:
4787 #% Do not delete the line below; configure depends on this
4794 DeclareLaTeXClass[article]{article (with my own headings)}
4797 This declares a text class
4801 , associated with the LaTeX document class
4806 \begin_inset Quotes eld
4809 article (with my own headings)
4810 \begin_inset Quotes erd
4814 If your text class depends on several packages, you can declare it as:
4819 #% Do not delete the line below; configure depends on this
4826 DeclareLaTeXClass[article,foo.sty]{article (with my own headings)}
4829 This indicates that your text class uses the foo.sty package.
4830 Finally, it is also possible to declare classes for SGML and DocBook code.
4831 Typical declarations will look like
4836 #% Do not delete the line below; configure depends on this
4843 DeclareSGMLClass{SGML (LinuxDoc)}
4849 #% Do not delete the line below; configure depends on this
4854 DeclareDocBookClass[article]{SGML (DocBook article)}
4857 Note that these declarations can also be given an optional parameter declaring
4858 the name of the document class (but not a list).
4861 When the text class has been modified to your taste, all you have to do
4862 is to copy it either in
4875 ools\SpecialChar \menuseparator
4883 Exit LyX and restart it; then your new text class should be available along
4887 General text class parameters
4890 These are the general parameters which describe the form of the entire document:
4919 ] Whether the class-default should have one or two columns.
4920 Can be changed in the
4925 ocument\SpecialChar \menuseparator
4936 This setting (same goes for
4940 , too) is important: if your text class has two columns by default but you
4941 forget to set it correctly, the
4949 be output when you select
4958 ocument\SpecialChar \menuseparator
4979 ] Whether the class-default should be printing on one or both sides of the
4981 Can be changed in the
4989 ocument\SpecialChar \menuseparator
5013 ] The class default pagestyle.
5014 Can be changed in the
5019 ocument\SpecialChar \menuseparator
5043 , Counter_Section, Counter_Subsection, Counter_Subsubsection, Counter_Paragraph,
5046 Counter_Subparagraph, Counter_EnumI, Counter_EnumII,
5048 Counter_EnumIII, Counter_EnumIV
5050 ] The highest level of automatic enumeration.
5055 for a book or report and
5060 If there is no enumeration needed at all, for example inside a letter class,
5076 ClassOptions\SpecialChar \ldots{}
5080 This section describes various global options supported by the document
5082 See Section\SpecialChar ~
5084 \begin_inset LatexCommand \ref{sec:classoptions}
5104 ] Whether the class already loads the
5109 This is the case of the
5133 ] Whether the class already provides the functionality of the
5138 This is the case of the
5162 ] Whether the class already provides the functionality of the
5167 This is the case of the
5180 This is used to describe the default font of the document.
5181 See Section\SpecialChar ~
5183 \begin_inset LatexCommand \ref{sec:fonts}
5200 ] This is the style that will be assigned to new paragraphs, usually
5205 This will default to the first defined style if not given, but you are
5206 highly encouraged to use this directive.
5225 ] Indicates what kind of markup is used to define the title of a document.
5230 means that the macro with name
5234 will be inserted after the last layout which has
5235 \begin_inset Quotes eld
5243 \begin_inset Quotes erd
5251 corresponds to the case where the block of paragraphs which have
5252 \begin_inset Quotes eld
5260 \begin_inset Quotes erd
5263 should be enclosed into the
5282 ] The name of the command/environment mentionned above.
5288 Preamble\SpecialChar \ldots{}
5292 A set of macro definitions that will be output at the beginning of the
5294 Use this for global definitions.
5303 As its name implies, this command allows you to include another layout
5304 definition file within yours to avoid duplicating commands.
5305 Common examples are the standard layout files, for example,
5309 , which contains most of the basic layouts.
5315 Style\SpecialChar \ldots{}
5319 This sequence defines a new style.
5320 See Section\SpecialChar ~
5322 \begin_inset LatexCommand \ref{sec:style}
5335 This command deletes an existing style.
5336 This is particularly useful when you want to suppress a style that has
5337 be defined in an input file.
5343 Float\SpecialChar \ldots{}
5347 This sequance defines a new float.
5348 See Section\SpecialChar ~
5350 \begin_inset LatexCommand \ref{sec:floats}
5363 This command deletes an existing float.
5364 This is particularly useful when you want to suppress a float that has
5365 be defined in an input file.
5371 Counter\SpecialChar \ldots{}
5375 This sequence defines a new counter.
5376 See Section\SpecialChar ~
5378 \begin_inset LatexCommand \ref{sec:counter}
5406 \begin_inset LatexCommand \label{sec:classoptions}
5414 section can contain the following entries:
5427 ] The list of available font sizes for the document's main font, separated
5429 \begin_inset Quotes eld
5437 \begin_inset Quotes erd
5451 string="empty|plain|headings|fancy"
5453 ] The list of available page styles, separated by
5454 \begin_inset Quotes eld
5462 \begin_inset Quotes erd
5478 ] Some document class options, separated by a comma, that will be added
5479 to the optional part of the
5488 Specific Paragraph Layouts
5492 \begin_inset LatexCommand \label{sec:style}
5496 A paragraph layout description looks like this
5502 Note that this will either define a new layout or modify an existing one.
5520 where the following commands are allowed:
5542 This is used to copy all the features of an existing layout into the current
5558 , Command, Environment, Item_Environment,
5564 ] How the layout should be translated into LaTeX.
5569 means nothing special.
5582 {\SpecialChar \ldots{}
5597 }\SpecialChar \ldots{}
5621 is generated for each paragraph of this environment.
5634 is passed as an argument to the environment.
5639 can be defined in the
5644 ayout\SpecialChar \menuseparator
5658 is perhaps a bit misleading, since these rules apply to SGML classes, too.
5659 Visit the SGML class files for specific examples.
5669 If 1, marks the layout as being part of a title block (see also the
5686 The name of the corresponding LaTeX stuff.
5687 Either the environment or command name.
5696 The optional parameter for the corresponding
5703 This parameter cannot be changed from within LyX.
5717 , Manual, Dynamic, First_Dynamic, Right_Address_Box
5721 The kind of margin that the layout has on the left side.
5726 just means a fixed margin.
5731 means that the left margin depends on the string entered in the
5736 dit\SpecialChar \menuseparator
5741 aragraph\SpecialChar ~
5745 This is used to typeset nice lists without tabulators.
5750 means that the margin depends on the size of the label.
5751 This is used for automatic enumerated headlines.
5752 It is obvious that the headline
5753 \begin_inset Quotes eld
5756 5.4.3.2.1 Very long headline
5757 \begin_inset Quotes erd
5760 must have a wider left margin (as wide as
5761 \begin_inset Quotes eld
5765 \begin_inset Quotes erd
5768 plus the space) than
5769 \begin_inset Quotes eld
5772 3.2 Very long headline
5773 \begin_inset Quotes erd
5776 , even if other word processors are not able to do this.
5781 is similar, but only the very first row of the paragraph is dynamic, while
5782 the others are static; this is used, for example, for descriptions.
5787 means the margin is chosen in a way that the longest row of this paragraph
5788 fits to the right margin.
5789 This is used to typeset an address on the right edge of the page.
5805 ] Whether the following Paragraph is allowed to indent its very first row.
5810 means that it is not allowed to do so,
5814 means it could do so if it wants to.
5827 ] The indent of the very first line of a paragraph.
5828 The argument is passed as a string.
5833 means that the paragraph is indented with the width of
5842 You can get a negative width by prefixing the string with
5847 This way was chosen so that the look is the same with each used screen
5853 will be fixed for a certain layout.
5854 The exception is Standard layout, since the indentation of a Standard layout
5855 paragraph can be prohibited with
5860 Also, Standard layout paragraphs inside environments use the
5864 of the environment, not their native one.
5865 For example, Standard paragraphs inside an enumeration are not indented.
5878 ] LyX allows to choose either
5879 \begin_inset Quotes eld
5883 \begin_inset Quotes erd
5887 \begin_inset Quotes eld
5891 \begin_inset Quotes erd
5894 to typeset a document.
5896 \begin_inset Quotes eld
5900 \begin_inset Quotes erd
5903 is chosen, this value is completely ignored.
5905 \begin_inset Quotes eld
5909 \begin_inset Quotes erd
5912 is chosen, the parindent of a LaTeXtype
5913 \begin_inset Quotes eld
5917 \begin_inset Quotes erd
5920 layout is ignored and all paragraphs are additionally separated by this
5922 The vertical space is calculated with
5924 value*DefaultHeight()
5930 is the height of a row with the normal font.
5931 This way, the look stays the same with different screen fonts.
5944 ] The vertical space with which the very first of a chain of paragraphs
5945 with this layout is separated from the previous paragraph.
5946 If the previous paragraph has another layout, the separations are not simply
5947 added, but the maximum is taken.
5964 for the very last paragraph.
5977 ] The vertical space between two paragraphs of this layout.
5990 ] This is an extra space between the paragraphs of an environment layout.
5991 If you put other layouts into an environment, each is separated with the
5997 But the whole items of the environment are additionally separated with
6016 ] If you put layouts into environments, the leftmargins are not simply added,
6017 but added with a factor
6018 \begin_inset Formula $\frac{4}{depth+4}$
6022 Note that this parameter is also used when the border is defined as
6031 Then it is added to the manual or dynamic border.
6032 This string has the same meaning as for
6067 , Manual, Static, Top_Environment,
6069 Centered_Top_Environment, Sensitive, Counter_Chapter,
6071 Counter_Section, Counter_Subsection, Counter_Subsubsection,
6073 Counter_Paragraph, Counter_Subparagraph, Counter_EnumI,
6079 Counter_EnumII, Counter_EnumIII, Counter_EnumIV
6087 means the label is the very first word (up to the first real blank).
6092 means it is defined in the layout (see
6103 Centered_Top_Environment
6105 are special cases of
6110 The label will be printed above the paragraph, but only at the top of an
6111 environment or the top of a chain of paragraphs with this layout.
6112 Usage is for example the
6121 This is also the case for
6125 labels with latex type
6129 , in order to make layouts for theorems work correctly.
6134 is a special case for the caption-labels
6135 \begin_inset Quotes eld
6139 \begin_inset Quotes erd
6143 \begin_inset Quotes eld
6147 \begin_inset Quotes erd
6155 means the (hardcoded) label string depends on the kind of float.
6160 label types should be self explanatory.
6173 ] The horizontal space between the label and the text body.
6174 Only used for labels that are not above the text body.
6183 [float=0] The vertical space between the label and the text body.
6184 Only used for labels that are above the text body (
6190 Centered_Top_Environment
6205 ] The string used for a label with a
6214 this string is also used as a suggestion for the
6218 that can be set in the
6223 dit\SpecialChar \menuseparator
6228 aragraph\SpecialChar ~
6232 When the labeltype is
6239 , this string is prepended to the counter.
6253 , Box, Filled_Box, Static
6255 ] The type of label that stands at the end of the paragraph (or sequence
6278 \begin_inset Quotes eld
6282 \begin_inset Quotes erd
6294 ) is a white (resp.\SpecialChar ~
6295 black) square suitable for end of proof markers,
6299 is an explicit text string.
6312 ] The string used for a label with a
6335 , left, right, center
6337 ] Paragraph alignment.
6351 , left, right, center
6358 Some LaTeX styles prohibit certain alignments, since those wouldn't make
6360 For example a right-aligned or centered enumeration isn't possible.
6376 ] With this parameter the
6381 \begin_inset Quotes eld
6384 Vertical space above
6385 \begin_inset Quotes erd
6393 dit\SpecialChar \menuseparator
6398 aragraph\SpecialChar ~
6401 dialog can be set when initializing a paragraph with this layout
6409 Note from Jean-Marc:
6411 I'm not sure that this setting has much use, and it should probably be removed
6452 ] Whether fragile commands in this layout should be
6474 ] Whether newlines are translated into LaTeX newlines (
6483 The translation can be switched off to allow more comfortable LaTeX editing
6500 ] Whether the contents of this paragraph should be output in raw form, meaning
6501 without special translations that LaTeX would require.
6502 This somehow replaces the older
6522 ] Usually LyX doesn't allow you to insert more than one space between words,
6523 since a space is considered as the separation between two words, not a
6524 character or symbol of its own.
6525 This is a very fine thing but sometimes annoying, for example when typing
6526 program code or plain LaTeX code.
6532 Note that LyX will create protected blanks for the additional blanks when
6533 in another mode than LaTeX-mode.
6549 ] Usually LyX does not allow you to leave a paragraph empty, since it would
6550 lead to empty LaTeX output.
6551 There are some cases where this could be desirable however: in a letter
6552 template, the required fields can be provided as empty fields, so that
6553 people do not forget them; in some special classes, a layout can be used
6554 as some kind of break, which does not contain actual text.
6568 , onehalf, double, other
6573 ] This defines what the default spacing should be in the layout.
6586 correspond respectively to a multiplier value of 1, 1.25 and 1.667.
6587 If you specify the argument
6591 , then you should also provide a numerical argument which will be the actual
6593 Note that, contrary to other parameters,
6597 implies the generation of specific LaTeX code, using the package
6611 The font used for both the text body
6616 See section\SpecialChar ~
6618 \begin_inset LatexCommand \ref{sec:fonts}
6623 Note that defining this font automatically defines the
6636 The font used for the text body .
6637 See section\SpecialChar ~
6639 \begin_inset LatexCommand \ref{sec:fonts}
6652 The font used for the label.
6653 See section\SpecialChar ~
6655 \begin_inset LatexCommand \ref{sec:fonts}
6665 Preamble\SpecialChar \ldots{}
6669 A set of macro definitions that will be output at the beginning of the
6670 LaTeX files when the layout is used.
6671 Use this to define the macros needed by this particular layout.
6680 the name of a style which preamble should be output
6684 the one mentionned above.
6685 This allows to ensure some ordering of the preamble snippets when macros
6686 definitions depend on one another
6692 Note that, besides that functionality, there is no way to ensure any ordering
6694 The ordering that you see in a given version of LyX may change without
6695 warning in later versions).
6718 \begin_inset LatexCommand \label{sec:floats}
6722 Since version 1.3.0 of LyX, it is necessary to define the floats (
6730 , \SpecialChar \ldots{}
6731 ) in the text class itself.
6732 If you are looking here to learn how to upgrade an existing text class,
6733 it will probably turn out that all you have to do is to add
6739 at a reasonable location of the text class.
6745 Don't forget to also have a look at counters in next section.
6748 If you want to implement a text class that proposes some other float types
6749 (like the AGU class bundled with LyX), the information below will hopefully
6764 \begin_inset Quotes erd
6768 \begin_inset Quotes erd
6772 \begin_inset Quotes eld
6776 \begin_inset Quotes erd
6779 of the new class of floats, like program or algorithm.
6780 After the appropriate
6812 \begin_inset Quotes erd
6816 \begin_inset Quotes erd
6819 ] The string that will be used in the menus and also for the caption.
6842 if the float is already defined by the documentclass.
6847 , the float will be defined using the LaTeX package
6865 \begin_inset Quotes erd
6869 \begin_inset Quotes erd
6872 ] This (optional) argument determines whether floats of this class will
6873 be numbered within some sectional unit of the document.
6874 For example, if within is equal to
6878 , the floats will be numbered within chapters.
6893 \begin_inset Quotes erd
6897 \begin_inset Quotes erd
6900 ] The style used when defining the float using
6920 \begin_inset Quotes erd
6924 \begin_inset Quotes erd
6927 ] The default placement for the given class of floats.
6928 They are like in standard LaTeX:
6944 for top, bottom, page, and here, respectively.
6950 Note that the order of these letters in the string is irrelevant, like in
6954 On top of that there is a new type,
6958 , which does not really correspond to a float, since it means: put it
6959 \begin_inset Quotes eld
6963 \begin_inset Quotes erd
6967 Note, however that the
6971 specifier is special and, because of implementation details cannot be used
6972 in non-builtin float types.
6973 If you do not understand what this means, just use
6991 \begin_inset Quotes erd
6995 \begin_inset Quotes erd
6998 ] The file name extension of an auxiliary file for the list of figures (or
7000 LaTeX writes the captions to this file.
7014 \begin_inset Quotes erd
7018 \begin_inset Quotes erd
7021 ] The heading used for the list of floats.
7028 \begin_inset LatexCommand \label{sec:counter}
7032 Since version 1.3.0 of LyX, it is necessary to define the counters (
7040 , \SpecialChar \ldots{}
7041 ) in the text class itself.
7042 If you are looking here to learn how to upgrade an existing text class,
7043 it will probably turn out that all you have to do is to add
7046 Input stdcounters.inc
7049 The definition of counters if presently a bit primitive in LyX, since many
7050 things are still hardcoded.
7051 The following two parameters can be used:
7065 \begin_inset Quotes erd
7069 \begin_inset Quotes erd
7072 ] The name of the counter
7086 \begin_inset Quotes erd
7090 \begin_inset Quotes erd
7093 ] If this is set to the name of another counter, the present counter will
7094 be reset everytime the other one is increased (is that unclear enough?).
7101 \begin_inset LatexCommand \label{sec:fonts}
7105 A font description looks like that:
7123 and the following commands are available:
7169 , Italic, SmallCaps, Slanted
7186 , large, larger, largest, huge, giant
7203 , black, white, red, green, blue, cyan, magenta, yellow
7209 \begin_inset LatexCommand \label{sec:templates}
7216 Templates are created just like usual documents.
7217 The only difference is that usual documents contain all possible settings,
7218 including the fontscheme and the papersize.
7219 Usually a user doesn't want a template to overwrite his defaults in these
7221 For that reason, the designer of a template should remove the corresponding
7234 from the template LyX file.
7235 This can be done with any simple text-editor, for example
7247 Put the edited template files you create in
7251 , copy the ones you use from the global template directory in
7255 to the same place, and redefine the template path in the
7260 dit\SpecialChar \menuseparator
7279 Note that there is a template which has a particular meaning:
7284 This template is loaded everytime you create a new document with
7291 \SpecialChar \menuseparator
7299 in order to provide useful defaults.
7300 To create this template from inside LyX, all you have to do is to open
7301 a document with the correct settings, and use the
7307 e as Document Defaults
7312 Including External Material
7318 One often requested feature from LyX users is to be able to interface LyX
7319 with XFig, Dia, or other similar applications that specialize in producing
7320 a certain kind of diagram, figure, schematic or whatever material might
7321 be relevant to include in your document.
7322 Previously, it was only possible to include boring, static, fixed images
7323 in LyX documents with the graphics feature, but there are several limitations
7324 attached to this approach:
7327 If you want to change the figure, you have to invoke an external program
7331 LyX does not notice that the referenced files change, so the on-screen display
7332 can fast become obsolete, and this is aggravated by the lack of a means
7333 of updating the display
7336 The graphics stuff does not provide any mechanisms for coping with different
7337 exported formats such as DocBook, HTML or raw Ascii
7340 The external material facility attempts to solve all of these problems
7346 Even if the graphics facility can't solve all problems, it is still valuable
7347 because it does provide in-line preview of the graphics, and supports advanced
7348 geometric transformations with a comfortable user interface.
7352 It does this by offering a general method to interface LyX to external
7354 Instead of introducing a long list of different constructs tailored for
7355 each specific application, we chose to sacrifice the in-line displaying
7356 of the included material in order to provide a general construct to cover
7357 a wide range of applications.
7358 The result is the external material construct.
7359 External material presents itself in the document simply as a button, but
7360 don't let this fool you.
7361 When you click on it, a dialog will appear that allows you to chose exactly
7362 what material to include, and in the following sections you will learn
7363 that this is indeed a powerful mechanism that can solve all of the above
7370 The external material feature is based on the concept of a
7375 A template is a specification of how LyX should interface with a certain
7377 As bundled, LyX comes with predefined templates for XFig figures, Dia diagrams,
7378 various raster format images, gnuplot, and more.
7379 You can check the actual list by using the
7381 Insert\SpecialChar \menuseparator
7390 Furthermore, it is possible to roll your own template to support a specific
7392 Later we'll describe in more detail what is involved, and hopefully you
7393 will submit all the templates you create so we can include them in a later
7397 Another basic idea of the external material feature is to distinguish between
7398 the original file that serves as a base for final material and the produced
7399 file that is included in your exported or printed document.
7400 For example, consider the case of a figure produced with XFig.
7401 The XFig application itself works on an original file with the
7406 Within XFig, you create and change your figure, and when you are done,
7412 When you want to include the figure in your document, you invoke
7416 in order to create a PostScript file that can readily be included in your
7422 file is the original file, and the PostScript file is the produced file.
7425 This distinction is important in order to allow updating of the material
7426 while you are in the process of writing the document.
7427 Furthermore, it provides us with the flexibility that is needed to support
7428 multiple export formats.
7429 For instance, in the case of an Ascii resulting file, it is not exactly
7430 an award-winning idea to include the figure as raw PostScript.
7431 Instead, you'd either prefer to just include a reference to the figure,
7432 or try to invoke some graphics to Ascii converter to make the final result
7433 look similar to the real graphics.
7434 The external material management allows you to do this, because it is parameter
7435 ized on the different export formats that LyX supports.
7438 Besides supporting the production of different products according to the
7439 exported format, it supports tight integration with editing and viewing
7441 In the case of an XFig figure, you are able to invoke
7445 on the original file with a single click from within the external material
7446 dialog in LyX, and also preview the produced PostScript file with
7451 No more fiddling around with the command line and/or file browsers to locate
7452 and manipulate the original or produced files.
7453 In this way, you are finally able to take full advantage of the many different
7454 applications that are relevant to use when you write your documents, and
7455 ultimately be more productive.
7458 So, all in all, LyX has information about a number of different programs
7459 to use behind the scenes in order to realize all of this machinery.
7460 This information, in fact, is exactly what is contained in the templates.
7461 To each template, there is associated a list of command lines that are
7462 used to invoke applications, convert the original file to the produced
7464 This mechanism allows the advanced user to extend the capabilities of LyX
7465 without fiddling with the source code.
7466 It requires some footwork to define all the different commands and flags,
7467 but luckily, the LyX team did all the hard work and specified these for
7471 But before the trees grow into the skies, we have to admit that we did take
7473 Since you can produce many different kinds of files to go with each exported
7474 format, one could also expect that it would be possible to preview each
7476 The LyX team decided against this in order to keep the user interface simple.
7477 Instead of providing a button for each exported file format, we decided
7478 to introduce the concept of the primary file format and just have one button.
7488 in the external material dialog, you will get a view of the produced file
7489 in the primary file format.
7490 And the primary file format is specified by your document class.
7491 For most document classes, the primary file format is LaTeX, but for the
7492 DocBook document classes, the primary file format is DocBook.
7493 So, when you view the produced file, keep in mind that it will only be
7494 a preview of what the main result will be.
7495 If you want to see how other exported formats turn out, you have to export
7496 them and preview them by hand.
7499 The external material dialog
7502 You insert external material from the
7510 When you do this, a button is inserted into your document, and the external
7511 material dialog is shown.
7512 This dialog allows you to describe exactly what material should be included,
7513 and also how it should be included.
7514 Furthermore, it provides access to the external applications to either
7515 view, edit or produce the material that is used in the resulting file.
7518 At the top of this dialog, there is a drop-down list where you can chose
7519 which template should be used.
7520 Just below the template drop-down, there's a text area with a short blurb
7521 about the chosen template that should help you use it.
7522 Most often, it will provide a short description of the template, and a
7523 few hints on how to parameterize the use of it.
7524 Further down, you'll find a filename input field along with a
7525 \begin_inset Quotes eld
7529 \begin_inset Quotes erd
7532 button that allows you to chose which file should be included with the
7533 standard file browser.
7534 Thus this field specifies the original file.
7535 Since the produced file is automatically generated when needed, there is
7536 no need to give access to it in the user interface.
7539 At the bottom of the dialog, you'll find a general input box called
7544 This box is generally used to parameterize the specific template.
7545 The specific use should be covered in the help blurb associated with the
7546 template, but it typically allows you to define variations on how the produced
7547 file should be generated.
7550 At the right side of the dialog, you'll find three buttons:
7578 These in turn allow you to edit your original file with the appropriate
7579 editing application, view the produced file as included in the primary
7580 format document, and finally force an update of the resulting material
7581 in the primary format.
7591 button will be disabled, because most templates are configured to automatically
7592 update the produced file when needed.
7593 In those cases, there is no need to force the production of a new produced
7595 However, some templates are configured to not be automatically producing
7596 the residual product, because the cost of producing the produced file might
7597 be so large that it would be a pain to do it all the time.
7598 Those types are known as
7603 In those cases, you can use the button to force the production of the produced
7604 file exactly when you need it, and thus control the amount of work that
7610 responsibility to do this to keep the produced files current at all times:
7611 before printing, before exporting, before viewing, etc.
7612 At some time in the future, it might be possible that LyX will help you
7613 with this task.Any changes in the template, filename or parameters are actually
7614 applied whenever you press
7642 In this section, we should include some examples of use of the external
7644 Those examples could include:
7647 External raster images
7650 External XFig figures
7659 The use of makefiles
7662 Recursive external LyX templates
7665 The external template configuration file
7668 It is relatively easy to add custom external template definitions to LyX.
7669 However, be aware this doing this in an careless manner most probably
7673 introduce an easily exploitable security hole.
7674 So before you do this, please read the discussion about security which
7678 Having said that, we encourage you to submit any interesting templates that
7683 The external templates are defined in the
7685 lib/external_templates
7688 You can place your own version in
7690 .lyx/external_templates
7693 At some point in time, hopefully somebody will document the template contents,
7694 and the syntax used to define your templates.
7697 The substitution mechanism
7700 When the external material facility invokes an external program, it is done
7701 on the basis of a command defined in the template configuration file.
7702 These commands can contain various macros that are expanded before execution.
7703 Execution always take place in the directory of the containing document.
7706 Also, whenever external material is to be displayed, the name will be produced
7707 by the substitution mechanism.
7710 The available macros are the following:
7713 $$FName The filename of the file specified in the external material dialog.
7716 $$Basename The filename without the extension.
7719 $$Tempname A name and full path to a temporary file which will be automatically
7720 deleted whenever the containing document is closed, or the external material
7725 \begin_inset Quotes eld
7729 \begin_inset Quotes erd
7732 ) This macro will expand to the contents of the file with the name
7739 $$Sysdir This macro will expand to the absolute path of the system directory.
7740 This is typically used to point to the various helper scripts that are
7744 In addition to these, the facility will expand general environment variables
7755 The external material feature interfaces with a lot of external programs
7756 and does so automatically, so we have to consider the security implications
7758 In particular, since you have the option of including your own filenames
7759 and/or parameter strings and those are expanded into a command, it seems
7760 that it would be possible to create a malicious document which executes
7761 arbitrary commands when a user views or prints the document.
7762 This is something we definately want to avoid.
7765 However, since the external program commands are specified in the template
7766 configuration file only, there are no security issues if LyX is properly
7767 configured with safe templates only.
7768 This is so because the external programs are invoked with the
7772 -system call rather than the
7776 system-call, so it's not possible to execute arbitrary commands from the
7777 filename or parameter section via the shell.
7780 This also implies that you are restricted in what command strings you can
7781 use in the external material templates.
7782 In particular, pipes and redirection are not readily available.
7783 This has to be so if LyX should remain safe.
7784 If you want to use some of the shell features, you should write a safe
7785 script to do this in a controlled manner, and then invoke the script from
7791 directory of the LyX installation, you can find a safe wrapper script
7793 general_command_wrapper.py
7795 that supports redirection of input and output.
7796 That can serve as an example for how to write safe template scripts.
7797 For a more advanced example that uses
7801 and friends, take a look at the
7808 It is possible to design a template that interacts directly with the shell,
7809 but since this would allow a malicious user to execute arbitrary commands
7810 by writing clever filenames and/or parameters, we generally recommend that
7811 you only use safe scripts that work with the
7815 system call in a controlled manner.
7816 Of course, for use in a controlled environment, it can be tempting to just
7817 fall back to use ordinary shell scripts.
7818 If you do so, be aware that you
7822 provide an easily exploitable security hole in your system.
7823 Of course it stands to reason that such unsafe templates will never be
7824 included in the standard LyX distribution, although we do encourage people
7825 to submit new templates in the open source tradition.
7826 But LyX as shipped from the official distribution channels will never have
7830 Including external material provides a lot of power, and you have to be
7831 careful not to introduce security hazards with this power.
7832 A subtle error in a single line in an innocent looking script can open
7833 the door to huge security problems.
7834 So if you do not fully understand the issues, we recommend that you consult
7835 a knowledgable security professional or the LyX development team if you
7836 have any questions about whether a given template is safe or not.
7837 And do this before you use it in an uncontrolled environment.
7846 The LyX server is a method implemented in LyX that will enable other programs
7847 to talk to LyX, invoke LyX commands, and retrieve information about the
7849 This is only intended for advanced users, but they should find it useful.
7852 Starting the LyX Server
7855 The LyX server works through the use of a pair of named pipes.
7856 These are usually located in your home directory and have the names
7857 \begin_inset Quotes eld
7865 \begin_inset Quotes erd
7869 \begin_inset Quotes eld
7877 \begin_inset Quotes erd
7881 External programs write into
7885 and read back data from
7890 The stem of the pipe names can be defined in the
7895 ools\SpecialChar \menuseparator
7904 "/home/myhome/.lyxpipe"
7917 ' to create the pipes.
7918 The above setting also has the effect of activating the LyX server.
7919 If one of the pipes already exists, LyX will assume that another LyX process
7920 is already running and will not start the server.
7921 To have several LyX processes with servers at the same time, you have to
7922 change the configuration between the start of the programs.
7925 If you are developing a client program, you might find it useful to enable
7926 debugging information from the LyX server.
7927 Do this by starting LyX as
7932 Warning: if LyX crashes, it may not manage to remove the pipes; in this
7933 case you must remove them manually.
7934 If LyX starts and the pipes exist already, it will not start any server.
7937 Other than this, there are a few points to consider:
7940 Both server and clients must run on UNIX or OS/2 machines.
7941 Communications between LyX on UNIX and clients on OS/2 or vice versa is
7942 not possible right now.
7945 On OS/2, only one client can connect to LyXServer at a time.
7948 On OS/2, clients must open inpipe with
7955 You can find a complete example client written in C in the source distribution
7958 development/server_monitor.c
7963 Normal communication
7966 To issue a LyX call, the client writes a line of ASCII text into the input
7968 This line has the following format:
7988 is a name that the client can choose arbitrarily.
7989 Its only use is that LyX will echo it if it sends an answer - so a client
7990 can dispatch results from different requesters.
7997 is the function you want LyX to perform.
7998 It is the same as the commands you'd use in the minibuffer.
8005 is an optional argument which is meaningful only to some functions (for
8007 \begin_inset Quotes eld
8011 \begin_inset Quotes erd
8014 which will insert the argument as text at the cursor position.)
8017 The answer from LyX will arrive in the output pipe and be of the form
8041 are just echoed from the command request, while
8045 is more or less useful information filled according to how the command
8046 execution worked out.
8047 Some commands will return information about the internal state of LyX,
8049 \begin_inset Quotes eld
8053 \begin_inset Quotes erd
8056 , while other will return an empty data-response.
8057 This means that the command execution went fine.
8060 In case of errors, the response from LyX will have this form
8080 should contain an explanation of why the command failed.
8086 echo "LYXCMD:test:beginning-of-buffer:" >~/.lyxpipe.in
8089 echo "LYXCMD:test:get-xy:" >~/.lyxpipe.in
8091 read a <~/.lyxpipe.out
8099 LyX can notify clients of events going on asynchronously.
8100 Currently it will only do this if the user binds a key sequence with the
8102 \begin_inset Quotes eld
8106 \begin_inset Quotes erd
8110 The format of the string LyX sends is as follows:
8125 is the printed representation of the key sequence that was actually typed
8129 This mechanism can be used to extend LyX's command set and implement macros:
8130 bind some key sequence to
8131 \begin_inset Quotes eld
8135 \begin_inset Quotes erd
8138 , start a client that listens on the out pipe, dispatches the command according
8139 to the sequence and starts a function that may use LyX calls and LyX requests
8140 to issue a command or a series of commands to LyX.
8143 The simple LyX Server Protocol
8146 LyX implements a simple protocol that can be used for session management.
8147 All messages are of the form
8164 \begin_inset Quotes eld
8168 \begin_inset Quotes erd
8172 \begin_inset Quotes eld
8176 \begin_inset Quotes erd
8181 \begin_inset Quotes eld
8185 \begin_inset Quotes erd
8188 is received from a client, LyX will report back to inform the client that
8189 it's listening to it's messages, while
8190 \begin_inset Quotes eld
8194 \begin_inset Quotes erd
8197 sent from LyX will inform clients that LyX is closing.
8203 This appendix is a huge cross-reference to all the English language keybindings.
8204 Originally, we simply wanted to list all of the key bindings followed by
8205 the function it's bound to.
8206 That way, a user can look up a key to find out what it does.
8207 We then decided, what the hey, why not include the default toolbar and
8209 Please note this section is likely to be very out of date.
8212 The form is really self-explanatory, but here are a few tips: all entries
8213 are arranged roughly alphabetically for a given modifier (
8222 For the general keyboard layout, simpler prefixes precede the more complex
8232 All entries were gleaned from the default user interface and binding files
8233 located in the directories
8235 \SpecialChar \ldots{}
8240 \SpecialChar \ldots{}
8243 ; they should be treated as the final word on the bindings.
8246 As a final note, be aware that some window managers (such as FVWM) take
8247 control of some of the function keys or motion keys.
8252 is listed here as generating
8256 , but FVWM grabs it and uses it to change virtual desktops instead.
8257 Very annoying unless you instruct your window manager to stop intercepting
8315 Icon "footnote-insert"
8318 Icon "marginpar-insert"
8327 Icon "figure-insert"
8330 Icon "dialog-tabular-insert"
8341 \labelwidthstring 00.00.0000
8350 \labelwidthstring 00.00.0000
8361 \labelwidthstring 00.00.0000
8372 \labelwidthstring 00.00.0000
8385 \labelwidthstring 00.00.0000
8394 \labelwidthstring 00.00.0000
8407 \labelwidthstring 00.00.0000
8416 \labelwidthstring 00.00.0000
8427 \labelwidthstring 00.00.0000
8438 \labelwidthstring 00.00.0000
8449 \labelwidthstring 00.00.0000
8458 \labelwidthstring 00.00.0000
8470 \labelwidthstring 00.00.0000
8478 \labelwidthstring 00.00.0000
8486 \labelwidthstring 00.00.0000
8494 \labelwidthstring 00.00.0000
8502 \labelwidthstring 00.00.0000
8510 \labelwidthstring 00.00.0000
8519 \labelwidthstring 00.00.0000
8531 \labelwidthstring 00.00.0000
8542 \labelwidthstring 00.00.0000
8553 \labelwidthstring 00.00.0000
8564 \labelwidthstring 00.00.0000
8575 \labelwidthstring 00.00.0000
8586 \labelwidthstring 00.00.0000
8597 \labelwidthstring 00.00.0000
8611 \labelwidthstring 00.00.0000
8619 tabular-feature append-row
8621 \labelwidthstring 00.00.0000
8629 tabular-feature toggle-line-bottom
8631 \labelwidthstring 00.00.0000
8639 tabular-feature align-center
8641 \labelwidthstring 00.00.0000
8649 tabular-feature delete-column
8651 \labelwidthstring 00.00.0000
8659 tabular-feature align-left
8661 \labelwidthstring 00.00.0000
8669 tabular-feature align-right
8671 \labelwidthstring 00.00.0000
8679 tabular-feature toggle-line-left
8681 \labelwidthstring 00.00.0000
8689 tabular-feature multicolumn
8691 \labelwidthstring 00.00.0000
8699 tabular-feature valign-center
8701 \labelwidthstring 00.00.0000
8709 tabular-feature valign-top
8711 \labelwidthstring 00.00.0000
8719 tabular-feature toggle-line-right
8721 \labelwidthstring 00.00.0000
8729 tabular-feature toggle-line-top
8731 \labelwidthstring 00.00.0000
8739 tabular-feature append-column
8741 \labelwidthstring 00.00.0000
8749 tabular-feature valign-bottom
8751 \labelwidthstring 00.00.0000
8759 tabular-feature delete-row
8762 \labelwidthstring 00.00.0000
8774 \labelwidthstring 00.00.0000
8780 floats-operate openfoot
8782 \labelwidthstring 00.00.0000
8788 floats-operate closefoot
8790 \labelwidthstring 00.00.0000
8796 floats-operate openfig
8798 \labelwidthstring 00.00.0000
8806 \labelwidthstring 00.00.0000
8814 \labelwidthstring 00.00.0000
8820 floats-operate closefig
8823 \labelwidthstring 00.00.0000
8834 \labelwidthstring 00.00.0000
8847 \labelwidthstring 00.00.0000
8858 \labelwidthstring 00.00.0000
8869 \labelwidthstring 00.00.0000
8882 \labelwidthstring 00.00.0000
8891 \labelwidthstring 00.00.0000
8903 \labelwidthstring 00.00.0000
8911 primary-selection-paste
8913 \labelwidthstring 00.00.0000
8921 primary-selection-paste paragraph
8927 \labelwidthstring 00.00.0000
8941 \labelwidthstring 00.00.0000
8949 buffer-float-insert algorithm
8951 \labelwidthstring 00.00.0000
8959 buffer-float-insert wide-tab
8961 \labelwidthstring 00.00.0000
8969 buffer-float-insert figure
8971 \labelwidthstring 00.00.0000
8979 buffer-float-insert table
8981 \labelwidthstring 00.00.0000
8989 buffer-float-insert wide-fig
8992 \labelwidthstring 00.00.0000
9001 dialog-tabular-insert
9003 \labelwidthstring 00.00.0000
9014 \labelwidthstring 00.00.0000
9025 \labelwidthstring 00.00.0000
9036 \labelwidthstring 00.00.0000
9047 \labelwidthstring 00.00.0000
9058 \labelwidthstring 00.00.0000
9069 \labelwidthstring 00.00.0000
9080 \labelwidthstring 00.00.0000
9091 \labelwidthstring 00.00.0000
9102 \labelwidthstring 00.00.0000
9113 \labelwidthstring 00.00.0000
9127 \labelwidthstring 00.00.0000
9137 \labelwidthstring 00.00.0000
9147 \labelwidthstring 00.00.0000
9157 \labelwidthstring 00.00.0000
9167 \labelwidthstring 00.00.0000
9177 \labelwidthstring 00.00.0000
9188 \labelwidthstring 00.00.0000
9199 \labelwidthstring 00.00.0000
9213 \labelwidthstring 00.00.0000
9221 protected-space-insert
9223 \labelwidthstring 00.00.0000
9231 end-of-sentence-period-insert
9233 \labelwidthstring 00.00.0000
9243 \labelwidthstring 00.00.0000
9253 \labelwidthstring 00.00.0000
9263 \labelwidthstring 00.00.0000
9271 menu-separator-insert
9273 \labelwidthstring 00.00.0000
9281 hyphenation-point-insert
9283 \labelwidthstring 00.00.0000
9293 \labelwidthstring 00.00.0000
9301 command-sequence math-insert ^;math-mode;
9303 \labelwidthstring 00.00.0000
9311 command-sequence math-insert _;math-mode;
9314 \labelwidthstring 00.00.0000
9328 \labelwidthstring 00.00.0000
9336 file-insert-ascii lines
9338 \labelwidthstring 00.00.0000
9346 file-insert-ascii paragraphs
9348 \labelwidthstring 00.00.0000
9359 \labelwidthstring 00.00.0000
9370 \labelwidthstring 00.00.0000
9381 \labelwidthstring 00.00.0000
9395 \labelwidthstring 00.00.0000
9406 \labelwidthstring 00.00.0000
9417 \labelwidthstring 00.00.0000
9428 \labelwidthstring 00.00.0000
9439 \labelwidthstring 00.00.0000
9450 \labelwidthstring 00.00.0000
9461 \labelwidthstring 00.00.0000
9472 \labelwidthstring 00.00.0000
9483 \labelwidthstring 00.00.0000
9494 \labelwidthstring 00.00.0000
9505 \labelwidthstring 00.00.0000
9516 \labelwidthstring 00.00.0000
9526 \layout Subsubsection
9530 ayout\SpecialChar \menuseparator
9535 \labelwidthstring 00.00.0000
9544 \labelwidthstring 00.00.0000
9553 \labelwidthstring 00.00.0000
9562 \labelwidthstring 00.00.0000
9571 \labelwidthstring 00.00.0000
9582 \labelwidthstring 00.00.0000
9591 \labelwidthstring 00.00.0000
9600 \labelwidthstring 00.00.0000
9609 \labelwidthstring 00.00.0000
9618 \labelwidthstring 00.00.0000
9627 \labelwidthstring 00.00.0000
9636 \labelwidthstring 00.00.0000
9645 \labelwidthstring 00.00.0000
9654 \labelwidthstring 00.00.0000
9663 \labelwidthstring 00.00.0000
9674 \labelwidthstring 00.00.0000
9685 \labelwidthstring 00.00.0000
9696 \labelwidthstring 00.00.0000
9707 \labelwidthstring 00.00.0000
9716 \labelwidthstring 00.00.0000
9727 \labelwidthstring 00.00.0000
9738 \labelwidthstring 00.00.0000
9747 \labelwidthstring 00.00.0000
9758 \labelwidthstring 00.00.0000
9769 \labelwidthstring 00.00.0000
9780 \labelwidthstring 00.00.0000
9791 \labelwidthstring 00.00.0000
9800 \labelwidthstring 00.00.0000
9809 \labelwidthstring 00.00.0000
9820 \labelwidthstring 00.00.0000
9831 \labelwidthstring 00.00.0000
9842 \labelwidthstring 00.00.0000
9851 \labelwidthstring 00.00.0000
9872 \labelwidthstring 00.00.0000
9883 \labelwidthstring 00.00.0000
9894 \labelwidthstring 00.00.0000
9905 \labelwidthstring 00.00.0000
9916 \labelwidthstring 00.00.0000
9927 \labelwidthstring 00.00.0000
9936 layout ShortFoilhead
9938 \labelwidthstring 00.00.0000
9949 \labelwidthstring 00.00.0000
9960 \labelwidthstring 00.00.0000
9971 \labelwidthstring 00.00.0000
9982 \labelwidthstring 00.00.0000
9991 layout ShortRotatefoilhead
9993 \labelwidthstring 00.00.0000
10004 \labelwidthstring 00.00.0000
10015 \labelwidthstring 00.00.0000
10026 \labelwidthstring 00.00.0000
10035 drop-layouts-choice
10037 \labelwidthstring 00.00.0000
10051 \labelwidthstring 00.00.0000
10065 \labelwidthstring 00.00.0000
10076 \labelwidthstring 00.00.0000
10087 \labelwidthstring 00.00.0000
10096 layout Subsubsection
10098 \labelwidthstring 00.00.0000
10109 \labelwidthstring 00.00.0000
10118 layout Subparagraph
10120 \labelwidthstring 00.00.0000
10125 asterisk\SpecialChar ~
10132 \labelwidthstring 00.00.0000
10137 asterisk\SpecialChar ~
10144 \labelwidthstring 00.00.0000
10149 asterisk\SpecialChar ~
10156 \labelwidthstring 00.00.0000
10161 asterisk\SpecialChar ~
10168 \labelwidthstring 00.00.0000
10173 asterisk\SpecialChar ~
10178 layout Subsubsection*
10180 \labelwidthstring 00.00.0000
10185 asterisk\SpecialChar ~
10192 \labelwidthstring 00.00.0000
10197 asterisk\SpecialChar ~
10202 layout Subparagraph*
10204 \labelwidthstring 00.00.0000
10215 \labelwidthstring 00.00.0000
10224 layout Bibliography
10226 \labelwidthstring 00.00.0000
10237 \labelwidthstring 00.00.0000
10248 \labelwidthstring 00.00.0000
10259 \labelwidthstring 00.00.0000
10270 \labelwidthstring 00.00.0000
10281 \labelwidthstring 00.00.0000
10290 layout Rotatefoilhead
10292 \labelwidthstring 00.00.0000
10301 layout RightAddress
10303 \labelwidthstring 00.00.0000
10314 \labelwidthstring 00.00.0000
10325 \labelwidthstring 00.00.0000
10336 \labelwidthstring 00.00.0000
10348 These ones are kept for backwards compatibility, but only make sense on
10351 \labelwidthstring 00.00.0000
10362 \labelwidthstring 00.00.0000
10371 layout Subsubsection*
10373 \labelwidthstring 00.00.0000
10392 \labelwidthstring 00.00.0000
10402 \labelwidthstring 00.00.0000
10412 \labelwidthstring 00.00.0000
10422 \labelwidthstring 00.00.0000
10432 \labelwidthstring 00.00.0000
10442 \labelwidthstring 00.00.0000
10452 \labelwidthstring 00.00.0000
10460 hyphenation-point-insert
10462 \labelwidthstring 00.00.0000
10472 \labelwidthstring 00.00.0000
10480 line-delete-forward
10482 \labelwidthstring 00.00.0000
10492 \labelwidthstring 00.00.0000
10502 \labelwidthstring 00.00.0000
10512 \labelwidthstring 00.00.0000
10522 \labelwidthstring 00.00.0000
10532 \labelwidthstring 00.00.0000
10540 \labelwidthstring 00.00.0000
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
10611 \labelwidthstring 00.00.0000
10622 \labelwidthstring 00.00.0000
10633 \labelwidthstring 00.00.0000
10644 \labelwidthstring 00.00.0000
10656 \labelwidthstring 00.00.0000
10667 \labelwidthstring 00.00.0000
10678 \labelwidthstring 00.00.0000
10689 \labelwidthstring 00.00.0000
10700 \labelwidthstring 00.00.0000
10712 \labelwidthstring 00.00.0000
10723 \labelwidthstring 00.00.0000
10734 \labelwidthstring 00.00.0000
10746 \labelwidthstring 00.00.0000
10758 \labelwidthstring 00.00.0000
10770 \labelwidthstring 00.00.0000
10782 \labelwidthstring 00.00.0000
10794 \labelwidthstring 00.00.0000
10806 \labelwidthstring 00.00.0000
10817 \labelwidthstring 00.00.0000
10828 \labelwidthstring 00.00.0000
10839 \labelwidthstring 00.00.0000
10848 menu-open Documents
10850 \labelwidthstring 00.00.0000
10861 \labelwidthstring 00.00.0000
10872 \labelwidthstring 00.00.0000
10883 \labelwidthstring 00.00.0000
10894 \labelwidthstring 00.00.0000
10905 \labelwidthstring 00.00.0000
10914 buffer-toggle-read-only
10916 \labelwidthstring 00.00.0000
10927 \labelwidthstring 00.00.0000
10938 \labelwidthstring 00.00.0000
10949 \labelwidthstring 00.00.0000
10959 \labelwidthstring 00.00.0000
10969 \labelwidthstring 00.00.0000
10979 \labelwidthstring 00.00.0000
10989 \labelwidthstring 00.00.0000
10999 \labelwidthstring 00.00.0000
11009 \labelwidthstring 00.00.0000
11019 \labelwidthstring 00.00.0000
11029 \labelwidthstring 00.00.0000
11039 \labelwidthstring 00.00.0000
11049 \labelwidthstring 00.00.0000
11059 \labelwidthstring 00.00.0000
11069 \labelwidthstring 00.00.0000
11079 \labelwidthstring 00.00.0000
11089 \labelwidthstring 00.00.0000
11097 word-delete-forward
11099 \labelwidthstring 00.00.0000
11107 word-delete-backward
11109 \labelwidthstring 00.00.0000
11119 \labelwidthstring 00.00.0000
11127 end-of-sentence-period-insert
11129 \labelwidthstring 00.00.0000
11137 protected-space-insert
11139 \labelwidthstring 00.00.0000
11149 \labelwidthstring 00.00.0000
11159 \labelwidthstring 00.00.0000
11169 \labelwidthstring 00.00.0000
11179 \labelwidthstring 00.00.0000
11189 \labelwidthstring 00.00.0000
11199 \labelwidthstring 00.00.0000
11207 buffer-begin-select
11209 \labelwidthstring 00.00.0000
11219 \labelwidthstring 00.00.0000
11227 paragraph-up-select
11229 \labelwidthstring 00.00.0000
11237 paragraph-down-select
11239 \labelwidthstring 00.00.0000
11247 word-backward-select
11249 \labelwidthstring 00.00.0000
11257 word-forward-select
11259 \labelwidthstring 00.00.0000
11269 \labelwidthstring 00.00.0000
11277 word-delete-forward
11279 \labelwidthstring 00.00.0000
11289 \labelwidthstring 00.00.0000
11299 \labelwidthstring 00.00.0000
11309 \labelwidthstring 00.00.0000
11319 \labelwidthstring 00.00.0000
11327 break-paragraph-keep-layout
11329 \labelwidthstring 00.00.0000
11342 \labelwidthstring 00.00.0000
11352 \labelwidthstring 00.00.0000
11362 \labelwidthstring 00.00.0000
11372 \labelwidthstring 00.00.0000
11382 \labelwidthstring 00.00.0000
11392 \labelwidthstring 00.00.0000
11402 \labelwidthstring 00.00.0000
11412 \labelwidthstring 00.00.0000
11422 \labelwidthstring 00.00.0000
11432 \labelwidthstring 00.00.0000
11442 \labelwidthstring 00.00.0000
11452 \labelwidthstring 00.00.0000
11462 \labelwidthstring 00.00.0000
11472 \labelwidthstring 00.00.0000
11482 \labelwidthstring 00.00.0000
11492 \labelwidthstring 00.00.0000
11502 \labelwidthstring 00.00.0000
11512 \labelwidthstring 00.00.0000
11522 \labelwidthstring 00.00.0000
11532 \labelwidthstring 00.00.0000
11542 \labelwidthstring 00.00.0000
11552 \labelwidthstring 00.00.0000
11562 \labelwidthstring 00.00.0000
11570 protected-space-insert
11572 \labelwidthstring 00.00.0000
11582 \labelwidthstring 00.00.0000
11592 \labelwidthstring 00.00.0000
11602 \labelwidthstring 00.00.0000
11610 buffer-new-template
11612 \labelwidthstring 00.00.0000
11622 \labelwidthstring 00.00.0000
11632 \labelwidthstring 00.00.0000
11642 \labelwidthstring 00.00.0000
11652 \labelwidthstring 00.00.0000
11662 \labelwidthstring 00.00.0000
11672 \labelwidthstring 00.00.0000
11682 \labelwidthstring 00.00.0000
11690 end-of-sentence-period-insert
11692 \labelwidthstring 00.00.0000
11702 \labelwidthstring 00.00.0000
11712 \labelwidthstring 00.00.0000
11720 hyphenation-point-insert
11722 \labelwidthstring 00.00.0000
11732 \labelwidthstring 00.00.0000
11740 protected-space-insert
11742 \labelwidthstring 00.00.0000
11752 \labelwidthstring 00.00.0000
11762 \labelwidthstring 00.00.0000
11772 \labelwidthstring 00.00.0000
11782 \labelwidthstring 00.00.0000
11792 \labelwidthstring 00.00.0000
11802 \labelwidthstring 00.00.0000
11812 \labelwidthstring 00.00.0000
11822 \labelwidthstring 00.00.0000
11832 \labelwidthstring 00.00.0000
11842 \labelwidthstring 00.00.0000
11852 \labelwidthstring 00.00.0000
11862 \labelwidthstring 00.00.0000
11872 \labelwidthstring 00.00.0000
11882 \labelwidthstring 00.00.0000
11892 \labelwidthstring 00.00.0000
11900 word-delete-forward
11902 \labelwidthstring 00.00.0000
11910 word-delete-backward
11912 \labelwidthstring 00.00.0000
11922 \labelwidthstring 00.00.0000
11932 \labelwidthstring 00.00.0000
11942 \labelwidthstring 00.00.0000
11952 \labelwidthstring 00.00.0000
11960 paragraph-down-select
11962 \labelwidthstring 00.00.0000
11972 \labelwidthstring 00.00.0000
11980 buffer-begin-select
11982 \labelwidthstring 00.00.0000
11990 word-backward-select
11992 \labelwidthstring 00.00.0000
12000 word-forward-select
12002 \labelwidthstring 00.00.0000
12010 paragraph-up-select
12012 \labelwidthstring 00.00.0000
12022 \labelwidthstring 00.00.0000
12030 break-paragraph-keep-layout
12032 \labelwidthstring 00.00.0000
12042 \labelwidthstring 00.00.0000
12052 \labelwidthstring 00.00.0000
12062 \labelwidthstring 00.00.0000
12072 \labelwidthstring 00.00.0000
12082 \labelwidthstring 00.00.0000
12090 \labelwidthstring 00.00.0000
12100 \labelwidthstring 00.00.0000
12110 \labelwidthstring 00.00.0000
12120 \labelwidthstring 00.00.0000
12130 \labelwidthstring 00.00.0000
12146 These are LyX keyboard definitions for mathematics, similar to those of
12150 The bindings file and the present documentation were prepared by Serge Winitzki
12151 with assistance from Jean-Marc Lasgouttes.
12152 Version 1.3, for LyX 1.2.x and 1.3.x.
12155 These definitions make it a lot easier to type equations without using the
12156 mouse, especially for people familiar with Scientific Word.
12157 The standard LyX bindings such as
12168 Tip: to find the "LyX bind name" for a key, look at the status bar after
12169 typing some non-existent key combination.
12171 to find how "Ctrl-&" is referenced, press Ctrl-S and then Ctrl-&: the status
12172 bar shows "C-s S-C-ampersand." (This does not work in LyX 1.3.0!)
12174 \labelwidthstring 00.00.0000
12184 -- Copy, cut, paste is as in Sciword,
12198 \labelwidthstring 00.00.0000
12208 -- Display equation toggle: type
12212 to insert a displayed formula (
12217 \begin_inset Quotes eld
12221 \begin_inset Quotes erd
12229 in a displayed formula to convert it back to an inline formula.
12231 \labelwidthstring 00.00.0000
12247 to insert a fraction (
12252 \begin_inset Quotes eld
12256 \begin_inset Quotes erd
12260 You can also select an expression and type
12264 to convert it to the numerator of a fraction.
12273 end of the denominator will delete the numerator and convert the denominator
12276 \labelwidthstring 00.00.0000
12289 \begin_inset Formula $\int$
12297 \begin_inset Quotes eld
12301 \begin_inset Quotes erd
12306 \labelwidthstring 00.00.0000
12314 line-delete-forward
12316 -- Emacs-like binding: delete forward of cursor to end of line.
12318 \labelwidthstring 00.00.0000
12328 -- A text/math toggle (
12333 \begin_inset Quotes eld
12337 \begin_inset Quotes erd
12340 ): switches to math in text mode, and also inserts roman text in math mode.
12350 \begin_inset Quotes eld
12354 \begin_inset Quotes erd
12359 \labelwidthstring 00.00.0000
12369 -- Add/remove numbering in a single equation.
12371 \labelwidthstring 00.00.0000
12381 -- Add/remove numbering at a line in equation arrays.
12384 The above commands are toggles that control the numbering of equations (
12389 \begin_inset Quotes eld
12393 \begin_inset Quotes erd
12397 Note: when deleting a number in a labeled eqnarray, the label is not really
12398 removed (the TeX code becomes
12399 \begin_inset Quotes eld
12411 \begin_inset Quotes erd
12414 ) and this generates a (harmless) LaTeX warning.
12416 \labelwidthstring 00.00.0000
12426 -- Open a new document.
12429 \labelwidthstring 00.00.0000
12439 -- Insert a quote character " (
12444 \begin_inset Quotes eld
12448 \begin_inset Quotes erd
12453 \begin_inset Quotes eld
12457 \begin_inset Quotes erd
12460 double quote character that you get by default.
12462 \labelwidthstring 00.00.0000
12474 -- Square root sign
12475 \begin_inset Formula $\sqrt{x}$
12483 \begin_inset Quotes eld
12487 \begin_inset Quotes erd
12492 \labelwidthstring 00.00.0000
12505 \begin_inset Formula $\sqrt[n]{x}$
12510 \labelwidthstring 00.00.0000
12520 -- Another binding for a switch between the text and the math mode (
12525 \begin_inset Quotes eld
12529 \begin_inset Quotes erd
12533 Note that the roman text inserted in math mode is special.
12535 \labelwidthstring 00.00.0000
12549 the selected text (text mode only, use things like
12563 \labelwidthstring 00.00.0000
12573 -- W*ndows heritage.
12575 \labelwidthstring 00.00.0000
12585 -- Close the current document (again, a W*ndows heritage).
12587 \labelwidthstring 00.00.0000
12597 \labelwidthstring 00.00.0000
12607 \labelwidthstring 00.00.0000
12618 \begin_inset Quotes eld
12622 \begin_inset Quotes erd
12626 \begin_inset Quotes eld
12630 \begin_inset Quotes erd
12636 Bracket delimiters: press
12640 -<bracket key> to insert a matching pair of delimiters.
12645 inserts a pair of parentheses
12646 \begin_inset Formula $\left[\right]$
12654 does the same thing.) It will switch to math mode if needed.
12655 The supported characters are ( [ { < |.
12656 It is the same to press the right or the left bracket.
12657 The corresponding delimiters are
12658 \begin_inset Formula $\left(\right)$
12662 \begin_inset Formula $\left[\right]$
12666 \begin_inset Formula $\left\{ \right\} $
12670 \begin_inset Formula $\left\langle \right\rangle $
12674 \begin_inset Formula $\left|\right|$
12679 \begin_inset Quotes eld
12683 \begin_inset Quotes erd
12686 and resize with their contents.
12687 Use Math Panel to get other or non-matching delimiters.
12688 Press backspace on the
12692 delimiter to remove both
12693 \begin_inset Quotes eld
12697 \begin_inset Quotes erd
12700 delimiters without removing their contents.
12702 \labelwidthstring 00.00.0000
12712 -- for convenience, pressing
12724 \labelwidthstring 00.00.0000
12734 \labelwidthstring 00.00.0000
12744 \labelwidthstring 00.00.0000
12754 \labelwidthstring 00.00.0000
12764 \labelwidthstring 00.00.0000
12774 \labelwidthstring 00.00.0000
12782 math-delim langle rangle
12784 -- angular delimiters
12785 \begin_inset Formula $\left\langle \right\rangle $
12788 , not to confuse with ordinary < > signs.
12790 \labelwidthstring 00.00.0000
12798 math-delim langle rangle
12801 The bar bracket: on some keyboards (e.g.\SpecialChar ~
12802 some British ones), the bar character
12807 -something and on some wayward Unices to "brokenbar".
12808 So we define all of these keys as well.
12810 \labelwidthstring 00.00.0000
12820 \labelwidthstring 00.00.0000
12830 \labelwidthstring 00.00.0000
12840 \labelwidthstring 00.00.0000
12850 \labelwidthstring 00.00.0000
12861 Accents are in most cases
12865 -<accent key>, e.g.\SpecialChar ~
12879 for tilde (you also need to press
12885 \begin_inset Quotes eld
12897 \begin_inset Quotes erd
12901 Some accents work only in math mode and others only in text mode.
12903 \labelwidthstring 00.00.0000
12913 -- overdot accent, \i \.{a}
12916 \labelwidthstring 00.00.0000
12929 \begin_inset Formula $\dot{a}$
12932 (math mode only -- in physics this denotes a first derivative).
12934 \labelwidthstring 00.00.0000
12946 -- Vector accent over math
12947 \begin_inset Formula $\overrightarrow{x}$
12952 \labelwidthstring 00.00.0000
12962 -- umlaut accent, ä (text mode only)
12964 \labelwidthstring 00.00.0000
12976 -- double dot accent,
12977 \begin_inset Formula $\ddot{a}$
12980 (math mode only -- in physics this denotes a second derivative).
12981 To get a triple dot in math mode, use
12987 \labelwidthstring 00.00.0000
12997 -- grave accent à (text mode only, use
13005 \labelwidthstring 00.00.0000
13015 -- tilde accent ã (text mode only, use
13023 \labelwidthstring 00.00.0000
13033 -- acute accent á (text mode only, use
13041 \labelwidthstring 00.00.0000
13051 -- circumflex (caret) accent â (text mode only, use
13061 The new key S-F2 for creating a LaTeX file seems handy.
13063 \labelwidthstring 00.00.0000
13073 -- Save current document.
13075 \labelwidthstring 00.00.0000
13083 buffer-export latex
13085 -- Write a LaTeX file for the current document.
13087 \labelwidthstring 00.00.0000
13097 -- Find and replace dialog.
13099 \labelwidthstring 00.00.0000
13115 \labelwidthstring 00.00.0000
13129 to quit LyX is the W*ndows w*ndow manager's mnemonic.
13140 are used to switch fonts.
13145 to switch back to the normal font.
13146 The non-default font switches
13154 all work as toggles.
13155 They also work on the whole word if you put the cursor in the middle of
13156 the word, or if you select some text.
13158 \labelwidthstring 00.00.0000
13168 -- stop using any special font
13170 \labelwidthstring 00.00.0000
13186 \labelwidthstring 00.00.0000
13202 \labelwidthstring 00.00.0000
13218 \labelwidthstring 00.00.0000
13233 (Used sometimes for people's names.)
13241 \begin_inset Quotes eld
13245 \begin_inset Quotes erd
13252 key (useful e.g.\SpecialChar ~
13253 if the keyboard has no working
13260 Here are some Sciword-inspired mnemonics for frequently used math symbols.
13261 Many symbols start with a
13270 cannot be itself bound to anything.
13272 \labelwidthstring 00.00.0000
13285 \begin_inset Quotes eld
13289 \begin_inset Quotes erd
13293 \begin_inset Formula $\prime$
13297 This is frequently unnecessary: in most cases the normal apostrophe works
13300 \begin_inset Formula $x'+2x=0$
13303 , but in some cases this would generate a double superscript error in LaTeX.
13305 \begin_inset Formula $x^{\prime2}$
13309 \begin_inset Formula $x$
13312 prime squared) must be entered with the prime character.
13314 \labelwidthstring 00.00.0000
13323 command-sequence math-superscript; math-insert
13327 -- Insert a prime as a superscript (see example above).
13329 \labelwidthstring 00.00.0000
13339 -- Insert an upper index.
13344 \labelwidthstring 00.00.0000
13354 -- Insert a lower index.
13359 \labelwidthstring 00.00.0000
13372 -- Partial derivative symbol
13373 \begin_inset Formula $\partial$
13378 \labelwidthstring 00.00.0000
13391 -- Summation symbol
13392 \begin_inset Formula $\sum$
13395 (not the same as the Greek letter uppercase Sigma
13396 \begin_inset Formula $\Sigma$
13399 because it can resize and allows smart upper/lower limits).
13401 \labelwidthstring 00.00.0000
13415 \begin_inset Formula $\prod$
13418 (not the same as the Greek letter uppercase Pi,
13419 \begin_inset Formula $\Pi$
13424 \labelwidthstring 00.00.0000
13438 \begin_inset Formula $\infty$
13443 \labelwidthstring 00.00.0000
13457 \begin_inset Formula $\times$
13462 \labelwidthstring 00.00.0000
13473 -- Insert a stacked array
13474 \begin_inset Formula $\begin{array}{c}
13476 \\\end{array}\end{array}$
13480 (Frequently useful in formulae.)
13482 \labelwidthstring 00.00.0000
13494 \begin_inset Formula $\times$
13498 \begin_inset Formula $\begin{array}{ccc}
13503 (Then you can modify its size using the
13505 Edit\SpecialChar \menuseparator
13510 \labelwidthstring 00.00.0000
13524 \begin_inset Quotes eld
13528 \begin_inset Quotes erd
13532 \begin_inset Formula $\dagger$
13537 \labelwidthstring 00.00.0000
13551 \begin_inset Quotes eld
13555 \begin_inset Quotes erd
13559 \begin_inset Formula $\equiv$
13564 \labelwidthstring 00.00.0000
13577 \begin_inset Quotes eld
13580 Approximate equality
13581 \begin_inset Quotes erd
13585 \begin_inset Formula $\approx$
13590 \labelwidthstring 00.00.0000
13603 \begin_inset Quotes eld
13607 \begin_inset Quotes erd
13611 \begin_inset Formula $\sim$
13616 \labelwidthstring 00.00.0000
13629 \begin_inset Formula $\rightarrow$
13633 \begin_inset Formula $\lim_{x\rightarrow0}$
13638 \labelwidthstring 00.00.0000
13651 \begin_inset Formula $\leq$
13656 \labelwidthstring 00.00.0000
13668 -- Greater-or-equal
13669 \begin_inset Formula $\geq$
13674 \labelwidthstring 00.00.0000
13688 \begin_inset Quotes eld
13692 \begin_inset Quotes erd
13696 \begin_inset Formula $\ll$
13699 (useful in physics)
13701 \labelwidthstring 00.00.0000
13715 \begin_inset Quotes eld
13719 \begin_inset Quotes erd
13723 \begin_inset Formula $\gg$
13729 Standard math bindings
13731 \labelwidthstring 00.00.0000
13744 \labelwidthstring 00.00.0000
13755 \labelwidthstring 00.00.0000
13766 \labelwidthstring 00.00.0000
13779 \labelwidthstring 00.00.0000
13790 \labelwidthstring 00.00.0000
13801 \labelwidthstring 00.00.0000
13814 \labelwidthstring 00.00.0000
13825 \labelwidthstring 00.00.0000
13836 \labelwidthstring 00.00.0000
13847 \labelwidthstring 00.00.0000
13860 \labelwidthstring 00.00.0000
13873 \labelwidthstring 00.00.0000
13886 \labelwidthstring 00.00.0000
13899 \labelwidthstring 00.00.0000
13912 \labelwidthstring 00.00.0000
13925 \labelwidthstring 00.00.0000
13936 \labelwidthstring 00.00.0000
13949 \labelwidthstring 00.00.0000
13960 \labelwidthstring 00.00.0000
13971 \labelwidthstring 00.00.0000
13982 \labelwidthstring 00.00.0000
13993 \labelwidthstring 00.00.0000
14006 \labelwidthstring 00.00.0000
14017 \labelwidthstring 00.00.0000
14028 \labelwidthstring 00.00.0000
14039 \labelwidthstring 00.00.0000
14048 math-delim langle rangle
14050 \labelwidthstring 00.00.0000
14059 math-delim rangle langle
14061 \labelwidthstring 00.00.0000
14072 \labelwidthstring 00.00.0000
14085 \labelwidthstring 00.00.0000
14101 \labelwidthstring 00.00.0000
14110 \labelwidthstring 00.00.0000
14119 \labelwidthstring 00.00.0000
14128 \labelwidthstring 00.00.0000
14137 \labelwidthstring 00.00.0000