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