Search:   Help



LyX documentation


Shared groups


LyX /

New in LyX 2.2

Categories: Development, LyX_2_2
<< | Page list | >>

About the new features in LyX 2.2.

What is new in LyX 2.2?

The LyX Team

May 2016

§1.  HiDPI display support

LyX has been prepared to look good on HiDPI displays (such as Retina). This includes display of text, icons and graphics. Implemented by Stephan Witt, Enrico Forestieri and others. HiDPI support requires LyX to be built with Qt5.5 (Qt 5.6 under Windows).

§2.  Qt5 support

LyX can be built with Qt5 (Qt4 is still supported and an official toolkit). Note that, due to a Qt5 bug that affects keyboard input, we strongly suggest to build against Qt 5.5. (Qt 5.6 under Linux)

§3.  New text display algorithm

The code that displays LyX document text on screen has been partly rewritten. Metrics computation and painting are now done at line level and they share a lot more code. This leads to several improvements:

  • Text uses proper kerning and ligatures, which is only of aesthetic value for western languages, but very important for some languages like Hebrew, Arabic or Thai. The code that handled explicitly Hebrew and Arabic has been removed, and LyX now relies on Qt for string rendering.
  • Line breaking is done correctly in languages like Chinese where spaces are not in use.
  • Rendering speed is much improved on all platforms by the new code, which draws longer strings of text at once. This is especially true for Mac OS X, which suffered big performance issues because text had to be drawn character by character. The same issue existed for right-to-left text and is now fixed.

This work also paves the way for other improvements in text rendering, since the code base is cleaner.

§4.  Horizontal scrolling for large insets

(:statusicon documented:)This implements horizontal scrolling of rows to allow editing insets (math, tabular...) that are larger than the screen. The scrolling happens as the cursor moves, in order to make sure that the cursor is always visible.

This feature is the result of the work of Hashini Senaratne as part of Google Summer of Code 2013. The code has been cleaned-up for inclusion and remaining bugs have been fixed.

§5.  New separators and improved control of paragraph breaks

(:statusicon documented:) Splitting of consecutive environments has been reworked and enhanced by Enrico Forestieri. The Separator environment has been removed and replaced by a separator inset. This new separator is introduced with Edit→Start new environment (shortcut Alt+P Enter) or by pressing Enter in an empty Standard paragraph that immediately follows a non-standard one (e.g. enumerate environments).

In addition, LyX no longer outputs superfluous blank lines in the LaTeX output, which could be understood by LaTeX as paragraph breaks and cause undesirable vertical space in some situations. In replacement, there are now two separator insets: plain separators (splits consecutive environments) and parbreak separators (does the same and introduce a blank line in the LaTeX output). The plain separator (displayed as a horizontal line) is introduced as described above. The parbreak separator is introduced by turning a plain separator into a parbreak from the context menu.

Note: LyX's policy when converting documents across versions is to preserve the output. For this reason, the conversion into 2.2 documents introduces inline parbreak separators (latexpar) to simulate the behavior of LyX 2.1 in terms of blank lines. Users are simply made aware that previous LyX versions were silently introducing par breaks that now are explicitly indicated. These separators may be removed where desired. (:statusicon undocumented:) Users removing all latexpar separators from a document should expect small differences in the vertical spacing of nested lists and beamer environments, usually for the best. It is possible to remove all latexpar separators with the command: inset-forall Separator:latexpar char-delete-forward.

§6.  Improved text color support

(:statusicon documented:) LyX supports now also the following text colors: brown, darkgray, gray, lightgray, lime, orange, olive, pink, purple, teal, violet

Implemented by Uwe Stöhr.

§7.  Improved box dialog

  • (:statusicon documented:) It is now possible to specify in the box dialog the line thickness, the box separation, the shadow size, the frame color and the background color. (Support for the LaTeX commands \fboxrule, \fboxsep, \shadowsize, \fcolorbox and \colorbox).
                              The new box dialog with the result in LyX.
 The resulting PDF output.

