There a some exceptions related to the fact that BOOST_ASSERT throws
an unhandled exception, which is fait enough. This is handled by
uploading a modeling file to coverity.
The second batch of issues are related to the use of lexical_cast in
convert.cpp. We use now a wrapper around boost::lexical_cast that does
not throw but return empty strings instead. I am not sure actually of
when lexical_cast could fail.
- Mention the new buffer parameter in development/FORMAT
- Assure that lyx2lyx generates the same output obtained when saving
a converted document from within lyx
- Don't require any action when converting a document created with
lyx 2.2 in order to assure unchanged output (thanks José for the hint)
This commit fixes the regression introduced in 2.2 about the
output of en- and em-dashes. In 2.2 en- and em-dashes are output as
the \textendash and \textemdash macros when using TeX fonts, causing
changed output in old documents and also bugs (for example, #10490).
Now documents produced with older versions work again as intended,
while documents produced with 2.2 can be made to produce the exact
same output by simply checking "Don't use ligatures for en-and
em-dashes" in Document->Settings->Fonts.
When exporting documents using TeX fonts to earlier versions, in order
to avoid changed output, a zero-width space character is inserted after
each en/em-dash if dash ligatures are allowed. These characters are
removed when reloading documents with 2.3, so that they don't accumulate.
The added cmake-parameter is:
-DLYX_EXTERNAL_MYTHES=<value>
where <value> is one of
AUTO (Default) Search first on system for mythes (lib and include)
ON Use installed only (errors if not installed)
OFF Compile the provided source in 3rdparty
We don't invert unreliable tests for the same reason they are
inverted but, e.g., a nonstandard test that fails for some reason even with the
additional requirements installed or a test that shows wrong output
but also an error.
Added "export/export/latex/arabic_simple_pdf4_systemF"
and "export/doc/ar/Intro_pdf4_systemF"
to the list of tests which ignore "missing glyph" error.
Thanks to Jürgen Spitzmüller.
An update in TeX Live causes the test to pass (also for Kornel), so
now we uninvert the test.
I looked at the output file, and it seems fine to me (although it is
long, and I just checked briefly).
The new TeXLive uses font encoding TU for Unicode fonts with Xe- and LuaTeX.
The command \textquotedbl for straight quotes is no longer supported,
\textipa no longer supported with LuaTeX.
Problems with Spanish Babel and Xe/LuaTeX with 8-bit fonts lead to new errors
in some cases.
This adds support for the chapterbib package, but also adds ways to
produce this sort of multibib with biblatex and bibtopic (which are
both incompatible with chapterbib).
File format change.
This allows to somewhat simplify the text and avoid some uses of
Paragraph (in the long term, RowPainter should not have to access
these things).
At the same time do a small cleanup to RowPainter: rename
text_metrics_ to tm_, remove pm_ and width_.
File format change.
This allows for the relevant InsetCommand-based dialogs (such as
citation text before/after, Bibitem label, hyperlink name etc.)
to provide both the input of verbatim code or text that is transformed
to proper LaTeX code.
Some dialogs (Nomencl, Href) already had some methods (although they
could not be toggled), which are now centralized and streamlined.
The initial work of this patch has been done by Georg Baum (see
http://www.lyx.org/trac/attachment/ticket/2751/x.diff)
Fixes: #2751, #8227.
These are biblatex-specific multicite commands that allow for multiple
pre- and postnotes, as in:
\cites(pre)(post)[pre1][post1]{key1}[pre2][post2]{key2}...
with an optional general pre- and postnote, which applies to the whole
list (like [][] in normal cite commands) and an optional pre- and
postnotes for each item, so that pagination can actually be specified in
multi-cite references, as in:
(cf. Miller 2015, 2; furthermore Smith 2013, 23-23; Jenkins 2012, 103,
also refer to chapter 6 in this book)
See the biblatex manual, sec. 3.8.3., for details.
File format change.
New file: ignoreLatexErrorsTests
The sublabels in this list of export-testnames specify which error
messages should be ignored.
For each sublabel (for example "xxx") the lyx-command line is expanded with
"--ignore-error-message xxx"
We use the more comprehensive cochineal package if available and fall
back to the crimson package, if not.
Math support is provided by means of newtxmath
Fixes: #9974, #9976
* b `british' (``inner quotation'')
* w >>swedishg>> ('inner quotation') ["g" = Guillemets]
* f <<french>> (``inner quotation'')
* i <<frenchin>> (<<inner quotation>>) ["in" = Imprimerie Nationale]
* r <<russian>> (,,inner quotation``)
Rename "french" to "swiss"
Also rename "single/double" to "secondary/primary" ("inner/outer" in
the UI) and "left/right" to "opening/closing". Note that the inset
identifier string is left as is ("s/d" and "l/r")
Using this label in invertedTests expands the testname unnecessary, so that
we get e.g. labels like:
SUSPENDED.UNRELIABLE.WRONG_OUTPUT.UNRELIABLE_export/doc/de/EmbeddedObjects_pdf4_texF
OTOH, if using label 'unreliable', we get a warning about label-names clash.
The best is to reset any previous label setting.
This encoding (modified Mac Cyrillic for Asian languages) is rarely used and not supported by Gnu iconv.
Update comments in lib/encodings.
Update ctests: Gnu iconv only supports cp858, if configured with "--enable-extra-encodings".
The missing character problem is fixed upstream.
Also fix the scaling of the \sun-symbol-index by wrapping the symbol in \text.
(wasysym's \sun is valid in text and math mode. LyX currently adds a spurious \ensuremath.)
As Enrico pointed out in http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg131411.html, the loading error of testcases_speed.lyx is caused by tags from a LyX development version that were later removed but never handled in lyx2lyx.
LaTeX export still fails with
! Argument of \xargs@grab@opt has an extra }.
These tests are "unreliable" and thus their export status contains
less information than reliable tests. However, it contains some
information and could still be used to find regressions. This commit
helps keep the output of a vanilla "ctest" command clean.
See discussion here:
https://www.mail-archive.com/search?l=mid&q=20161127205800.epvjxkeri5yoeqwj%40steph
MiKTeX made a major package cleanup during the last 2 weeks. (Which caused a lot of troubles btw.) Many packages were removed and renamed. Now the list is complete again.
Test unicodesymbols for most supported input encodings with Kornel's addition to ctests.
Add required "forces" to unicodesymbols:
* utf8x does not support all characters supported by LyX
* several 8-bit encodings map characters to math-mode commands - force replacement in text-mode so that LyX can wrap them in \\ensuremath.
Fix a misalignment (wrong replacements) in the Cyrillic Unicode block.
Use \\mathscr for Mathematical Script characters in Mathematical Alphanumeric Characters (in line with the characters in other unicode blocks.
Rename the directory for test samples "export/latex/Unicode-characters" to "export/latex/unicodesymbols". This matches the purpose to test the lib/unicodesymbols file.
First run of Kornels patch for tests with all input encodings in lib/encodings.
Remove redundant sample files - keep only one sample and change the input encoding in the test script.
Put remaining failing test in "unreliableTests" for later sorting...
- fileformat change
- I could not update the tex2lyx test files because of bug #10440
- maybe the lyx2lyx routine could be improved but since a document can also begin with another layout than "Standard" I could not use the lyx2lyx function put_cmd_in_ert
* custom non-tex fonts with all required characters
* use 2.2 fileformat (easier backporting)
* test all export formats
Also, fix pattern for "mixing_inTitle_layouts" in unreliableTests.
force=utf8 is required for most characters provided by add-on packgages
and (almost) all mathematical characters, because these are not
set up for inputencs utf8
unicodesymbols.py failed here (python 2.7 under Linux) before the simple fix
included in this commit.
Specify non-TeX fonts that work in the source for documents that
fail with "missing characters" if compiling with "non-TeX fonts"=true.
(This does not interfere with the default output in any way.)
The new cmake 3.6 now also inserts correctly
this file into its control-file. But the syntax of the control-file
expects the description lines be indented by a space.
Also empty lines (only spaces) are not allowed.
Add an exception to the conversion of "missing character" warnings into errors.
The PGF package deliberately uses the dummy font "nullfont" to suppress output.
Therefore, warnings about missing characters in "nullfont" are really only warnings.
Also updated the comment: "Missing character" warnigns are especially widespread
in XeTeX/LuaTeX but can also happen with "classical" 8-bit TeX.
Feel free to port this to branch.
Move them to a subdir, ignore this subdir for other tests.
Dedicated test samples for LaTeX-specific problems don't give additional value if tested for loading, conversion, or other exports.
This led to errors when compiling with polyglossia (and non-TeX fonts).
A minimal (currently non-compiling) test sample is kept in autotests/export/
and inverted in suspiciousTests.
europeCV and modernCV examples can now be exported to PDF using
LuaTeX. For the specific output that was fixed, look at the diff and
see the description in suspiciousTests that was removed by this
commit. The output was checked manually and appears fine. These
tests are thus "uninverted".
Exporting those examples to DVI with LuaTeX does not exit with
error, but the output drops characters with accents. Thus, these
tests are now marked with the "wrong_output" label. I reported this
issue on the LuaTeX mailing list at [1], but since DVI export is not
given high priority, I don't expect much action.
Note that these changes reflect an updated TeX Live 2016
installation.
[1]
https://www.mail-archive.com/search?l=mid&q=20160831134006.4fewxothddqfeyw4%40steph
As of 0b1cf133 we now warn in the GUI of this issue, but there is a
discussion about whether we should change our LaTeX output and allow
for the workflow of mixing inTitle layouts. For more information,
see #10347.
The keytests were previously enabled by default if the necessary
dependencies were found. They require a GUI and mouse so can
sometimes be annoying. Further, they are not currently reliable.
They are thus now disabled by default.
is output when a branch is NOT activated. Fixes bug #7698.
At the moment, inversion is controlled through the branch settings
dialog. There is no provision for inserting inverted insets directly,
or for changing them from the context menu. Both of these could be
done, of course. The latter would need LFUN_BRANCH_TOGGLE_INVERTED.
With both Qt4 and Qt5, when using a click-to-focus policy, the first
attempt to paste a selection by middle mouse in an external application
which has no focus may fail. It is not clear why this succeeds for some
applications and fails for others, but refreshing the timestamp of the
selection request cures the issue. The cmake part is by Kornel.
See also this thread:
http://thread.gmane.org/gmane.editors.lyx.devel/162491
MSVC does not need a special flag to specify the standard. Using --std=c++14
produces a warning, but compilation succeeds, so the old code did mistakenly
choose --std=c++14 for MSVC.
Older gcc versions (e.g. the first one which has usable std::regex: gcc 4.9)
require the --std=c++11 flag to be set. Otherwise std::regex is not made
available. Therefore we need to keep the flag in the loop.
These files were aded with windows line ends before we did set the text=auto
attribute for all files in .gitattributes, and this caused phantom changes on
linux workspaces after .gitattributes was introduced.
Now these files appear with linux line ends on linux workspaces and with
windows line ends on windows workspaces, like all source files.
The external date inset was implemented as a demonstrator for external insets
in general. It was never intended for production code. Now that we have several
external insets defined we do not need the demonstrator anymore. This fixes
bugs #4398 and #9948.
This was dead code that did never work, and most of it was boilerplate that
you can steel in 15 minutes from any existing math inset. Apart from that it
did contain a pointer to InsetXYMatrix which would create the same problems
we saw with the macros.
XeTeX with TeX fonts is only safe with ASCII input encoding (see #9740)
and we therefore force "ascii" when exporting with XeTeX and 8-bit TeX-fonts.
However, "utf8-plain" is a "power-user" option, which allows to switch off LyX's
encoding of the LaTeX file:
keep this also for "XeTeX with TeX fonts".
The user is responsible to ensure all characters can be processed and are
correctly shown in the output. The provided test sample shows the problems
with this encoding without special measures (like loading fontspec in the
user-preamble or a document class).
Boost.Signals is deprecated. This fixes bug #9943.
The only thing left to do is to rewrite (or get rid of) the boost -mt test
in config/lyxinclude.m4 not to use signals anymore.
As discussed on the list. If no C++11 compiler is found configuration stops
with an error. There are now unneeded parts of boost, the will be removed in
a second commit.
For a suffixed version (with suffix 2.3) and installation dir (/usr/local)
the new paths are:
binary -> /usr/local/bin
system-lib -> /usr/local/share/lyx2.3
fonts -> /usr/local/fonts/truetype/lyx2.3
manuals -> /usr/local/man/man1
locales -> /usr/local/share/locale
tex -> /usr/local/texmf/tex/latex/lyx2.3
The essential hints came from Guillaume amd Jean-Marc at bug #8883.
Tested by comparing the output of
python generate_symbols_list.py `kpsewhich fontmath.ltx`
with lib/symbols.
Also read files with universal line endings and write files using native line
endings, so the script can also be used on windows without changing the line
endings.
The new functions parBottomSpaging and parTopSapcing return below/above each paragraph.
This allows to remove the TopBottomSpace argument and makes the code a
bit clearer.
Now that Row has a pit() member, it is possible to use it instead of passing an extra pit_type parameter to a function which already has access to a Row.
Change the various paint* helpers to take a single row element as argument.
Do not update x_ in the various paint* helpers. Constify them. Update x_ in paintText and paintOnlyInsets instead.
Remove an empty call to paintForeignMark in paintInset (the call did nothing since orig_x == x_ at this point).
It is actually easier to set the 20 pixels margin in redoParagraph, since it is not necessary to take newlines in account when deciding what is the real last row of the paragraph.
Moreover this solves the following bug (present in 2.1.x too): when the document ends with a newling, the bottom margin disappears.
Update PAINTING_ANALYSIS with new tasks.
* remove optional arguments to the helpers that use a FontInfo
* add a textwidth argument to the text() methods that are used by rowpainter.
Now textwidth is only computed if a null value was passed to the
text() method. This means that in the use case of rowpainter, no
textwidth needs to be computed.
On mingw-w64, long long (64bit wide) is larger than long (32bit wide).
Therefore we need some more specializations for string, docstring,
otextstream and << overloaded ostream functions. The configuration code
is by me, the source code changes by Shankar Giri Venkita Giri (bug 10053).
Lyx files converted from 2.1 to 2.2 contain parbeak and latexpar separators that
would not appear if the lyx file was written in 2.2 from scratch. The script
removes latexpar separators and transforms parbreak separators into plain
separators. Then it displays a diff of the resulting pdf files (requires
diffpdf) for manual control. All lyx files shipped with lyx should be updated in
this way. See #10068.
example usage:
cd lib/doc
../development/tools/separator-convert.sh Math.lyx
This is what the polib version does already. If a translation is marked
fuzzy then it is not used, so if the other file contains a non-fuzzy
translation we do not throw away useful information if we overtake it.
If the -o option is given, we may overwrite existing translations with
translations from the other .po file. In this case, we have to delete or set
the fuzzy flag accoring to the updated translation.
This is the same as the parbreak separator and is represented on screen
as the old parbreak. Old parbreak separators are converted to latexpar
separators when they are used for introducing blank lines in the
latex output rather than for separating environments.
Instead, parbreak separators are now represented on screen by a
double line. In essence, latexpar and parbreak separators produce
the same output but are represented differently on screen.
The context menu does not account for latexpar separators and only
"true" separators can be turned each into the other one.
The term LongTable has been deprecated and moreover the renaming makes the interface easier to the eye.
File format updated to 507. (conversion based on jamatos patch)
Layout format updated to 60.
tex2ylx tests updated.
Document EmbeddedObjects.lyx has been updated.
In collaboration with Günter Milde:
1.) Allow char ':' be part of a ctest-label
2.) Eliminate redundant label naming and directory names
(The testnames should not repeat the directory name)