Commit Graph

138 Commits

Author SHA1 Message Date
Enrico Forestieri
585da1de4a Fix typos in lib/symbols
This amends e8ee0100 and f96b99dc.
2020-07-24 12:57:00 +02:00
Jean-Marc Lasgouttes
f96b99dcb3 Implement properly \limits and \nolimits
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.
2020-07-20 23:20:26 +02:00
Jean-Marc Lasgouttes
e8ee0100fc Implement variable size bigops
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.
2020-07-17 22:25:18 +02:00
Thibaut Cuvelier
8f89768211 Fix in symbols handling: parse the XML entity with \def. 2020-06-19 08:22:56 +02:00
Thibaut Cuvelier
718eede94b MathML: Convert HTML entities to XML entities. 2020-06-18 19:37:08 +02:00
Enrico Forestieri
57272e837b Correctly display \dag and \ddag in mathed
They are synonyms for \dagger and \ddagger and are used
in Sect. 13.1 of the math manual.
2020-06-13 16:48:54 +02:00
Enrico Forestieri
5a80f7bb6a Add support for the doublestroke package
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.
2020-06-11 16:42:31 +02:00
Pavel Sanda
20ab606975 wasy10 font: fix glyphs codepoints 9,10,12,13.
92680495b follow-up.

pointer:	9 -> 170
bell:		10 -> 171
quarternote:	12 -> 172
halfnote:	13 -> 174

This should be the final one.
2018-03-26 21:54:46 +02:00
Pavel Sanda
0da254c811 stmary10 font: fix glyphs codepoints 10,12,13.
92680495b follow-up.

minuso: 10 -> 171
sslash: 12 -> 172
bbslash:13 -> 174
varcurlywedge: 9 -> 254 -> 170 (first move by Georg)
2018-03-23 10:18:02 +01:00
Pavel Sanda
92680495bb esint10: attempt on to fix empty symbol glyphs.
With advent of qt5 glyphs on codepoints 10, 12, 13 can't be shown anymore.

In this patch we copy the glyph pairs to new codepoints:
dotsint: 19->41 (this one was already moved by Goerg, now moving to the same block)
oint: 11->43
oiint:13->45

I couldn't find fix where both qt4 & qt5 would show correct results,
so this patch fixes qt5 situation, but breaks qt4, which hopefully
won't be needed for master.
Testing and debuging is somewhat tricky, becuse qt sometimes prefer to
load global fonts in /usr/share while ignoring the local git tree.

To be continued in other fonts.

Related reports:
https://www.lyx.org/trac/ticket/8493
https://bugreports.qt.io/browse/QTBUG-66266
2018-03-22 02:26:46 +01:00
Jean-Marc Lasgouttes
4a935ed768 Fix metrics of math characters with 0 width
It seems that QTextLayout does not handle properly a single character
with 0 width. This breaks drawing of things like \not.

Actually the problem had been worked around already in lib/symbol. The
work around can therefore by removed now.
[additionally, remove extra spacing from \mapsto, \Mapsto]
2017-01-20 10:53:06 +01:00
Guillaume Munch
f77e5733cf Set mathrel for a few more lib/symbols
Improve display of textmode macros in lib/symbols
2017-01-03 20:35:41 +01:00
Guillaume Munch
e02f287f8b Add InsetMathClass to the list of math completions 2016-12-20 00:15:59 +01:00
Guillaume Munch
a592f6dc06 Fix display of \slash inside different fonts
Also give slash a proper symbol
2016-11-21 00:08:11 +01:00
Guillaume Munch
a9eb87a89d Correct computation of math font size
Move math style to FontInfo and compute the font sizes for scriptstyle and
scriptscriptstyle according to standard proportions: 0.73 and 0.55.

This is simpler and more accurate. It also fixes the font size of
${\scriptscriptstyle {\textstyle A}}A$ which exposed the limitations of the
previous approach.
2016-11-21 00:02:35 +01:00
Guillaume Munch
a78c0457ac lib/symbols: fix \arrownot 2016-11-17 22:47:26 +01:00
Jean-Marc Lasgouttes
7335ee8ea3 Cleanup of lib/symbols
Try as far as possible to use the same definitions as in the LaTeX files.

An example of that is the definition and subsequent use of \joinrel,
\relbar and \Relbar.