§8.  Improvements to tables

  • (:statusicon documented:) The table context menu is now much cleaner:
    • The table properties are grouped in submenus.
    • It is possible to access the table settings dialog directly from the main menu.
    • One can toggle the formal table style and multi-page feature via the menu.
  • The insert table dialog has now also a visual table size selection. It allows to specify the table size via drag and drop:
  • Tabular and math table commands are more consistent. Notably they are no longer disabled when they should be enabled.

§9.  Reworked instant preview

(:statusicon documented:) The appearance and performance of instant preview has been much improved. Also, some long-standing issues with previews are fixed. Done by Scott Kostyshak and Enrico Forestieri.

§10.  Enhanced source panel

The source panel is better, faster. Long-standing issues are solved. Generation is done asynchronously so it no longer slows down the editing when auto-update is on. The text highlighting is now more precise and now works inside arbitrary nestings of:

  • insets,
  • tables,
  • math…

It also uses Qt's highlighting feature. The precision of forward-search is also increased accordingly. Do not hesitate to report any remaining bugs about the source view panel.

 The highlighted table row is also highlighted in the source panel.

§11.  Improved outliner and navigation menu

  • There is now a list of math macros. Using the outline pane, one can now navigate the macro definitions, order them by order of appearance or alphabetically, and — at last! — find them using the filter.
  • Lists of figures, tables and listings are now easier to navigate; in particular the float/sub-float hierarchy is correctly represented.

This comes with global improvements to the navigation menu and the outliner, which are now more convenient and consistent, including:

  • In all lists, entries that are disabled (i.e. either in a note or in an inactive branch) are now marked with the symbol ✖.
  • The navigation menus are no longer removed if they are too long; one can choose between scrolling the menu and opening the outliner.

§12.  Enhanced language support

  • (:statusicon documented:) Polyglossia is now also used with LuaTeX if "automatic" is set as language package option.

§13.  New supported languages

  • Georgian, implemented by Uwe Stöhr
  • Swiss variant of German (old and new spelling, via Babel), implemented by Jürgen Spitzmüller
  • Austrian variant of German (via Polyglossia, complementing already existing support via Babel), implemented by Jürgen Spitzmüller
  • Ancient variant of Greek (via Babel, complementing already existing support via Polyglossia), implemented by Jürgen Spitzmüller

§14.  New supported LaTeX commands

  • (:statusicon documented:) Further support for the LaTeX package mathtools. This allows to use the math commands \xhookleftarrow, \xRightarrow, \xrightharpoondown, \xrightharpoonup, \xrightleftharpoons, \xleftarrow, \xLeftarrow, \xleftharpoondown, \xleftharpoonup, \xleftrightarrow, \xLeftrightarrow, \xleftrightharpoons and \xmapsto. Implemented by Uwe Stöhr.
  • (:statusicon documented:) Support for the basic LaTeX environment verbatim* via LyX's standard environment selection menu. Implemented by Uwe Stöhr.

§15.  Layout enhancements

  • (:statusicon documented:) "Short Titles" are now inserted with a copy of the title as initial content. Implemented by Jürgen Spitzmüller.
  • (:statusicon documented:) It is now possible to treat individual characters verbatim by layouts and styles. Implemented by Jürgen Spitzmüller.
  • (:statusicon documented:) The setting options of paragraph indentation can now be defined per style. Implemented by Jürgen Spitzmüller.
  • (:statusicon documented:) Non-PassThru styles and insets can now output paragraph breaks as newline. Implemented by Jürgen Spitzmüller.
  • (:statusicon documented:) New layout for articles in Journals of International Union of Crystallography (ICUr). For more info see this Wiki page. Implemented by Uwe Stöhr.
  • (:statusicon documented:) Improved layout for articles in the Journal of Statistical Software (JSS). For more info see this Wiki page. Implemented by Uwe Stöhr.
  • (:statusicon documented:) The layout for the modernCV document class supports now to set a style option and to choose from different icon sets. For an example see the file modernCV.lyx in LyX's examples folder. Implemented by Uwe Stöhr

