This is done by declaring unimplemented private copy constructor and
assignment operator.
This breaks compilation in BufferView::textMetrics, which does a copy when
inserting a TextMetrics object in the cache. Some C++11 wizardry I will not
pretend to completely understand saves the day.
See the following page for details:
https://en.cppreference.com/w/cpp/container/map/emplace
This accesses the inulemcmd output param which protects specific commands
(\cite, \ref) in an \mbox.
This is needed in ulem and soul commands, since their complex
detokenization makes such commands (who produce multiple words via local
assignment) fail.
So now it is possible to properly support ulem and soul via
[inset]layout
Kornel Benko [Sat, 9 Mar 2019 23:29:56 +0000 (00:29 +0100)]
FindAdv: Special handling for \dot{i} and 'ß'
Different behaviour in regexp{..} for 'İ' and 'ß':
1.) lowercase routine for 'İ' gives 'İ', so that if we are searching
while ignoring case, the string '\dot{I}' is converted to '\dot{i}'.
In this case we have to change it to 'İ' (instead of 'i', as one would expect).
2.) If 'ß' is inserted via keybord on fresh created regexp box it appears as \lyxmathsym{ß},
if pasted from the lyx-screen it appears as \text{ß}
Do not use GUI language for shortcut info inset if no translation is available
Fixes: #11508
Now there is the opposite case which needs to be addressed:
If no translation is available for a shortcut in a non-latin-scripted
document, we need to switch the language to English.
Günter Milde [Fri, 8 Mar 2019 17:06:53 +0000 (18:06 +0100)]
unicodesymbols: Use \r{A} instead of \AA for "Latin letter A with ring" and "Ångström sign".
Xe/LuaTeX convert \AA to the deprecated character u212B (which is missing
in the default LatinModern font) instead of the recommended u00C5.
Also fix some of the "missing character" errors in Math.lyx if compiled with
Xe/LuaTeX which were caused by the replacement of \AA with literal u212B characters
in math-insets due to the old definitions in unicodesymbols.
Update the minimal example for failures of Math.lyx with system fonts.
Scott Kostyshak [Thu, 7 Mar 2019 22:20:37 +0000 (17:20 -0500)]
ctests: invert luainputenc-utf8_pdf5_texF
From Günter:
> OK, so in TL18 the Ukrainean "auto-date" (7 березня 2019 р.) fails with
> PDF (XeTeX) and DVI (LuaTeX) but not PDF (LuaTeX).
> Strange. Feel free to invert.
Kornel Benko [Mon, 4 Mar 2019 13:05:44 +0000 (14:05 +0100)]
FindAdv: Amend b21c8b21: Expand the list for handled latin characters
1.) Added for 'breve' and 'grave' accents
2.) Corrected handling for 'i'-accents (allowed \hat{i} _and_ \hat{\imath})
because of problems with ignoring case
3.) Spaces: Changed some indents in source
Kornel Benko [Sat, 2 Mar 2019 14:42:38 +0000 (15:42 +0100)]
FindAdv: Try to add the possibility to search for accented characters in regex
The problem is the handling of regex as using math-mode. That is
any accented character is converted to a math macro.
For instance "ä" --> "\\ddot{a}".
Outside of math or regex it is not converted (if used xetex flavour),
but there are other chars which are converted in math and in text (but differently)
For instance "ů"
in math --> "\\mathring{u}"
in text --> "\\r{u}"
TODO: determine the still not handled conversions.
It would be nice, if we could persuade math factory to not convert
these characters, but I was unable to find the place where the
conversion actually takes place.
Günter Milde [Wed, 27 Feb 2019 13:01:53 +0000 (14:01 +0100)]
Don't switch encodings when a document wide encoding is specified.
Remove special code for CJK that is no longer required after
we use CJKutf8 document-wide with inputenc "utf8-cjk"
(and "utf8" for languages requiring CJK) (since 7bbf333fa100).
CJK characters can no longer be used with a document-wide 8-bit encoding.
(Hint: Use utf8-cjk or one of the CJK legacy encodings if your document contains CJK characters.)
Günter Milde [Tue, 26 Feb 2019 18:13:15 +0000 (19:13 +0100)]
ctest update
* Do not change font choices when testing with non-TeX fonts.
* Add "nonstandard" tag for documents with requirements outside TeXLive.
* Ignore missing character in legacy Basque document.
Update screen as needed when preferences are changed
This commit removes the adhoc code in GuiPrefs and moves it to LyXRC,
so that it triggers in every preference change.
The code has also been updated to trigger on more variables, e.g.
font_*_foundry.
Note that the actual function that are called have not been changed
(addPreviews and LFUN_SCREEN_FONT_UPDATE), although there are doubts
that they behave as needed (see FIXMEs).
The goal of this commit is to simplify the logic in TextMetrics::draw.
Now, rows are repainted depending on their changed() status.
Instead of checking whether rows have been scrolled horizontally at
draw time, the code marks the row as changed when testing for
horizontal scrolling.
To this end a new method TestMetrics::setRowChanged is added, that
searches a row in the text metrics cache and marks it changed if
found.
The old code that remembered the previously scrolled row can now be
removed.
Kornel Benko [Fri, 22 Feb 2019 12:21:23 +0000 (13:21 +0100)]
FindAdv: debug info
1.) Fill the 'head'-member to easier recognize the macro. May be discarded
later, although it does not take too much run-time
2.) Add some comment
3.) Ignore any macro inside the regex.