!Important Changes in LyX 2.3.0 !!Interface changes * LyX now has "inverted" branch insets, which output their contents just in case a given branch is not "activated". This makes inclusion of alternate material in different versions easier. * When inserting a command or symbol in mathed, it is now automatically wrapped in a real inset (either \text or \ensuremath) assuring the correct mode, instead of being wrapped only in the output. The wrapping inset can be safely dissolved, as it will be automatically inserted at export time if needed, as usual. * The new setting "Document->Settings->Fonts->Disallow line breaks after dashes" forces output of en- and em-dashes as \textendash and \textemdash when exporting to LaTeX. It is is "false" by default but "true" when opening documents edited with LyX 2.2. See chapter 3.9.1.1 "Dashes and Line Breaks" of the User Guide and "Caveats when upgrading from earlier versions to 2.3.x" below. * The following UI translations were dropped, because the lack of translation maintenance: Russian, Danish, Greek, Serbian, Galician, Catalan, Romanian, Dutch. !!Documents compilation process and images conversion * It is now possible to enable the -shell-escape option only for specific documents, rather than having to enable it globally in preferences. This is achieved by checking "Allow running external programs" in Document->Settings->Formats. LyX will now check whether -shell-escape has been added to a LaTeX converter and invites the user to remove it in favor of the new mechanism when that LaTeX converter is used. * The converters definition syntax (LYX_HOME/lyxrc*) now supports a new option, 'needauth', to prevent completely automated execution of the converter, unless LyX acquired explicit consent by the user. This is a new security feature, useful for converters that are capable of executing arbitrary code, such as R scripts (used with sweave/knitr), embedded within LyX documents. The user needs to explicitly grant per-document permission on the first need for using the converter on each document, unless he/she checks the "Don't ask again for this document" checkbox in the permission dialog. The new behavior can be fine-tuned from two new options in the preferences dialog (see their description below). These also allow for disabling 'needauth' converters altogether, if desired (default behavior). * LyX now supports insertion and automated conversion of Gnuplot scripts, recognized by their typical extension ".gp" or ".gnuplot". These can directly be inserted in a LyX document using the "Insert->Graphics..." dialog, then selecting the Gnuplot script. LyX automatically adds a proper "set terminal ..." and "set output ..." line to convert the file to the needed output format (e.g., .eps, .pdf), depending on whether the document is being previewed on screen or compiled as PDF or other formats. Terminal options cannot be fine-tuned at the moment, but that's a capability that may come soon, also according to the received feedback from users. !!!The following pref variables were added in 2.3: * \default_platex_view_format Determine the default output format for Japanese documents that use the pLaTeX backend [default: "pdf3" == "PDF (dvipdfm)"] * \jbibtex_alternatives Alternative bibliography converters for Japanese. * \pygmentize_command holds the name of the driver command used by the Pygments python module. * \use_converter_needauth when enabled, user is asked before calling any (possibly dangerous) external converter with the 'needauth' option * \use_converter_needauth_forbidden when enabled, use of external converters with the 'needauth' option is forbidden !!!The following pref variables were changed in 2.3: * \bibtex_command New (default) value "auto". * \screen_zoom This is now independent of the value set via buffer-zoom[-in|-out]. !!!The following new LyX functions have been introduced in 2.3: * buffer-external-modification-clear Clear the external modification flag on the current buffer * buffer-zoom Zooms the screen fonts to a given value or resets to the default zoom when no argument is given. * branch-invert Toggles inversion status of branch inset. * devel-mode-toggle Activate/deactivate the developer mode, which consists mainly in: (1) more information shown in the status bar and (2) help file opened in editable mode. This state used to be hardcoded at compile time. * font-crossout Cross out characters. * icon-size [size in px] Set the icon size in the toolbar * lyx-activate Activates the LyX window. Useful in combination with reverse search. * toolbar-movable Toggles movability of a given toolbar. !!!The following LyX functions have been changed in 2.3: * buffer-export If no or "default" argument is given, the function now exports to the default output format. * buffer-zoom-in, buffer-zoom-out The Zoom value set by these is now relative to the default zoom value set in preferences. * inset-modify This function now also applies to quote insets. It takes a three-character string as an argument, referring (1.) to the style (e = ``english'', s = ''swedish'', g = ,,german``, p = ,,polish'', f = <>, a = >>danish<<), (2.) to the side (l = left, r = right) and (3.) to the quotation level (s = single, d = double). So "eld" means "English left double quotation mark". A dot in the string means: take the current value. So "inset-modify changetype e.." will only change the style to English, while letting side and level as is, "inset-modify changetype f.s" will change the style to French and the level to single, leaving the side value. This function is most useful when combined with inset-forall. E.g., "inset-forall Quotes inset-modify changetype f.." => change all quote insets to French style, maintaining current side and level "inset-forall Quotes inset-modify changetype ..s" => change all quote insets to single quotes, keeping style and level "inset-forall Quotes inset-modify changetype g.s" => change all quote insets to German single quotes, keeping left/right setting * paragraph-goto The function has now two further optional arguments that determine end positions. If specified, a selection is performed. * quote-insert The function now has a second and third optional argument to specify the side (left, right, auto) and quotation mark style (english, swedish, german, polish, french, danish). * specialchar-insert New option allowbreak that adds an invisible line break option, * word-delete-forward, word-delete-backward, char-delete-forward, char-delete-backward The pre-2.3 behavior of these functions is equivalent to the 2.3 behavior with the "force" option appended. The new default behavior (without "force") is to select big insets on the first call and delete them only on the second. This new behavior is consistent with how delete works in LyX's math editor. !!!The following new folders have been added to the LyX directory * citeengines: Contains the *.citeengine files that determine the citation formatting and features. * xtemplates: Contains the *.xtemplate files that define the external templates (previously in the external_templates file). !!!The following preferences files have been removed from the tarball in 2.3: * external_templates. This files has been split into multiple *.xtemplate files that are now shipped as content of the xtemplates directory. !!Changes with respect to external programs and libraries in 2.3: * LyX now supports only macOS 10.9 and higher (due to using Qt 5.9). * Inkscape SVG with separate LaTeX + PDF or PS output is supported via External Material. * Add some editor/viewer applications to (re)configure checks. * The included Hunspell has been upgraded to version 1.6.2. * The included libiconv has been upgraded to version 1.15. * LyX now includes a Qt-based fallback-converter for Mac to compensate missing ImageMagick convert utility. !!Known issues in version 2.3.0 * See http://www.lyx.org/trac/wiki/BugTrackerHome. !!Caveats when upgrading from earlier versions to 2.3.x * The external_templates file has been split into one file per template, which are now located in lib/xtemplates/*.xtemplate. This makes it easier to add new templates or modify existing ones. If you have modified the external_templates file, you will have to move the modifications to the respective *.xtemplate file manually. * By default, LyX 2.3 outputs en- and em-dashes after which a line break can occur in the output. Sometimes, this results in undesired line breaks. Select "Document->Settings->Fonts->Disallow line breaks after dashes" to keep the LyX 2.2 behaviour, where such line breaks have been generally suppressed. See chapter 3.9.1.1, "Dashes and Line Breaks", of the User Guide for details. * ZWSP characters (u200b) following literal em- and en-dashes are deleted by lyx2lyx when converting to 2.3 format. If you used them as optional line breaks after dashes, convert them to space insets before opening your document with LyX 2.3 or the optional line breaks will be lost! * If using TeX fonts and en- and em-dashes are output in breakable form, when exporting documents containing en- and em-dashes to the format of LyX 2.0 or earlier, the following line has to be manually added to the unicodesymbols file of that LyX version:
0x200b "\\hspace{0pt}" "" "" "" "" # ZERO WIDTH SPACE
This avoids "uncodable character" issues if the document is actually loaded by that LyX version. LyX 2.1 and later versions already have the necessary definition in their unicodesymbols file. * If trying to compile documents using R scripts and sweave/knitr, LyX 2.3.x would not allow for re-running the R scripts, unless the user: 1) explicitly disables the "Forbid use of needauth converters" option in the LyX preferences; 2) provides explicit consent to the use of the converter on the first compilation of the R-enhanced document. * LyX now gives a warning if a document mixes title and non-title layouts. In some cases, this warning is harmless, but in other cases the document has a serious problem even though the LaTeX command does not exit with error. For example, create a document with a title layout, then a standard layout, and then an author layout, and you will see in the PDF that the author is not typeset as an author. !! If upgrading from a LyX version before 2.2.0 * Please additionally see the release notes from the versions in-between: https://wiki.lyx.org/LyX/ReleaseNotes