!Important Change in LyX 2.3.7

The following pref variable was added:

* \draw_strategy partial|backingstore: when this is set to
  "backingstore", the drawing code will force the use of an
  intermediate surface, instead of just drawing changed regions on
  screen. Note that "backingstore" is actually always enforced on
  macOS and Wayland (default: partial).


!Important Change in LyX 2.3.1

* A change to how math macros are output can break some documents that use
  ERT to comment out macros. Please see bug #11216 if you experience this
  sort of problem.


!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"
  turns off the conversion of em- and en-dash characters to --- and --
  respectively for LaTeX export. It is is "false" by default.
  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 preference "Tools->Preferences->Look&Feel->Screen Fonts->Use
  pixmap cache to speed up font rendering" is not available anymore.
  It was of dubious value and led to rendering issues.

* The following UI translations were dropped, because of the lack of translation
  maintenance:  Catalan, Danish, Dutch, Galician, Romanian, Serbian.

!!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].

* \use_pixmap_cache
  The value of this variable is now ignored.

!!!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.

* buffer-anonymize (2.3.2)
  Replace all text n the document by streams of `a'. This is useful
  for sharing private documents in a bug report.

* 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.

* environment-split
  The new arguments "before" and "previous" can be used for finer control on
  where/how the new environment is created.

* 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 = <<french>>, 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

* layout
  The new argument "ignorenests" can be used to ignore nesting advice contained
  in the layout tag "AutoNests".

* paragraph-break
  The new argument "ignoresep" can be used to break without accounting for
  separators.

* 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 as -- and --- respectively,
  so that a line break can occur in the output immediately after the dash.
  Sometimes, this results in undesired line breaks or overfull lines due to
  suppression of hyphenation in the word preceding the dash.
  Select "Document->Settings->Fonts->Disallow line breaks after dashes"
  to keep the LyX 2.2 behaviour.
  See chapter 3.9.1.1, "Dashes and Line Breaks", of the User Guide
  for details.

* 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
