These are now properties of insets that can be operators :
InsetMathSymbols, InsetMathDecoration (for over/underbrace) and
InsetMathMacro (for its contents).
Each of these has a limit_ member that allows to remember a limit
forcing and a member defaultLimits() that indicates what to do in the
absence of such forcing. Moreover the write() method calls
writeLimits().
This allows to simplify the definitions of integrals in lib/symbols by
defining the integrals as macros of their "op" version, as it is done in
the style files.
Also, many hardcoded assumptions can now be removed.
The handling of LFUN_MATH_LIMITS is now done in InsetNest, which tries
successively to apply the limit change to (1) the character after
cursor, (2) the character before cursor and (3) the character at the
end of the inset (useful for script insets?)
The new code allows to define
\newcommand\int{\intop\limits}
but not
\newcommand\makelimits#1{#1\limits}
It is also possible to type explicitly \limits or \nolimits to modify
a symbol.
Includes a test case useful for some of the previous commits (notes in abstract, PI escaping, counter warnings).
Still missing: marginal and side notes. Shouldn't they be ported to InsetMarginal?
The goal is to reproduce the change of size of operators like \sum wen they
are in display style.
The syntax of the symbols file has been extended to allow for two code
points (like 80|88 for \sum). In this case, the second one will be
used in display style.
Update the symbols file to handle all bigops from cmex, esint, wasy and
stmaryrd.
Let the code for math symbol inset handle symbols which can change size,
using the information from the symbols file.
Update the user-facing strings in modercv's layout according to the
documentation of the cventry command in moderncv.
Signed-off-by: Yuval Deutscher <yuval@deut.sh>
This commit adds the mathed command \mathds that selects a
font more appropriate than \mathbb for typesetting the
mathematical symbols for the natural (N), whole numbers (Z),
rational numbers (Q), real numbers (R), complex numbers (C),
and some others.
As in the \mathbb case, only capital letters are supported,
but in addition one can also typeset a symbol often used for
representing the indicator function (\mathds{1}) and the
letters a, h, k.
Fixes bug #11887.
The command addORCIDlink{}{} can be used in the preamble (like title{} or author{})
or in the body of document. For this a Flex-inset-layout seems appropriate.
This is a modern alternative for makeindex that is fully unicode-aware
and written in lua.
As opposed to xindy, it is more lightweight and actively maintained.
The program is still in a rather early stage of development, so we do
not propose this as default.
This relies on xindex 0.22 (about to be released) to function properly.
Needed font-config (so that this script is probably OK on unix systems only)
Probably needed module for Getopt::Mixed.
On debian systems it is contained in package libgetopt-mixed-perl
Most of the RtL icons that we provide are simply mirrors of the LtR ones.
Therefore let the code do that by default if no +rtl icon is found.
The only RtL icon left for now is for "layout Enumerate" (notice the
numbers in it).
Also remove useless getPixmap wrapper and several old bidi_xxx icons
that were forgotten in previous patch.
When the cursor in RTL text, icons for "depth-increment" or
"layout-toggle Enumerate" look wrong.
Instead of relying on the clumsy "bidi" lfun of 2898c335, this new
version relies on a new Toobar tag BidiItem that inserts an action
which can have two icons, depending on the direction of the paragraph
containing the caret (or of the direction of the UI when no file is
open).
The alternative icon has the same name as the original one, with a
"+rtl" string appended to the lfun string. The alternative icon is
only active if the file is found. The icon themes `default', `oxygen'
and `classic' have been updated accordingly.
Fixes bug #4451.
The log file generated by latex can contain strings encoded in
whatever supported encoding. Instead of guessing the encoding,
it is better to open it in binary mode and then performing the
necessary comparisons as "bytes". In order to do this, the
strings are encoded in utf8, so that, for example, b"pythön" is
encoded as "pyth\xc3\xb6n" (7 bytes). Of course, this means that
we can only successfully perform comparisons with ascii strings.
However, this is what we actually do, as we only search for
ascii strings in the log file.
This is a mode for includeonly handling that is effective and still outputs
at least mostly correct counters and references. This is intended for non-
final editing work.
File format change.
* invert failing lyx2lyx tests for ko/Welcome
* add dedicated test sample
* set language for English text part in ko/Welcome.
Also
* fix a lyx2lyx language test sample
* fix clause in unreliableTests
Use helper functions for shorter, self-documenting code.
Drop optional arguments that equal the default value.
Remove hard TABs and trailing whitespace.
Keyboard bindings are easy. For lfun icons in documentation, both the UserGuide and Tutorial have to be updated. Since this will have to be done again once the documentation is imported from branch, I list them here for reference:
For the lib/doc/ directory:
find . -name 'Tutorial.lyx' | xargs sed -i 's/"layout List"/"layout Labeling"/g'
find . -name 'UserGuide.lyx' | xargs sed -i 's/"layout List"/"layout Labeling"/g'
and then
find . -name 'Tutorial.lyx' | xargs sed -i 's/"layout \(Itemize\|Description\|Labeling\|Enumerate\|List\)"/"layout-toggle \1"/g'
find . -name 'UserGuide.lyx' | xargs sed -i 's/"layout \(Itemize\|Description\|Labeling\|Enumerate\|List\)"/"layout-toggle \1"/g'
Related to bug #11770.
Unfortunately, stat.st_ino returns 0 on Windows, at least on Python 2.7, so we can't use that way of telling when we're seeing the same directory again. Surely the real pathname should work.
Three backslashes are needed before a LaTeX command, not one. Before
this commit, the code gave the following error with Python >= 3.6:
re.error: bad escape \g at position 29
This error was introduced with Python 3.6, as documented [1] by the
following line of documentation:
Changed in version 3.6: Unknown escapes in pattern consisting of
'\' and an ASCII letter now are errors.
Although previous Python versions did not give an error, the regular
expression was not working as intended: for example, the "\\n" in
"\\newcommandx" would be interpreted as a new line.
[1] https://docs.python.org/3.6/library/re.html#re.sub
We will replace this with a better solution
For now, only keep
- Changes::isChanged()
- Buffer::areChangesPresent(), replaced by a dummy function
Next step will be to provide a working areChangesPresent() and to
compute Inset::isChanged in updateBuffer.
This reverts commit 6d4e6aad24.
Comment from Jürgen Spitzmüller:
As we didn't report makeindex errors until my commit yesterday(17 Dec 2019), this
problem got unnoted (and the respective index entry was simply omitted).
Debian stable ships now TL18, we don't need to care for older TL versions.
Make CJK-ko documentation more robust (failed with non-TeX fonts and XeTeX,
if LatinModern is not installed system-wide).
The test sample for LyX bug 3059 triggers an error only with
"fontencoding auto-legacy" and can be safely ignored with non-TeX fonts.
I did not realize when I added this that it would mean that ALL
files detected as text/html would be handled this way.
Should fix#11087. But it is the right thing to do anyway.
Instead of wait(), use communicate(), as mentioned here:
https://docs.python.org/3/library/subprocess.html
Otherwise, the process seems to hang as cautioned in the above URL.
Also, use byte strings.
Removing this last citation in the manual is consistent with
032932cb, as well as other similar places in the text (it seems we
now reference documentation with a hyperlink instead of a citation).
The reader of CREDITS (GuiAbout.cpp) now ignores lines that start
with the number sign (#). This commit also introduces a commented
out header in CREDITS reminding any potential editor that all
changes will be overwritten by generate_contributions.py.
Graphics "height" is only the height above the baseline and thus not
what most people will expect. Also, using height can result in a
division by zero with rotation.
Use totalheight now since this means "height of the figure" (independent
of the baseline).
The custom options field can be used if height is really desired.
We handle this in conversion/reversion, respectively, so document
output will not change.
Hence, file format change.
Fixes: #9676
This is a modern implementation of endnotes building on LaTeX3 tools which
gets away with deficiencies of the endnotes package, has some extra features,
is localized, supports hyperref and is better customizable.
As this is a fairly new package requiring l3, we keep the old endnotes
module and provide this as an alternative.
This allows to support classes that don't use the Xpaper wording.
Add support for KOMA font (keyval) syntax on top of that.
Also support class-specific font and paper sizes in tex2lyx.
File and layout format change.
When the cursor in RTL text, icons for "depth-increment" or
"layout-toggle Enumerate" look wrong.
To fix this, the lfun "bidi" is introduced. "bidi ltr func" behaves
like "func" in LTR text, but is unknown in RTL text. "bidi rtl" does
the opposite. This allows to add two icons, but only have one icon
available. When no document is available, only LTR is assumed.
To make this work, the handling of unknown functions in toolbar has
been changed so this these functions can change dynamically their
existence.
The icon themes `default', `oxygen' and `classic' have been updated
accordingly.
Fixes bug #4451.
In particular, the directory frontends/qt4 is renamed to frontends/qt.
Many configurations file have to be updated. All mentions of qt4 in
the source have been audited, and changed to qt if necessary.
The only part that has not been updated is the CMake build system.
By default, the behavior is the same as before, except that the
language of new document is not unconditionally en_US anymore.
The new checkbox "Respect OS keyboard language" (off by default)
governs this behavior.
Update prefs format to 30.
This is a beautiful and feature rich sans and monospaced font family
designed by Erik Spiekermann and reminiscent to his famous (and
commercial) FF Meta.
This revives a patch by Uwe and extends it. Additional options to font
packages/fontspec can now be entered in Document Settings.
This is principally also true for TeX fonts, if the new TeXFont tag
MoreOptions is set. For the time being, I have only done this for
MinionPro, as a model and prove of concept.
Note that adding more TeXFonts requires a file format change,
respectively, and changes to tex2lyx (in the same way as I've done for
MinionPro).
This addresses #8226
This is a higher-level (non-TeX) font interface of babel that draws on,
but is supposed to be used rather than, fontspec with babel and XeTeX/
LuaTeX.
File format change.
Addresses: #11614
Nix (https://nixos.org) is a Unix package manager, which can be used to
install LaTeX on macOS. A peculiarity of Nix is that all packages are
installed into separate directories and the actual directory tree is
then constructed via symlinks.
This interacts badly with the way LyX currently detects files in the
TeX setup, because TeXFiles.py does not follow symlinks. Therefore,
almost nothing is found when using LyX together with Nix’ LaTeX.
Patch from Michael Roitzsch.
At the time, there were two competing packages for French language:
frenchle (aka french.sty), the historical one, and frenchb.ldf, the
new kid on the block. I was difficult to know which one was loaded by
babel, and frenchle did not define \og and \fg. Thus the need for our
own definition.
These were the good old days, but this time is gone for good.
It is now possible to specify in the lib/language file whether screen
rows can be broken anywhere (CJK languages) or only at work boundary.
Set WordWrap to false for the CJK languages (notice that japanese-cjk
had been forgotten before).
Moreover, remove a test for separators in row element that was not
really helpful.
Fixes part of ticket #10299.
FWIW this code is important for very old versions of lyx, older than 1.1.5 (released 19 years ago - 2000/06/06).
Funny fact of the day, byte strings do not behave as regular strings in python3 when taking and index.
To get a sub-string we need to pass a range, a integer index will not work as it happens in a regular string:
$ ipython3
...
In [30]: line
Out[30]: b'#This file was created by <mike> Tue Jan 25 10:36:51 2000'
In [31]: line[0]
Out[31]: 35
In [32]: line[0:1]
Out[32]: b'#'
The range notations works for both byte and regular strings in python 3, and it also works in python 2.
Thus the change is simple and effective. In any case I should confess that I was quite surprised by this. :-)
In python it is possible to compare tuples with a lexicographic order.
Take advantage of that since there is no need to resort to the C-trick of converting a version in hex format.
We need to set a dummy version in case we are using ImageMagick to ensure that version is always an integer 3-tuple.
It worked in python2 but not the way the authors imagined. Because hex always returns a string.
From python2:
>>> 1 > "2"
False
>>> "2" > 1
True
>>> "1" > 2
True
The rational is that an integer is always smaller than a string.
In python 3 this because it does not make sense to compare objects of different types.
Amends 7bb30286.
Tested cases are now handled fine.
(There are still many cases where the language support emulation
is too complex for lyx2lyx and manual fixes are required after
lyx2lyx conversion.)
Correct or activate some already present shortcuts, and add new ones
for easily obtaining the most common fixed size delimiters.
Pressing '*' after a delimiter will cycle through all sizes.
This is related to the bug #11457 saga and it was my fault.
The debug files should be written only be on if the argument --debug is passed and not --verbose as it was done by mistake.
This effectively allow paragraph breaks in insets only for cosmetic
reasons (e.g., to align contents on different lines).
This is the last change necessary for an enhanced covington gloss support
(which uses the new covington gloss ui)
In python 3 the colors need to be strings and not bytes:
This was the equivalent of
>> print("%s" % b"1")
"b'1'"
since the colors were bytes the call to dvipng was something like
dvipng -Ttight -depth -height -D 115 -fg "b'rgb 0.937255 0.941176 0.945098'" -bg "b'rgb 0.137255 0.149020 0.160784'" "lyxpreviewxBJEqm.dvi"
Note the "b'rgb after both -fg and -bg that wrecked havoc and thus dvipng failed. That was the difference between python2 and python3 calls.
The "Rows & Columns" optional submenu is more easily accessible in
the math context menu rather having to navigate to the "Edit" menu.
All possible accelerators are already taken, so use the space bar.
Same for BackTab. The outline-in was originally (31398779)
introduced to the command-sequence at the end. Probably it was
placed at the end to be conservative (i.e., so that it would only
change behavior where there was a no-op before).
This fixes#11576.
Following the suggestion in the Babel-Azerbaijani documentation,
we use the glyphs from the Cyrillic fonts for the Latin
text character. This fits better than IPA fonts (assuming there are matching
Latin and Cyrillic fonts specified) and also provides bold etc.
Latin Modern works fine with Japanese.
If "lmodern" is set for \font_roman the "lmodern.sty" package sets
sans-serif and teletype to Latin Modern fonts as well.
Therefore, \font_sans and \font_teletype are better left as "default"
(less preamble code) in the LaTeX source).
The "outer" language of the table was set to English leading to wrong output
(swapped columns and words with non-TeX fonts, wrong characters with TeX-fonts).
The algorithm in [c9be8bff74b233/lyxgit] did not
account for layout nesting. As a result, some parentheses
were swapped in English text parts
(e.g. around "(for Linux)" in he/Intro.lyx).
AsBabelOptions was introduced 2010 in [cc5dd37a2a05/lyxgit].
Since the re-orgianization and opening of the Babel package to
"contributed" language definitions in March 2013, it is no longer required.
Clean up after Part 1 [1361f1a45f23/lyxgit].
PDF outline improves with unicode/utf8 (although some chars still wrong).
Math: ERT for umlauts no longer required (now force-converted with unicodesymbols)
Thai works fine with LuaTeX, TeX-fonts and auto-legacy input encoding.
Remove obsolete preamble code,
we now load "fontenc" with Japanese documents by default.
since we auto-load "textcomp" now also for encodable characters,
we no longer need to force conversions defined in ts1enc.dfu.
FIXME: this is currently not working as intended, because
exclusion (force != ...) seems to fail with a list of encodings
and the characters are nevertheless force-converted.
This reverts commit c56adfc8ec.
I am reverting this because LyX uses an italic font for representing
mathalpha symbols and it is funny when a vertical arrow looks like
a leaning tower.
The unicodesymbols file should be audited in order to add the
mathalpha flag to all symbols having a math representation.
If the flag is missing, when pasting in mathed a given symbol
with a math definition, one gets \text{\ensuremath{\symbname}}
because LyX assumes that the symbol is a textmode one by default.
* do not ignore Japanese (platex) with system fonts.
* CJK can be used with XeTeX and TeX-fonts if the input encoding is utf8.
do not ignore.
* TODO: set non-TeX fonts and uninvert where possible.