Günter Milde [Thu, 12 Nov 2015 16:07:56 +0000 (17:07 +0100)]
Ensure the Greek Intro.lyx compiles with non-TeX fonts.
Prevent loading of lmodern.sty if non-TeX fonts are set and
Define DejaVu as non-TeX font.
This ensures that non-TeX fonts are used if requested (lmodern.sty set
the 8-bit version of LatinModern if compiling with LuaTeX).
Also ensure that a font with all characters is used. (LatinModern misses small
Greek characters.)
Similar actions for other manuals and examples with Greek or Cyrillic script
will solve some more export tests with non-TeX fonts.
Prevent encoding changes whenever the TeX engine is XeTeX or LuaTeX,
as XeTeX/LuaTeX use only one encoding per document:
* with useNonTeXFonts: "utf8plain",
* with XeTeX and TeX fonts: "ascii" (inputenc fails),
* with LuaTeX and TeX fonts: only one encoding accepted by luainputenc.
+1 no needless encoding switches
+1 runparams.encoding matches the correct encoding at any time
+1 less complicated code.
-1 there may still be problems with CJK (possibly impossible to
solve for Xe/LuaTeX with TeX fonts).
For LuaTeX & TeX fonts, the complete document uses the encoding
of the global document language.
Scott Kostyshak [Wed, 11 Nov 2015 23:06:07 +0000 (18:06 -0500)]
Revert "Update previews on preference change (#9507)"
The referenced commit lead to performance issues and possibly
crashes in some cases when saving preferences. Thanks to Guillaume
for discovering the issues. See #9828 for more discussion.
Georg Baum [Wed, 11 Nov 2015 21:25:18 +0000 (22:25 +0100)]
Fix \origin lines
These were fixed manually. I tried to add an option to updatedocs.py to
open and save a file with LyX, but that did not work, since
lyx -x 'command-sequence buffer-write ; lyx-quit' does not write and does
not quit.
Georg Baum [Wed, 11 Nov 2015 20:48:20 +0000 (21:48 +0100)]
Update LFUNs.lyx to current format
gen_lfuns.py does now produce the current file format, and and LFUNs.lyx was
re-created with the updated script.
There is one difference if you compare this version of LFUNs.lyx with the old
version updated by lyx2lyx: All occurences of LyX, TeX etc. in the lfun
descriptions are no longer output as logos. I do consider this as a feature,
since the old version did also output the TeX part of BibTeX as a logo, as well
as places where the names were part of some syntax, e.g. lyx::LyXRC::LyXRCTags.
Georg Baum [Wed, 11 Nov 2015 20:35:12 +0000 (21:35 +0100)]
Set \origin correctly when upgrading docs
lyx2lyx did not yet know about /systemlyxdir/ and set \origin to the path
where my git tree lives instead. This path is not usable except on my machine,
so better write something more usable instead.
This is a special command line switch of lyx2lyx, so it does not interfere
with normal usage. I did not try to deduce the systemlyxdir from lyx2lyx to
be on the safe side.
Richard Heck [Tue, 10 Nov 2015 17:39:24 +0000 (12:39 -0500)]
Fix bug #9554: When we save a file that was not originally in the current
LyX format, create a backup of the original file. We put it in the backup
directory, if one exists, otherwise in the directory the original file is
in. This is the same strategy as for normal backups. Basically, the only
diferences are: (i) what name we use and (ii) we do not over-write any
backups that may already exist.
Actually, the changed tests were used to prevent overwriting the encoding
changed in Buffer::writeLaTeX with a language-default encoding.
This is still required for XeTeX with TeX-fonts unless a proper solution is found.
Documents with more than one encoding and TeX-fonts fail with LuaTeX,
as "luainputenc" can only handle one encoding.
Günter Milde [Mon, 9 Nov 2015 10:45:01 +0000 (11:45 +0100)]
Reset encoding after insets and environments also for LuaTeX with TeX fonts.
With inputenc == "auto" or "default", the encoding changes with
the language and must be reset after an eventual language switch in insets
or environments (see #6216).
However, whether we need to do this does not depend on 8-bit TeX vs. LuaTeX
but on the possible use of more than one encoding for the document.
With "nonTeXFonts", the encoding is utf8,
LuaTeX with TeX fonts requires encoding handling similar to 8-bit TeX.
(Additionally, the value of "params.inputenc" could be tested: if it is
not "auto" or "default", we have just one common encoding and could skip
the reset as well.) Not sure how much time this saves, though.
Georg Baum [Mon, 9 Nov 2015 06:33:57 +0000 (07:33 +0100)]
Store both sets of font selections
This is one part of bug 9744: If you toggle between TeX fonts and non-TeX
fonts, the settings of the other choice are no longer thrown away, but stored
and re-activated if you switch back. Most parts of the patch are purely
mechanical (duplicating some BufferParams members), the only non-mechanical
change is in the GUI logic.
Scott Kostyshak [Sun, 8 Nov 2015 00:55:57 +0000 (19:55 -0500)]
Add the format line for Mac's lyxrc.dist.in
The file was updated to format 14 in fc22ba16 but the format line
was missing. A missing format line is interpreted as format 0, I
believe, which could lead to incorrect conversion to later formats.
Richard Heck [Thu, 5 Nov 2015 21:42:30 +0000 (16:42 -0500)]
Move LFUN_CHANGES_TRACK and LFUN_CHANGES_OUTPUT to Buffer.cpp,
and record an undo call. This deals with the problem of marking
the Buffer dirty, as well.
Move LFUN_BUFFER_TOGGLE_COMPRESSION and LFUN_BUFFER_TOGGLE_OUTPUT_SYNC
to Buffer.cpp, and add an undo call.
In computeRowMetrics, the right margin of the row shall be taken in account when the text is not left-aligned. Rewrite the code in terms of the available width `w' to avoid this pitfall.
The pointer macroInset points to a vector element. When another element is inserted in this vector, some reallocation occur and the pointer points to a deleted element.
This does not crash LyX by default, but it is bad enough to make valgrind cry.
Try to avoid horizontal scrolling with wide insets.
There was a problem with end of paragraph markers. By design, wide insets choose their size without taking in account the marker. This should not lead to unneeded horizontal scrolling.
Kornel Benko [Wed, 4 Nov 2015 19:53:53 +0000 (20:53 +0100)]
Cmake tests: Expand for some more suspended testcases
All dvi_texF and pdf5_texF testcases are nov candidates for being suspended.
After commit 279d084, now export/.*/Math_(dvi3|pdf5)_texF fails,
therefore the tests are also inverted.
PDF properties (Author, Title...) need to be quoted properly when writing (normal operation and tex2lyx). Also, reading them requires to use Lexer::getString() directly, because >> uses next(), which does not handle escapes.
Kornel Benko [Wed, 4 Nov 2015 10:44:07 +0000 (11:44 +0100)]
Cmake tests: Add 'suspendedTests'
This file holds regular expression to select which of the inverted
export test cases will be suspended.
These tests will not be executed with the call 'ctest -L export'.
Günter Milde [Wed, 4 Nov 2015 10:21:22 +0000 (11:21 +0100)]
Fix some XeTeX + TeX-fonts regressions introduced by fixing #9740.
hyperref expects LICR macros for non-ASCII chars in the PDF Header Information.
As hyperref provides good coverage for \inputencoding{utf8}, we try
this if the current input encoding does not support a character.
With XeTeX, we do not load inputenc and cannot use \inputencoding.
However, utf-8 works out of the box so we can write the content in UTF8.
Fix bug ##9627: Make the document name available to preview insets
The \jobname macro is redefined for the preview snippets such that
it contains the name of the document without extension. This is
harmless because the moment it is redefined, TeX has already chosen
the name of the output and log files. On the other hand, any use
of \jobname in preview snippets is now consistent with what one
obtains after exporting and compiling by hand.
Fix bugs #2645 (export BIBINPUTS) and #6634 (Better support for external files in ERT)
Other than BIBINPUTS, also BSTINPUTS and TEXFONTS are exported.
They do not replicate the setting for TEXINPUTS but are set such
that the current dir (i.e., the temp dir) and the document dir
are also searched for bibtex and fonts related files.
Disable setting vertical lines when using a formal table
The code in InsetTabular disables the toolbar icons and menu entries related to vertical lines.
The code in GuiTabular disables vertical lines in the Settings dialog.
Note that there was a bug in
GuiSetBorders::set(Left|Right|Top|Bottom)Enabled, where the borders
did not get drawn correctly.
Fix algorithm that computes horizontal scroll offset
Rewrite the logic completely:
* fix cases where the offset was reset unnecessarily
* fix cases where the row was scrolled too much: as soon as a side of the row is completely visible, there is no need to scroll more.
* fix cases where offset would never reset
Fix wrong reset of horizontal scolling of current row
This partially reverts commit 0f1fdaaa9, but only redraws the current
row when the value returns by getPos is obviously false. It would also
be possible to check whether the current cursor has all its insets in
cache instead.
A better fix should be found, but this is unfortunately not 2.2 stuff.
Richard Heck [Sun, 1 Nov 2015 21:27:58 +0000 (16:27 -0500)]
If lyx2lyx is asked to convert a file to the format it already is,
then just perform a null conversion. This seems better than aborting
with an error. I can imagine a script that converted all files in a
certain directory to format 498, and you don't want it to be an error
if one of them is already 498.
Prior to this, what lyx2lyx would do is convert to the lowest format
in the current version. So, e.g., asked to convert 498 to 498 it would
convert to 474. That is obviously wrong.