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