<< | Page list | >>
About the new features in LyX 1.5
What's new in LyX 1.5?
The LyX Team
The development of LyX 1.5.0 took off in spring 2006. In July 2007, LyX 1.5.0 was finally released. Here's an overview of the major new features.
LyX 1.5's big goal was to use unicode internally and so resolve a slew of existing problems with special characters and non-alphabetic languages. LyX 1.5 is also able to output unicode (in addition to encodings current available), so that you can use LaTeX's new utf8 encoding or such brand new typesetting systems as XeTeX.
The initial work was undertaken by Lars Gullik Bjønnes in his own personal unicode branch. That effort was eventually merged into the main development tree where it was improved significantly. Notable contributions were made by Lars, Georg Baum, Abdelrazak Younes and the Denmark Cowboys. The rest of us stepped in from time to time when they got too confused ;-) The result: we achieved our big goal for 1.5.0!
Since the change to unicode touched much of the code base and some areas still need a cleanup it is very likely that some bugs related to the unicode transition still exist. Please have a look at the LyX bug tracker if you encounter a bug that seems to be related to unicode. If it's not there, then please report it to the lyx-devel mailing list.
§ Integrated CJK support
- The Unicode transition has at last enabled LyX and CJK-LyX to merge. Georg Baum and Abdelrazak Younes stepped up to the mark with CJK-LyX's maintainer, Chang Gil Han, to add the missing functionality to LyX. In addition, Masanori Iwami helped improve the CJK input methods a lot. It is now possible to typeset CJK-only documents but not yet mixed language documents (workarounds exist).
§ Language support
- LyX supports now Armenian and Farsi
- The support for Arabic has been improved: You can now choose whether to use the LaTeX-package "arabi" or "arabTeX". For details have a look at this page.
§ Multiple views of the same buffer
- Abdelrazak Younes has implemented a long-awaited feature: LyX can now display multiple views of the same buffer. I.e., you can now open a single document in multiple windows and work on different parts of it synchronously.
§ Outliner and embedded TOC
- Martin Vermeer has given LyX another long-awaited feature: a basic outliner mode, in which you can move chapters and sections around in the Table of Contents dialog (this feature has been backported to LyX 1.4.4). The new TOC dialog is now also a very handy tool when working with multi part document: Each child document now has access to the full TOC tree (including LOT and LOF). This enables to switch between master and child document using the TOC and just forget about which part we're in. Moreover Abdelrazak Younes has transferred the TOC dialog to a dock widget, embedded in the main window. These features are illustrated by the following screenshot:
§ Session management
- Bo Peng joined the development team and provided LyX with session management facilities. LyX is now able to remember window size and position and it will reopen the documents you worked on last time around. If you've selected the feature in the Preferences dialog, it'll even move the cursor to the place you were working on last! Furthermore, toolbars can (finally!) be switched on/off in View→Toolbars and moved about in the LyX window. The session management will remember their state.
§ Source code Viewer
- As a kind of "anti-preview-latex", Bo Peng also implemented a dialog that lets you view the source code of a given paragraph/selection.
§ New Font Selection Interface
- LyX's font selection abilities have been one of its weakest and most outdated components. Jürgen Spitzmüller has implemented a completely new interface that provides access to the power of LaTeX's font selection scheme.
§ Tabular extensions
- LyX's table support is certainly less powerful than that of LaTeX. Nonetheless, things slowly improve. Georg Baum, Edwin Leuven and Jürgen Spitzmüller have implemented support for the
booktabs package, which provides beautiful and elegant tables like the one below:
- Ozgur Ugras Baran and Georg Baum have implemented native LyX support for the
nomencl package. With this, you can treat your document to all sorts of nomenclatures, glossaries and fancy notations.
(By the way: Olivier Baudouin has a blog (in French) in which he provides some tips and tricks to enable the generation of perfect glossaries.)
- Bo Peng has implemented support for the
listings package, which helps you inserting all sorts of program listings, including syntax highlighting, line count etc.
§ Tabbed Widget
- Thanks to Peter Kümmel, LyX now uses tabbed widgets to display multiple documents.
§ Enhanced Math Toolbars
Edwin Leuven has enhanced the math toolbar significantly. He has added drop down menus, that allowed to integrate all of the math panel's content to the math toolbars:
Since this input method is much easier than the clumsy panel, the math panel itself has been removed and superseeded by the toolbars.
§ Frontend News
- LyX 1.5 uses the Qt4 toolkit (the Qt frontend has been completely rewritten by Abdelrazak Younes). This is especially good news for Windows users, since there's an official, GPL version of Qt4. They no longer have to rely on an unofficial port of the Unix Qt3 library to Windows.
- The good old XForms frontend went the way of the dodo. It was both hated and loved, and certainly shaped the unique look of LyX in the past. It was finally killed off, however, by the switch to unicode.
- The Qt3 frontend was brutally murdered by the Denmark Cowboys.
- The work on the GTK frontend has been transfered to a branch because its development has essentially stalled.
- Georg Baum set up a branch with some initial work on a KDE3 frontend. His aim was to allow LyX to use some of KDE's widgets (file dialog, print dialog) and settings (file viewer etc.) rather than to make LyX a fully-featured KDE application. Unfortunately, the death of the Qt3 frontend has also also stopped development of Georg's branch. He won't update it further, so the repository represents the state of development as of July 2006. It may of course become the basis for some future KDE4 support.
§ Change tracking enhancements
Michael Gerz rewrote major parts of the change tracking code and addressed numerous problems that existed in the existing 1.4.X implementation:
- It is now possible to switch change tracking mode on and off without having to accept/reject all prior changes.
- Inserted and removed paragraph breaks are indicated on screen.
- Changes can be accepted recursively, i.e., if you select an inset, all of its changes (even within nested insets) are accepted.
- Copying and pasting now takes care of change tracking, too. In particular, deleted text is not copied to the clipboard and when pasting text, its status (inserted/normal) depends on whether change tracking mode is activated.
- Changes are also shown in PDF (pdflatex) output now.
- Finally, a new "review" toolbar has been added that provides easy access to all change tracking functions.
§ Converter file cache
Georg Baum implemented a cache for converted files, such as included figures. This can speed up LyX's performance considerably when displaying documents with many included figures that need conversion to a format that can be rendered on screen.
The converter file cache can be enabled in the Preference Settings dialog, in the Converters section. You can also adjust the maximum age of a cached file (which is 6 months by default).
§Enhanced clipboard/selection handling
Clipboard has been tuned to work better with other applications. Parallel to clipboard usages, the *nix way of using middle-button to paste selected text is enhanced, and is also available under windows (but within lyx only). Selection of lyx text is now persistent in that you can paste the selected text using middle button multiple times, even after the selection has been cleared.
§ Minor user interface improvements
Apart from the described major changes, several minor improvements of the user interface have been made, such as
- Syntax highlighting for the user preamble and the LaTeX log file
- Better parsing of BibTeX databases (in the citation dialog)
- Support optional argument for environments
§ Under the hood
As usual, one big task has been the ongoing code cleanup of the LyX core. Performing this cleanup makes the code more understandable and easier to maintain. It also leads inevitably to a more robust application. Nonetheless, it's an unfortunate fact of life that ugly code is sometimes faster than pretty code. We're well aware that LyX 1.4 is slower than LyX 1.3. One important goal of this 1.5 development series has been to bring this speed back.
As any major release with lots of new features, LyX 1.5.0 might have some problems, even if we did our best to avoid that. Have a look at the Release Notes page for some known issues. Especially people who want to convert files from LyX 1.5 to earlier versions should read that file closely, since the reversion from the new and much richer unicode files to older encodings is a non-trivial task.