This is mostly Guillaume's work.
2016-11-17 08:48:32 +01:00
Guillaume Munch
be836909c5 Display properly math characters that behave like symbols
* set up a replacement of *, -, and : by the adequate symbols (#9893)

* fix the wrong character selection and operator spacing in \text mode

* hide some internal symbols from the auto-completion.
2016-11-13 20:06:35 +01:00
Guillaume Munch
ad7e2435cf Fix display of some math symbols
* Fix spacing in lib/symbols after recent commits about math spacing, as well as
  older spacing issues (e.g. \Join).

* InsetMathKern now uses the same em value as other math length commands.

What is nice is that the kerning amount now matches the ones found in the
packages definition (modulo 10mu that lyx currently adds between relations).

Testcase: $\CheckedBox\LEFTcircle\RIGHTcircle\photon\gluon\vcentcolon\dblcolon\Coloneqq\eqcolon\models\hookrightarrow\bowtie\hookleftarrow\Join\APLinv\neq$
2016-11-13 20:04:51 +01:00
Guillaume Munch
143a177ad3 Copy bit of documentation from Georg's commit log 2016-10-27 21:28:49 +02:00
Guillaume Munch
120f03fd8e Copy bit of documentation from MathFactory.cpp 2016-10-27 21:10:18 +02:00
Enrico Forestieri
2aa930bbe8 Fix display and export of some latex macros
Fixes #9742.
2016-09-10 18:32:44 +02:00
Georg Baum
338cef2a97 Fix regression of 88603655
The XHTML entries were added in the wrong field, if they are given we need
extra xhtml requires. The order is inconsistent, there are discussions on the
list about that but for now I'll use the existing order to fix the export tests.

The format of the lib/symbols file does not support "" for empty strings.
One would have to use x for fields that are not set (this is a hack), but
actually we know how to fill the extra field.
2016-08-21 20:39:52 +02:00
Richard Heck
8860365565 Fix some symbols that are displayed incorrectly in MathML export. 2016-07-30 21:08:06 -04:00
Enrico Forestieri
7c82ab3205 Fix display of \leq, \geq, and \lnot in mathed
Commit 343a379b used a wrong syntax that was causing the display
of the above symbols as blanks.
2016-07-04 21:55:00 +02:00
Georg Baum
083e6bb8a4 Fix MathML for imaginary part
image is the HTML image element
2016-07-02 14:37:05 +02:00
Georg Baum
343a379b88 Move duplicated symbols to the macro section
This helps to find them via unicodesymbols as I do for some STIX experiments
2016-06-26 20:36:44 +02:00
Scott Kostyshak
3cecd4d393 Remove \it and other oldfonts from math completion
\it and the other oldfont commands are deprecated and the new forms
(e.g. \mathit) should be used instead. The old forms can lead to a
warning in TeX Live 2015 and an error in TeX Live 2016.

Note that with this commit only affects completion, so LyX still
supports displaying e.g. \it in math if the user enters it without
completion.

This is consistent with 24d01111.

Thanks to Guillaume for the patch.
2016-06-25 19:40:18 -04:00
Jean-Marc Lasgouttes
d30fe45f4c Fixup 1b2aad9 : Cleanup of spacing in mathed
Now that 5mu are added on each side of : (because it is a relation), there is no need to do the same in the definition of \vcentcolon.

This is closer to what is done in mathtools.sty.
2016-05-29 17:55:55 -04:00
Günter Milde
137575010c Correct some charid values in lib/symbols. Fixes #9823. 2015-11-13 14:01:32 +01:00
Georg Baum
08b2859663 Do not require esint for \int (bug 9498)
We also get a consistent look with amsmath, so require esint or amsmath.
When resolving alternatives, do also take into account whether the package
is available. For this to work, we also need to test for amsmath.sty (which
was surprisingly not yet done).
2015-05-16 12:29:54 +02:00
Enrico Forestieri
0fc9b08e4d Fix output of \lightning in math mode.
The \lightning symbol is text mode only. Hence, for using it in
mathed, it must be inserted in a text mode environment such as
\mbox, \text, etc. However, as it is not marked as textmode,
LyX "helpfully" encloses it in \ensuremath everytime one tries
to put it in a text mode environment, thus defying the countermeasure.
By declaring it textmode only, LyX stops doing that and thus it can be
correctly output by simply selecting it and hitting Ctrl-M.
2015-04-12 00:47:18 +02:00
Georg Baum
24d011117f Remove unsupported macros from autocompletion
We have some math macros that exist only because LyX can display them easily,
but which require user preamble code. These commands should not appear in
autocompletion, they are only there to make the formulas of users who actually
need thgese symbols and know what to put into the preamble more beautiful.
2015-03-10 20:53:56 +01:00
Enrico Forestieri
f496ec373b Solve the "soft-hyphen" (0x00ad) symbol problem.
After the str-metrics merge, the kludge for displaying symbols whose
code point corresponds to a soft-hyphen was not working anymore.
The solution is replicating the offending glyphs with index 0x00ad
at a different index. They were replicated at 0x00ac, whose glyph
was missing in all affected fonts.

However, this would not work by alone because, if a system font with
same family name exists, it would be picked up instead of the right one
(at least on non-Windows platforms). For this reason, the style of the
fonts has been changed from "Regular" to "Lyx", so that we can discriminate
the right font. However, this requires using at least Qt 4.8. If an
older Qt is used *and* a system font with same family name is already
available, the affected glyphs will all turn out on screen as the
"logical not" symbol.

I have also set the executable flag on the font files, because on Windows
they are loaded only in this case.

This solves #9229.
2015-01-21 14:12:42 +01:00
Georg Baum
cc87f81002 Fix html export of \ne (second part of bug #9372)
The fix consists of two parts: The needed infrastructure to assign HTML
entities to global math macros, and the actual fix for \ne and \neq.
2014-12-29 21:13:42 +01:00
Georg Baum
1be6f59612 Fix HTML output of \gg and \ll
This is a part of bug #9372. The remaining part (\ne) is not easy to fix,
since \ne is a predefined macro internally, so the HTML output is done for
the expanded macro, and we have no machinery to assign a HTML output to a
complete macro.
2014-12-28 18:54:19 +01:00
Uwe Stöhr
e4fb40b284 symbols: support the AMS commands \l(r)v(V)ert
- fixes bug #3538
2014-11-16 23:09:28 +01:00
Georg Baum
c1ac09e11f Fix bug #7954 (now really)
Thanks to maciejr we know now what the remaining problem was with bug 7954:
My unicode symbol fallback works fine, the problem was that a font named
"Symbol" is available on OS X, but it does not use the font-specific encoding
we expect: Almost all glyphs are at their unicode code point.
Therefore the bug is fixed by re-enabling the unicode workaround and blocking
the Symbol font on OS X.
2014-06-07 10:54:17 +02:00
Georg Baum
8b18bbd97e Add missing symbols and dependencies
Some wasysym and amsmath symbols were missing, and some amssymb dependencies
as well.
2013-01-10 21:22:55 +01:00
Georg Baum
45052f56ab Handle text-only wasy symbols correctly.
Some macros defined by wasysym.sty work only in text mode: They either
produce an error in math mode, or wrong output. These symbols are now marked
as text symbols, so that no \ensuremath is created for LaTeX export if they
appear inside \text{}, and the correct images are created.
2013-01-10 21:22:54 +01:00
Georg Baum
731c1f9ac4 Fix commandline export of \implies.
See the added comment in lib/symbols for details.
2013-01-08 21:51:09 +01:00
Georg Baum
13b288bc5e Remove duplicate symbols
There were found with -dbg mathed ans entering a math inset.
I kept the AMS versions, except leadsto, which is only an approximation in AMS.
hbar was simply defined twice with identical definitions.
2012-12-28 13:25:42 +01:00
Georg Baum
f96f9684ce Fix errors found by generate_symbols_images.py
llltr is a copy-paste error, the correct name is llless.
astrosun needs the wasysym package (the automatism does not kick in because
the font is cmsy, not wasy).
2012-12-16 14:44:49 +01:00
Georg Baum
f67cf6f4bb Add support for stmaryrd.sty (bug #8434)
The stmaryrd package adds support for lots of math symbols, using a font
designed to accompany the computer modern fonts. The changes in detail:

- Fix generate_symbols_list.py to work with stmaryrd.sty. It loooks like it
  was automatically translated from a perl version and never used.
- Generate the new symbols in lib/symbols using generate_symbols_list.py and
  add some manual adjustments
- Generate stmary10.ttf by a simple ttf export from stmary10.sfd with fontforge
- Add license info for stmary10.ttf
- Create a test file with all symbols from stmaryrd.sty. Actually it would be
  nice to have this for the other fonts as well.
- The mechanics: lyx2lyx, tex2lyx, font machinery etc.
2012-12-15 13:10:31 +01:00
Pavel Sanda
bdcf2b3f91 Add bugzilla comment from Georg to lib/symbols.
It is difficult to break through the undocumented format.
2012-12-02 16:46:49 +01:00
Georg Baum
6332326cf6 Load mathtools.sty automatically (bug #7949) and make lyx2lyx reversion
more robust.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40574 a592a061-630c-0410-9148-cb99ea01b6c8
2012-01-05 20:53:48 +00:00
Uwe Stöhr
cc4a7fe79d symbols: fix #7962, OK for branch too?
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40551 a592a061-630c-0410-9148-cb99ea01b6c8
2011-12-31 15:42:42 +00:00
Georg Baum
b7fbcd0b30 Partial support for mathtools.sty (part of bug #7949)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40521 a592a061-630c-0410-9148-cb99ea01b6c8
2011-12-18 17:50:43 +00:00
Julien Rioux
72cface90f Update links to the bug tracker.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40445 a592a061-630c-0410-9148-cb99ea01b6c8
2011-12-08 20:19:10 +00:00
Georg Baum
6954c542fb Generalize the esintoramsmath requirement:
Now you can also require a|b|c, and if any of the features is already used,
no other one will be loaded. The first feature wins if none is already used.
This is required for a part of bug #7811.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39884 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-18 19:32:02 +00:00