Developing LyX
Version 2.3.x
File formats
When is an update of the .lyx file format number needed?
When you are working on a new feature you may ask yourself whether it needs an update of the .lyx file format number. Whether an update is needed or not is not always obvious. Rule of thumb:
Whenever there is the danger that a previous version of LyX cannot open a file using the new feature, a file format update is needed.
The file format change allows lyx2lyx rules to implement backwards compatibility. Below you can find a list of reasons for file format updates with explanations:
New document setting
Whenever you introduce a new setting that is stored in the document header, a file format update is needed.
Removed document setting
If a certain setting becomes obsolete and gets removed, a file format update is needed.
New valid value for an existing setting,
e. g.
Automatically loaded math package
The reason for this is that there is no true ERT inset for math formulas: Each command is parsed, and if a user happens to define a local command with the same name as a command that triggers an automatic load of a package, they need to be able to switch off the automatic loading of that package. This switch is stored by the use_package header setting.
New language
that is stored in \language.
New inset
Of course a new inset requires a file format update.
New style
If a new style or inset layout is added to any layout file or module shipped with LyX, then a new file format is needed in the master (development) branch. It is possible to backport new styles to the stable version without a file format change.
Removed style
If a style or inset layout is removed in any layout file or module shipped with LyX, a new file format is required.
However, new layouts and modules do not require a file format update (changed 03/16).
If you are still unsure, please ask on the development list.
Output formats
The following output formats are currently tested for each sample document:
LyX:
lyx16
LyX 1.6 file format (lyx2lyx)
lyx21
LyX 2.1 file format (lyx2lyx)
xhtml
LyXHTML (native LyX HTML export)
LyX + LaTeX:
dvi
DVI (8-bit latex)
dvi3_texF
DVI (LuaTeX with 8-bit TeX fonts)
dvi3_systemF
DVI (LuaTeX with Unicode fonts)
pdf2
PDF (pdflatex)
pdf4_texF
PDF (XeTeX with 8-bit TeX fonts)
pdf4_systemF
PDF (XeTeX with Unicode fonts)
pdf5_texF
PDF (LuaTeX with 8-bit TeX fonts)
pdf5_systemF
PDF (LuaTeX with Unicode fonts)
LyX + LaTeX + postprocessing:
pdf
DVI -> PS (dvips) -> PDF (ps2pdf)
pdf3
DVI -> PDF (dvipdfm)
not tested:
(or only if set as default output format in the document source)
latex
LaTeX (plain)
luatex
LaTeX (LuaTeX)
dviluatex
LaTeX (dviluatex)
pdflatex
LaTeX (pdflatex)
platex
LaTeX (pLaTeX)
xetex
LaTeX (XeTeX)
eps3
EPS (encapsulated Postscript) (cropped)
ps
DVI -> Postscript (dvips)
odf
text
(nor text2, ..., text4)
textparagraph
word
word2
wordhtml