]> git.lyx.org Git - features.git/blob - src/tex2lyx/tex2lyx.1in
Overhaul of the tex2lyx manpage
[features.git] / src / tex2lyx / tex2lyx.1in
1 .\" Man page for tex2lyx.
2 .\" Use the following command to view man page:
3 .\"
4 .\"  tbl tex2lyx.1 | nroff -man | less
5 .\"
6 .TH TEX2LYX 1 "@LYX_DATE@" "Version @VERSION@" "tex2lyx @VERSION@"
7 .SH NAME
8 tex2lyx@version_suffix@ \- translate well-behaved LaTeX into LyX
9 .\"
10 .\" setup
11 .de Cr
12 .ie n (c)
13 .el \(co
14 ..
15 .SH SYNOPSIS
16 The simplest way to use \fBtex2lyx\fR is via the File->Import->LaTeX
17 (plain) menu item in LyX. That runs \fBtex2lyx\fR on the given file
18 and loads the resulting file into LyX. You should try that first, and
19 call it from the command line only if you need to use more complicated
20 options.
21 .PP
22 \fBtex2lyx\fR [ \fB\-userdir\fR \fIuserdir\fR ] [ \fB\-systemdir\fR \fIsystemdir\fR ]
23 [\fB\-n\fR] [\ \fB\-r\fR\ \fIrenv1\fR[,\fIrenv2\fR...]] [\ \fB\-s\fR\ \fIsfile1\fR[,\fIsfile2\fR...]]
24 \fIinputfile\fR  [ \fB\-c\fR \fItextclass\fR ] 
25 .PP
26 \fBtex2lyx\fR [ \fB\-userdir\fR \fIuserdir\fR ] [ \fB\-systemdir\fR \fIsystemdir\fR ]
27 [\ \fB\-r\fR\ \fIrenv1\fR[,\fIrenv2\fR...]] [\ \fB\-s\fR\ \fIsfile1\fR[,\fIsfile2\fR...]]
28 \fIinputfiles\fR \fB\-p\fR \fB\-c\fR \fItextclass\fR
29 .PP
30 \fBtex2lyx\fR \fB\-help\fR
31 .SH "OPTIONS"
32 .TP
33 .BI \-c
34 Class. By default, when \fBtex2lyx\fR sees a \f(CW\edocumentclass{foo}\fR command, it
35 creates a file of textclass \*(L"foo\*(R" and reads the LyX layout file for that class
36 (something like /usr/local/share/lyx/layouts/foo.layout \s-1OR\s0
37 \fB\s-1HOME\s0\fR/.lyx/layouts/foo.layout).  Use \fB\-c\fR to declare a different textclass
38 (and read a different layout file).
39 .TP
40 .BI \-f
41 Force. \fBtex2lyx\fR will not run if the .lyx file it would generate already exists.
42 Use the \fB\-f\fR option (carefully) to clobber any existing files.
43 .TP
44 .BI \-help
45 Help. Print out usage information and quit.
46 .TP
47 .BI \-n
48 Noweb. Translate a noweb (aka literate programming) file. This should be
49 (almost?) equivalent to running \*(L"noweb2lyx foo.tex foo.lyx\*(R". This option
50 requires the \fB\-c\fR option.
51 .TP
52 .BI \-p
53 Partial file. The input files are LaTeX fragments, with no preamble matter or
54 \f(CW\ebegin{document}\fR commands. This option requires the \fB\-c\fR option, since there
55 are no \f(CW\edocumentclass\fR commands in the files \fBtex2lyx\fR is translating. When
56 using this option, you can translate more than one file, as long as all files
57 are the same class. The LyX file created by \fBtex2lyx\fR can be included in an
58 existing LyX file using the \*(L"Include LyX File\*(R" command from
59 LyX's Insert menu. (\fBNOTE\fR: this feature of the older \fBreLyX\fR script has
60 not yet been implemented in \fBtex2lyx\fR).
61 .TP
62 .BI \-r
63 Regular environments (see the section on \fISyntax Files\fR).  If you give more than one
64 environment, separate them with commas (not spaces). You'll probably need to
65 quote the environment list, especially if it has asterisk environments (foo*)
66 in it. If you use this command often, considering creating a personal syntax
67 file. (\fBNOTE\fR: this feature of the older \fBreLyX\fR script has
68 not yet been implemented in \fBtex2lyx\fR).
69 .TP
70 .BI \-s
71 Syntax files. Input (one or more quoted, comma-separated) syntax files to read
72 in addition to the default. (see the section on \fISyntax Files\fR for details).
73 .TP
74 .BI \-sysdir
75 Specify a system directory. Normally, you shouldn't need this. Your LyX system directory is
76 chosen. Cf. the section \f(CWFILES\fR for details.
77 .TP
78 .BI \-userdir
79 Specify a user directory. Normally, you shouldn't need this. Your LyX user directory is
80 chosen. Cf. the section \f(CWFILES\fR for details.
81 .SH "DESCRIPTION"
82 .SS "Introduction"
83 \fBtex2lyx\fR will create a LyX file \fIdir/foo.lyx\fR from the LaTeX file
84 \fIdir/foo.tex\fR.
85 .PP
86 Suffixes .tex, .ltx and .latex are supported. If \fIinputfile\fR
87 does not exist and does not have one of these suffixes, \fBtex2lyx\fR will try to
88 translate \fIinputfile.tex\fR. (This is similar to the behavior of LaTeX.)
89 .PP
90 The purpose of \fBtex2lyx\fR is to translate \fIwell-behaved\fR LaTeX2e into LyX. If
91 your LaTeX file doesn't compile---or if you do weird things, like redefining
92 standard LaTeX commands---it may choke. LaTeX209 will often be translated
93 correctly, but it's not guaranteed.
94 .PP
95 \fBtex2lyx\fR lacks a few features. However, its main goals are:
96 .IP "\(bu" 4
97 Get through a well-behaved LaTeX2e file without crashing
98 .IP "\(bu" 4
99 Translate a lot of that file.
100 .IP "\(bu" 4
101 Localize the parts that can't be translated and copy them in TeX mode
102 .PP
103 It achieves these main goals pretty well on most files.
104 .SS "Usage"
105 Here's a more lengthy description of what you should do to translate a LaTeX
106 document into LyX.
107 .IP "\(bu" 4
108 Run \fBtex2lyx\fR.
109 .IP ""
110 \fBtex2lyx\fR will inform you of its progress and give any warnings to stderr, so if
111 you don't want any output at all, try (in csh) \*(L'tex2lyx foo.tex >& /dev/null\*(R'.
112 You should \s-1NOT\s0 redirect standard output to \fIfoo.lyx\fR.
113 .IP "\(bu" 4
114 Run LyX (version 1.4 or later) on the resulting .lyx file.
115 .IP ""
116 In theory, most of the file will have been translated, and anything that's
117 untranslatable will be transferred to TeX code (ERT in LyX-speak). In theory, LyX will be
118 able to read in the file, and to create printed documents from it, because all
119 that untranslated ERT stuff will be passed directly back to LaTeX, which LyX
120 uses as a backend. Unfortunately, reality doesn't always reflect theory. If
121 \fBtex2lyx\fR crashes, or LyX cannot read the generated LyX file, see the \f(CWBUGS\fR section below.
122 .IP "\(bu" 4
123 Transform things have been inserted as TeX code manually to LyX features, if possible.
124 .IP ""
125 As mentioned above, you should be able to print out the LyX file even without
126 doing this. However, changing a command in TeX code to the corresponding LyX
127 object will allow you to take advantage of LyX's \s-1WYSIWYM\s0 editing.
128 .IP ""
129 \fBtex2lyx\fR is not guaranteed to create a LyX file which generates exactly the same
130 output as the LaTeX file, although its goal is to achieve this. \fBtex2lyx\fR will generally err
131 on the side of translating less to ensure that the resulting output files are accurate,
132 even though this leads to more TeX code and less \s-1WYSIWYM\s0.
133 .IP "\(bu" 4
134 \s-1PROOFREAD\s0 \s-1THE\s0 \s-1DOCUMENT\s0!!
135 .IP ""
136 I'm sure you were planning on doing this anyway, but it's particularly
137 important after translating a LaTeX document. \fBtex2lyx\fR is better
138 at \*(L"macro-translating\*(R" (translating the whole document) than
139 \*(L"micro-translating\*(R" (translating every little detail). For example, you may see
140 extra spaces or deleted spaces. Space handling has improved, but it's
141 not perfect.
142 .SS "What tex2lyx Can Handle"
143 \fBtex2lyx\fR understands many LaTeX commands. It will translate:
144 .IP "\(bu" 4
145 regular text, including mini-commands like ~, \*(L'\*(R', \f(CW\e@\fR, \f(CW\eTeX\fR, as well as
146 accented characters like \f(CW\e'{a}\fR, and the special cases ?` and !`
147 .IP "\(bu" 4
148 title commands like \f(CW\eauthor\fR, \f(CW\edate\fR, \f(CW\etitle\fR, \f(CW\ethanks\fR and the
149 abstract environment
150 .IP "\(bu" 4
151 heading commands like \f(CW\esection\fR including starred commands (\f(CW\esection*\fR)
152 .IP "\(bu" 4
153 Environments: quote, quotation, and verse; center, flushright, and flushleft
154 .IP "\(bu" 4
155 itemize, enumerate, and description environments, and their \f(CW\eitem\fR commands.
156 Also, well-behaved nested lists
157 .IP "\(bu" 4
158 cross-referencing commands: \f(CW\eref\fR, \f(CW\epageref\fR, \f(CW\elabel\fR, and \f(CW\ecite\fR
159 .IP "\(bu" 4
160 \f(CW\efootnote\fR and \f(CW\emargin\fR
161 .IP "\(bu" 4
162 font-changing commands including \f(CW\eem\fR, \f(CW\eemph\fR, \f(CW\etextit\fR, and
163 corresponding commands to change family, size, series, and shape
164 .IP "\(bu " 4
165 \f(CW\einput{foo}\fR (or \f(CW\einput{foo.blah}\fR) and \f(CW\einclude{foo}\fR. Plain TeX
166 \f(CW\einput\fR command \*(L"\f(CW\einput foo.tex\fR\*(R" is also supported.
167 .IP "\(bu" 4
168 tabular environment, and commands that go inside it like \f(CW\ehline\fR, \f(CW\ecline\fR,
169 and \f(CW\emulticolumn\fR (but see below)
170 .IP "\(bu" 4
171 float environments table and table*, as well as \f(CW\ecaption\fR commands within
172 them
173 .IP "\(bu" 4
174 float environments figure and figure*, as well as graphics inclusion commands
175 \eepsf, \eepsffile, \eepsfbox, \eepsfxsize, \eepsfig, \epsfig, and \eincludegraphics.
176 Both the graphics and graphicx forms of \eincludegraphics are supported.
177 .IP "\(bu" 4
178 thebibliography environment and \f(CW\ebibitem\fR command, as well as BibTeX's
179 \f(CW\ebibliography\fR and \f(CW\ebibliographystyle\fR commands
180 .IP "\(bu" 4
181 miscellaneous commands: \f(CW\ehfill\fR, \f(CW\e\fR\f(CW\e\fR, \f(CW\enoindent\fR, \f(CW\eldots\fR...
182 .IP "\(bu" 4
183 documentclass-specific environments (and some commands) which can be
184 translated to LyX layouts
185 .IP "\(bu" 4
186 arguments to certain untranslatable commands (e.g. \f(CW\embox\fR)
187 .PP
188 Some of this support may not be 100% yet. See below for details
189 .PP
190 \fBtex2lyx\fR copies math (almost) verbatim from your LaTeX file. Luckily, LyX reads
191 in LaTeX math, so (almost) any math which is supported by LyX should work just
192 fine.
193 .PP
194 \fBtex2lyx\fR will copy any preamble commands (i.e., anything before
195 \f(CW\ebegin{document}\fR) verbatim. Fancy stuff you've got in your preamble
196 should thus be conserved in printed documents, although it will not of
197 course show up in the LyX window. Check Document->Settings->LaTeX Preamble to see the result.
198 .SS "What tex2lyx Can't Handle --- But it's \s-1OK\s0"
199 .IP "\(bu" 4
200 tabular* tables
201 .IP "\(bu" 4
202 some spacing commands (\f(CW\ehspace\fR, \f(CW\epagebreak\fR and \f(CW\elinebreak\fR)
203 .IP "\(bu" 4
204 \f(CW\ecentering\fR, \f(CW\eraggedleft\fR, \f(CW\eraggedright\fR
205 .IP "\(bu" 4
206 \f(CW\everb\fR and verbatim environment. \fBtex2lyx\fR is careful to copy \fIexactly\fR in
207 this case, including comments and whitespace.
208 .IP "\(bu" 4
209 unknown (e.g., user-defined) environments and commands
210 .PP
211 \fBtex2lyx\fR copies unknown commands, along with their arguments, verbatim into the
212 LyX file. Also, if it sees a \f(CW\ebegin{foo}\fR where it doesn't recognize the
213 \*(L"foo\*(R" environment, it will copy verbatim until it sees \f(CW\eend{foo}\fR (unless
214 you use the \fB\-r\fR option). Most of these unknown commands
215 won't cause \fBtex2lyx\fR to break; they'll merely require you to do some editing
216 once you've loaded the file up in LyX.  That should be less painful than
217 editing either the .tex or the .lyx file using a text editor.
218 .SS "What tex2lyx Handles Badly --- aka \s-1BUGS\s0"
219 Since \fBtex2lyx\fR is relatively new, it's got a number of problems.  As it
220 matures, these bugs will be squished.
221 .IP "\(bu" 4
222 \*(L"Exact\*(R" copying of unknown environments and commands isn't quite exact.
223 This will yield ugly LyX, but in almost all cases the output will be the same. 
224 However, most parts of the file will be copied perfectly, including whitespace 
225 and comments. This includes: the LaTeX preamble, verbatim environments as well as
226 \f(CW\everb\fR commands, and skip blocks.
227 .IP "\(bu" 4
228 \fBtex2lyx\fR translates only a subset of the document class options to native features.
229 Other options are placed in the \*(L"options\*(R" field in the Document->Settings popup.
230 .IP ""
231 More importantly, \fBtex2lyx\fR doesn't translate \f(CW\enewcommands\fR, unknown
232 \f(CW\eusepackage\fR commands and other unknown code in the preamble. It
233 simply copies that into the LaTeX preamble. If you use special commands, e.g. to
234 specify the text layout in a way that that is not understood by LyX, tex2lyx won't
235 recognize it. Note that these settings will be overwritten if you modify the text 
236 layout in LyX's document settings. Better remove these special options from the LaTeX 
237 preamble (Document->Settings->LaTeX Preamble) and use the corresponding LyX document 
238 settings, if possible.
239 .IP "\(bu" 4
240 The foil document class has a couple of bugs. \fBtex2lyx\fR may do weird things with optional
241 arguments to \f(CW\efoilhead\fR commands. Also, it may handle \f(CW\ebegin{dinglist}\fR
242 incorrectly (although the stuff in the environment should translate normally).
243 .PP
244 All known bugs of \fBtex2lyx\fR can be found on \fI\s-1http://bugzilla.lyx.org\s0\fR.
245 .PP
246 \fBtex2lyx\fR is rather robust. As mentioned above, it may not translate
247 your file perfectly, but the result should be usable and it shouldn't crash. If you encounter
248 problems---and the problem is not one of those mentioned above or on 
249 \fI\s-1http://bugzilla.lyx.org\s0\fR---please report the issue as described in the section 
250 on \fIBug Reports\fR.
251 .SS "What LyX Can't Handle"
252 LyX itself is missing a couple of features, such that even if \fBtex2lyx\fR translates
253 things perfectly, LyX may still have trouble reading it. If you really need
254 these features, you can export your final document as LaTeX, and put them
255 back in. See \fI\s-1BUGS\s0\fR for more details on these bugs.
256 .IP "\(bu" 4
257 For a number of commands (such as \f(CW\e\e\fR), LyX does not support the optional argument.
258 \fBtex2lyx\fR will automatically discard the optional arguments with a warning to
259 stdout.  LyX also ignores the width argument for the thebibliography
260 environment.
261 .IP "\(bu" 4
262 LyX support for tables isn't perfect. For complicated tables, use a \*(L"skip\*(R"
263 block, so that they will be copied in TeX mode.
264 .IP "\(bu" 4
265 LyX allows figures to have sizes in the units known to TeX, such as in, cm, etc. It also 
266 translates percentages of \etextwidth, \etextheight, \ecolumnwidth, but no other lengths 
267 (e.g. if you wanted to scale a figure to size \etopmargin for some reason). \fBtex2lyx\fR 
268 will copy figures with untranslatable sizes in TeX mode. Again, you might be able to fix 
269 that within LyX.
270 .SH "EXAMPLES"
271 tex2lyx \fB\-f\fR \fB\-r\fR \*(L"myenv\*(R" foo.tex
272 .PP
273 The above will create a file foo.lyx from foo.tex, overwriting if
274 necessary.  When it finds a \f(CW\ebegin{myenv} ... \eend{myenv}\fR block, it will
275 translate the stuff within the block, but copy the \f(CW\ebegin\fR and \f(CW\eend\fR
276 commands in TeX mode.
277 .PP
278 tex2lyx \fB\-n\fR \fB\-c\fR \*(L"literate-article\*(R" foo.tex
279 .PP
280 The above will change a noweb document into a LyX literate-article
281 document. A user would do this if the noweb document had documentclass
282 article.
283 .SH "NOTES"
284 .SS "Bug Reports"
285 Bugs should be reported to the LyX bug tracker at http://bugzilla.lyx.org. Additionally,
286 you can post a message to the LyX developers\*(R' mailing list. Its address is currently
287 lyx-devel@lists.lyx.org. If your message bounces, you can check the LyX home page, 
288 http://www.lyx.org/. If you are running \fBtex2lyx\fR on a huge file, please do not send all of the output in 
289 your bug report. Just include the last ten or twenty lines of output, along with 
290 the piece of the LaTeX file it crashed on.  Or, even better, attach a small but 
291 complete file which causes the same problem as your original file.
292 .SS "Layout Files"
293 \fBtex2lyx\fR reads a LyX layout file to know how to handle LaTeX environments and
294 commands which get translated to LyX layouts. This file will include all
295 \*(L"normal\*(R" non-math environments (i.e., including quote and itemize, but not
296 tabular, minipage, and some other fancy environments), and commands like
297 \f(CW\esection\fR and \f(CW\etitle\fR. If you want to tex2lyx a class that doesn't have an
298 existing layout file, then you'll have to create a layout file. But you have
299 to do this anyway, in order to LyX the file, since LyX depends on layout files
300 to know how to display and process its files. Check the LyX documentation for
301 help with this task (which can be hard or easy, depending on the class you
302 want to create a layout file for.) If your class is quite similar to a class
303 that has a layout file, then consider using the \fB\-c\fR option.
304 .SS "Syntax Files"
305 \fBtex2lyx\fR always reads at least one syntax file, called the default syntax file.
306 \fBtex2lyx\fR will read your personal syntax file if it exists; otherwise it will
307 read the system-wide file. \fBtex2lyx\fR will read additional syntax files if you
308 specify them with the \fB\-s\fR option. (These extra files should have the same
309 format as the default file, but will tend to be shorter, since they only have
310 to specify extra commands not found in the default file.) A syntax file tells
311 \fBtex2lyx\fR a few things.
312 .PP
313 First, it describes the syntax of each command, that is, how many required
314 arguments and how many optional arguments the command takes. Knowing this
315 makes it easier for \fBtex2lyx\fR to copy (in TeX mode) commands that it doesn't
316 know how to translate. The syntax file simply has a command, followed by
317 braces or brackets describing its arguments in the correct order. For example,
318 a syntax file entry \f(CW\ebibitem[]{}\fR means that the \f(CW\ebibitem\fR command takes
319 an optional argument followed by a required one, while the entry \f(CW\ebf\fR
320 means that the \f(CW\ebf\fR command takes no arguments at all.  When \fBtex2lyx\fR
321 encounters a token that it doesn't know how to translate into LyX, it will
322 copy the token---along with the correct number of arguments---exactly.  If the
323 token is not in the syntax file, then \fBtex2lyx\fR just copies as many arguments
324 as it finds.  This means that it may copy too much. But since the user can
325 specify additional syntax files, that shouldn't happen often.
326 .PP
327 Some commands that cannot be translated to LyX, like \f(CW\embox\fR, have as one of
328 their arguments regular LaTeX text. If the string \*(L"translate\*(R" is put into an
329 argument of an (untranslatable) command in the syntax file, then \fBtex2lyx\fR will
330 translate that argument instead of copying it verbatim. So, for example, the
331 default syntax file has \f(CW\eraisebox{}[][]{translate}\fR. This means that the
332 \f(CW\eraisebox\fR command and the first argument (and optional arguments if they
333 exist) are copied in TeX mode, but the last argument (which may contain math,
334 complicated LaTeX, other untranslatable commands, etc.) will be translated
335 into LyX. You can't use \*(L"translate\*(R" on optional arguments.
336 .PP
337 User-defined syntax files are allowed to define new commands and
338 their syntax, or override the number of arguments for a command given in the
339 default syntax file. (E.g., if you're using a style that gives an extra
340 argument to some command...) However, this will only be useful for commands
341 copied in TeX mode. Commands which are actually translated by \fBtex2lyx\fR (like
342 \f(CW\eitem\fR) have their argument syntax hard-coded. The hard-coded commands are
343 identified in the default syntax file.
344 .PP
345 Second, the syntax file describes any \*(L"regular environments\*(R".  Usually, an
346 entire unknown environment will be copied in TeX mode. If you define a regular
347 environment \*(L"foo\*(R", though, then only the \f(CW\ebegin{foo}\fR and \f(CW\eend{foo}\fR
348 commands will be copied in TeX mode; the text within the environment will be
349 treated (i.e., translated) by \fBtex2lyx\fR as regular LaTeX, rather than being
350 copied into TeX mode. Don't try to declare \*(L"tabbing\*(R" and \*(L"picture\*(R" as regular
351 environments, as the text within those environments will confuse \fBtex2lyx\fR; use
352 this capability for new environments you create that have plain text or math
353 or simple commands in them. You also can't declare unknown math environments
354 (like equation*) as regular environments, either, since the LyX math editor
355 won't understand them. The names of regular environments appear,
356 whitespace-separated, between \f(CW\ebegin{tex2lyxre}\fR and \f(CW\eend{tex2lyxre}\fR
357 statements in the syntax file. (If you have a regular environment which you
358 won't use very often, you can use the \fB\-r\fR option rather than writing a
359 syntax file.)
360 .SH "WARNINGS"
361 Always keep a copy of your original LaTeX files either under a different
362 name or in a different directory. There are a couple ways in which using LyX
363 could lead to overwriting the original LaTeX file.
364 .PP
365 If you import foo.tex to create foo.lyx, then edit foo.lyx and want to
366 re-export it, note that it will overwrite the original foo.tex. (LyX will ask
367 you if you want to overwrite it.)
368 .SH ENVIRONMENT
369 .TP 6
370 .B @LYX_DIR_VER@
371 can be used to specify which system directory to use.
372 .PP
373 The system directory is determined by searching for the file
374 "chkconfig.ltx". Directories are searched in this order:
375 .br
376 1) \-sysdir command line parameter
377 .br
378 2) @LYX_DIR_VER@ environment variable
379 .br
380 3) Maybe <path of binary>/TOP_SRCDIR/lib
381 .br
382 4) <path of binary>/../share/<name of binary>/
383 .br
384 5) hardcoded lyx_dir (at build time: @real_pkgdatadir@)
385 .TP
386 .B @LYX_USERDIR_VER@
387 can be used to specify which user directory to use.
388 .PP
389 The user directory is, in order of precedence:
390 .br
391 1) \-userdir command line parameter
392 .br
393 2) @LYX_USERDIR_VER@ environment variable
394 .br
395 3) $HOME/.<name of binary> if no explicit setting is made
396 .SH "FILES"
397 .PP
398 If \fI\s-1LIBDIR\s0\fR is the system-wide LyX directory and
399 \fI\s-1MY_LYXDIR\s0\fR 
400 is your personal LyX directory, then the following files are read by tex2lyx:
401 .IP "\fI\s-1MY_LYXDIR\s0\fR/layouts/*.layout" 4
402 User's personal layout files for document classes
403 .IP "\fI\s-1MY_LYXDIR\s0\fR/syntax.default" 4
404 User's personal syntax file
405 .IP "\fI\s-1LIBDIR\s0\fR/layouts/*.layout" 4
406 System-wide layout files for document classes
407 .IP "\fI\s-1LIBDIR\s0\fR/lib/syntax.default" 4
408 System-wide LaTeX syntax file
409 .SH "SEE ALSO"
410 \fIlyx@version_suffix@\fR\|(1), \fIlatex\fR\|(1)
411 .SH "AUTHORS"
412 tex2lyx is Copyright (c) 2003ff. by the LyX Team (lyx-devel@lists.lyx.org)