* GuiLog.cpp: don't forget Package warnings.
[lyx.git] / UPGRADING
blob1bcad2326c9440586347bd01072660bd0ca290f4
1 How do I upgrade my existing LyX system to version 1.6.x?
2 ---------------------------------------------------------
4 * Upgrading from LyX 1.5.x:
6 Since several lyx functions have been renamed (see RELEASE_NOTES), 
7 old configuration files (*.ui, *.bind) may no longer work. If some
8 functions (such as Shift-right for selecting text) fail to work
9 after the upgrade from previous versions, make sure you do not
10 have any old configuration files in your LyX user directory, or
11 adapt these files to the new functions.
13 The format of preference and session files has changed. LyX 1.6.x is
14 able to read old files but will save them in the new format.
16 The format of layout files has changed but, as before,
17 layout2layout.py will convert older versions to the new format
18 automatically.
20 * Upgrading from LyX 1.4.x:
22 The biggest change in 1.5 is the switch to Unicode. Please refer to
23 the section "Document transfer" below for some things you might take
24 into account before upgrading.
26 The format of the preferences file has changed slightly. LyX 1.5.x is
27 able to read old preferences files, but it will save them in the new
28 format, so it is not possible to run LyX 1.4.x and 1.5.x with the same
29 personal configuration directory. If you are upgrading from 1.4.x and
30 do not intend to continue using 1.4.x, you should delete your existing
31 preferences file and allow LyX to create a new one.
33 The list of recently open files is now stored in a different location.
34 It will therefore be reset when upgrading from LyX 1.4.x.
36 The format of the layout files has also changed, but LyX 1.5.x uses a
37 converter layout2layout.py written in python that will convert old layout
38 files on the fly (see below, section "Document transfer").
40 * Upgrading from LyX 1.3.x:
42 The format of the external template file has changed substantially with
43 LyX 1.4.0. Automatic conversion is not available, so you need to convert
44 your external templates manually. The new format of the external template
45 configuration file is described in chapter 6.5 of the Customization Guide.
47 * Upgrading from LyX 1.2.x:
49 Since 1.3.0, you have to do the following changes:
51 One of the perennial bug bears of LyX users in the past has been that
52 they have had to run Edit->Reconfigure when starting their new version
53 of the code for the first time. Strange and wonderful things would
54 often result if they forgot to do this, so LyX 1.3.0 now runs
55 Edit->Reconfigure automatically the first time the program is run.
57 If you have your own layout files, you may need to update them a little:
59 - floats are now defined in the layout file, using the "Float"..."End"
60   construct. In most cases, adding "Input stdfloats.inc" to your layout
61   file is enough.
63 - counters are also defined in the layout files, using the
64   "Counter"..."End" construct. As for floats, adding "Input
65   stdfloats.inc" is probably a good idea.
67 * Upgrading from LyX 1.1.x:
69 - all layout files should have a "DefaultStyle" entry
71 - the "Latex" font style does not exist anymore. If you really need
72   its functionality, consider using the "PassThru" keyword instead.
74 The new layout format keywords are described in the Customization
75 manual.
77 If you have your own binding files (especially math.bind), you will
78 have to update them
80 - math-insert now takes a latex macro name as argument, so that
81   "math-insert sqrt" should now be "\math-insert \sqrt"
83 - math-greek-toggle is now gone, and should be replaced by explicit
84   bindings like
86   \bind "M-m g a"      "math-insert \alpha"
89 Build requirements
90 ------------------
92 LyX 1.6 uses the Qt 4.x toolkit (version 4.2.0 or newer). Contrary to
93 previous versions of LyX, it won't build against Qt 2.x or 3.x.
94 Furthermore, the XForms frontend was dropped.
96 LyX's graphics handling system has changed substantially. If you
97 do not have the JPEG library installed, you may need to install
98 it before you can use the graphics capabilities of LyX. If you
99 do not have the ImageMagick command-line tools installed, you
100 will need to modify the default set up of LyX, or install them,
101 in order to get previews of your document's graphics.
103 Document transfer
104 -----------------
106 * Compatibility with older documents/layouts
108 LyX 1.6.x uses an external python script, lyx2lyx, to import documents
109 written using previous versions of LyX. All versions of LyX as far back as
110 0.10 are supported, so any klyx users still holding out for an alternative
111 to xforms will finally be able to put their dinosaur to rest ;-)
113 Of course, this means that you must have python (at least version 2.3.4)
114 installed in order to use LyX 1.6.x with your old documents.
116 lyx2lyx also has the framework in place to be able to convert
117 documents to an earlier format (which requires python 2.3.4 at
118 least). However, these converters have only been written for the
119 conversion from 1.6.x to 1.5.x, 1.4.x and 1.3.x, so versions of LyX
120 older than 1.3.0 will NOT be able to read documents saved with LyX
121 1.6.x. The conversion from 1.6.x to 1.5.x-1.3.x is lossless as long as
122 no new features are used. lyx2lyx tries hard to find something
123 equivalent for new features such as boxes, but this is known to fail
124 sometimes. LyX 1.5.7 contains an updated lyx2lyx that can read
125 documents in 1.6.x format.
127 Furthermore, LyX uses a converter layout2layout.py, also written in python
128 that will convert old layout files on the fly. You can also call it manually
129 on your layout files if you want to convert them to 1.6.x format permanently.
131 * Preparing for Unicode:
133 As of version 1.5.0, LyX uses Unicode internally. This is a major change that
134 affects documents and layouts likewise. We have tried to do out best to make the
135 transition as smooth as possible for you. However, there are some caveats:
137 - User layout files must be converted to UTF-8
139   In previous versions, layout styles were allowed to use non-ASCII names
140   using the local encodings. LyX-1.5 now assumes that all layout files are
141   UTF-8 encoded. This means that non-ASCII style names are still allowed
142   but they must be valid UTF-8 strings. One way of doing the conversion
143   is to use iconv. Using bash, the script below should work:
145      #! /bin/sh
147      cd /path/to/layouts
148      for l in *
149      do
150        cp "$l" tmp.txt
151        iconv -f latin1 -t utf8 tmp.txt -o "$l"
152      done
153      rm -f tmp.txt
155 - Inset encodings and Conversion from earlier LyX versions
157   As part of the transition to unicode, lyx2lyx (the scripts used for
158   converting back and forth between different versions of the lyx
159   files) converts old .lyx files, which may use a number of different
160   encodings, to UTF-8. This conversion depends on correctly
161   identifying the language of the text. There were previously some
162   edge-cases (insets embedded in different-language text type
163   scenarios) in which the language was incorrectly identified, which
164   caused some text to appear incorrectly after having upgraded from
165   older versions. This has now been fixed. Unfortunately, however, the
166   fix cannot be applied to files which have already been converted
167   past format 249. So if you have already converted your old files
168   (using a development version or release candidate), this fix won't
169   help, unless you still have the originals lying around (and haven't
170   yet made too many changes to the newer versions ;) ).
172 Generally, it is probably wise to keep a backup of the old version of your
173 files, at least until you are sure that the upgrade went smoothly (which it
174 almost always will).
176 * Languages/encodings and insets
178 One of the bugs fixed in LyX 1.5.0 is that previously, there were certain
179 specific cases in which the LaTeX generated did not correctly reflect
180 language/encoding transitions in and around insets (footnotes, LyX notes).
181 After much deliberation, it was decided not to change older files such that
182 they will still reflect the old LaTeX output; rather, they will now correctly
183 reflect the situation as it appears in the GUI. This means, however, that if
184 you mangled the text in the GUI in the older versions, in order that it
185 generate the correct LaTeX output, the LaTeX will now generate the mangled
186 text. If this is problematic for you, please get in touch with us on the
187 developers mailing list, we do have some possible solutions for this.
189 The effects of this will be more pronounced for RTL (Hebrew, Arabic, Farsi)
190 users -- though they affect users of other languages as well.
192 * Floatflt in 1.2.x and older
194 If you were previously (in LyX 1.1.x) using the floatflt paragraph
195 option to wrap text around a figure, it was necessary to modify this
196 for LyX 1.2.0 manually, as described in the manuals. The feature has
197 been re-implemented as "Floating figure" inset in 1.3.0. Old files will
198 be converted automatically, but you may want to convert the
199 1.2.x-style ERT constructs with the native solution (see section 3.8
200 of the Extended Features manual).
202 * Babel changes since 1.2.x
204 Since LyX 1.2.0, the babel package is loaded after the user-defined
205 preamble (because some packages really need to be loaded before
206 babel). If you relied, on babel being loaded before your own
207 definitions, you can add an extra "\usepackage{babel}" statement at
208 the beginning of your preamble.
210 http://bugzilla.lyx.org/show_bug.cgi?id=315