§16.  Module enhancements

  • (:statusicon documented:) Jürgen Spitzmüller added native support for structure trees (via the forest package) to the Linguistics module.
  • (:statusicon documented:) Jürgen Spitzmüller has rewritten the Glosse insets of the Linguistics module. Now normal text can be entered, and the encoding limitations are gone.
  • (:statusicon documented:) Support for the LaTeX commands \reflectbox, \resizebox, \rotatebox and \scalebox via the module GraphicBoxes. For a description see section Rotated and Scaled Boxes of the EmbeddedObjects manual. Implemented by Jürgen Spitzmüller and Uwe Stöhr.
  • (:statusicon documented:) Extended Fancy Colored Boxes module: There are now 5 different box types you can customize for your needs. The module also supports now subtitles for boxes and to arrange boxes in a raster. For a detailed description see the specific manual Colored Boxes in LyX's Help menu. Contributed by Uwe Stöhr.
  • (:statusicon documented:) New modules for TODO and FIXME notes have been added by Jürgen Spitzmüller.
  • (:statusicon documented:) Support for chemical hazard and precautionary statements via the module Hazard and Precautionary Statements. For a detailed description see the specific manual Hazard and Precautionary Statements in LyX's Help menu. Added by Uwe Stöhr.
  • (:statusicon documented:) A new module Paragraph Lists (paralist) has been added by Georg Baum.
  • (:statusicon documented:) A new module Variable-width Minipages has been added, based on the LaTeX package varwidth. It provides a variable-width minipage whose resulting width is the actual width of its contents.
  • A new module Change bars has been added: with change tracking and "Show Changes in Output" enabled, this module will add vertical bars in the margin of the output file where changes occur. It requires the LaTeX changebar package and works only with DVI, PDF (pdflatex), PDF (ps2pdf) and Postscript output. Contributed by Paul A. Rubin.
  • All theorems modules provide now the environments Solution and Solution*. Implemented by Uwe Stöhr.
  • The module AMS-Extended theorems now also supports the environments Question and Question*. Implemented by Jürgen Spitzmüller.

§17.  New preferences settings

  • (:statusicon documented:) Jürgen Spitzmüller added a new option to disable pasting by pressing the middle mouse button.

§18.  New converters

  • (:statusicon documented:) Microsoft's .docx format (known as Office Open XML) is now recognized by LyX for conversions. The conversion is done by the external program Pandoc (if you have this installed). LyX is therefore not responsible for the quality of the conversion. Implemented by Uwe Stöhr.
  • LyX supports to use Pandoc to convert OpenDocument files.

§19.  Miscellaneous

  • It is now possible to view the output even if a LaTeX error occurred. Use at your own risk. Implemented by Scott Kostyshak.
  • LyX now reports BibTeX and biber errors in the error dialog. Implemented by Jürgen Spitzmüller.
  • (:statusicon documented:) It is now possible to directly open the temporary compilation directory with the button "Open Containing Directory" in the LaTeX log.
  • LyX indicates now if a document is read-only by adding a lock symbol to its tab:
  • (:statusicon documented:) It is now possible to toggle the read-only state of a document via the menu Document→Disable Editing.
  • Math commands now handle the current selection more consistently, in particular when the selection includes text.
  • Ctrl+M now inserts \text in math mode instead of \mbox, and Ctrl+Enter introduces by default an AMS align environment instead of an eqnarray.

§20.  Under the hood

Collaborating on LyX documents using version control systems has been improved:

  • LyX files using change tracking are now more robust to merges.
  • A document setting \save_transient_properties has been added, that disables saving to the file some properties local to the user that can cause unnecessary merge conflicts between different versions of the file. The interface to access this feature will be added in a later minor release.

§21.  Backported

Some new features have been backported to the 2.1.x stable branch during the 2.2.0 cycle, you can find the list here.

22.  Categories

Edit - History - Print - Recent Changes - All Recent Changes - Search
Page last modified on 2024-03-18 21:48 UTC