Commit Graph

68 Commits

Author SHA1 Message Date
Thibaut Cuvelier
7e7f9ebae8 MathML: use the right has_limits_ in InsetMathScripts.
Fixes #12295. Details in the ticket.
2021-05-31 23:26:25 +02:00
Thibaut Cuvelier
3ab6633b86 MathML: add M/ETagInline.
By lynx: https://www.lyx.org/trac/attachment/ticket/12221/0003-tag-insertion-unification-for-bold-char-delim-dots-exfunc-.patch
2021-05-25 03:34:52 +02:00
Enrico Forestieri
3cf5a71463 Amend [5ed01cd6/lyxgit]
This commit takes into account also the case in which a prime follows
a superscript, a case not explicitly mentioned in bug 1633.
This case has to be accounted for in a different way. We cannot look
ahead when exporting, so we simply tell TeXMathStream to output an
empty group if we just output a superscript and a prime comes next.
2021-02-06 20:07:31 +01:00
Enrico Forestieri
fece5d4f37 Correctly terminate a user math macro in certain circumstances
If a macro has only optionals and none is specified and a [ immediately
follows, we have to terminate the macro with {}, otherwise what follows
is taken to be an optional argument.

Fixes #11665.
2021-01-07 00:57:36 +01:00
Thibaut Cuvelier
649755f481 Rename WriteStream to TeXMathStream. 2021-01-02 19:52:23 +01:00
Thibaut Cuvelier
ecafea8227 Rename MathStream to MathMLStream. 2021-01-02 19:52:23 +01:00
Yuriy Skalko
43b16548b4 Cleanup headers 2020-11-25 02:43:16 +02:00
Yuriy Skalko
f953d88c88 Simplify constructors 2020-11-20 15:57:26 +02:00
Yuriy Skalko
9b1dc338b2 Simplify Changers 2020-11-12 14:22:00 +02:00
Yuriy Skalko
715b8cda54 Refactoring based on cppcheck suggestions 2020-10-03 13:39:51 +02:00
Jean-Marc Lasgouttes
dd65a97b55 Pass parameters as const references when possible
Fixes some cppcheck warnings.
2020-10-02 18:56:01 +02:00
Enrico Forestieri
7441172d4d Assure correct spacing of colored items in mathed
When coloring a non-ordinary math atom, explicitly apply its
math class, so that to leave unchanged the spacing around it.
Fixes #11827.
2020-08-02 18:58:40 +02:00
Thibaut Cuvelier
718eede94b MathML: Convert HTML entities to XML entities. 2020-06-18 19:37:08 +02:00
Thibaut Cuvelier
054bdc5d18 MathML stream allows for name spaces. 2020-06-18 19:32:51 +02:00
Enrico Forestieri
e763f90244 Revert [60ac25a4/lyxgit], [30f16463/lyxgit], and part of [e8f480e7/lyxgit]
As evidenced in #11552, at loading time there is no way to tell
whether braces were added by LyX with certainty. However, after
[503f7db2/lyxgit], LyX does not automatically removes brace insets.
So, in case one faces the problems mentioned in [e8f480e7/lyxgit],
the workaround of adding a brace inset now will not be frustrated.
In essence, after [503f7db2/lyxgit], the real fix for #11552 would
have been reverting the part in [e8f480e7/lyxgit] that was adding
the braces on output.
2019-04-26 12:34:29 +02:00
Enrico Forestieri
30f1646369 Write braces around macros only when actually needed
When a macro with optionals appeared inside the optional argument of
another one, the onscreen display and latex output were wrong. This
issue was addressed at [e8f480e7/lyxgit] by enclosing in braces macros
with optional arguments. However, this was done even when the macro
with optionals was in a non-optional argument of another macro.
This commit limits the bracing to the cases where it is really needed
and allows to address some particular issues evidenced in #11552.
2019-04-25 11:11:51 +02:00
Enrico Forestieri
9755371729 Fix conversion of math braces to html 2019-01-02 09:49:59 +01:00
Richard Heck
75bfed5507 Fix trailing whitespace in cpp files. 2017-07-03 13:53:14 -04:00
Enrico Forestieri
e8f480e7c2 Fix display and output of math macros with optional arguments
This is a long standing issue, present since the new math macros
inception in version 1.6. It manifests as a display issue when a
macro with optional arguments appears in the optional argument of
another macro. In this case the display is messed up and it is
difficult, if not impossible, changing the arguments as they do not
appear on screen as related to a specific macro instance. It also
manifests as latex errors when compiling, even if the latex output
is formally correct, due to limitations of the xargs package used
to output the macros. Most probably, both aspects have the same
root cause, as simply enclosing in braces the macro and its
parameters solves both issues. However, when reloading a document,
lyx strips the outer braces enclosing a macro argument, thus
frustrating this possible workaround.

This commit solves the display issue by correctly accounting for
macros with optional arguments nested in the argument of another
macro, and circumvents the xargs package limitations causing errors
by enclosing in braces the macros with optional arguments appearing
in the argument of an outer macro when they are output. This means
that when loading an old document with such macros and saving it
again, the macro representation is updated and will have these
additional braces. However, as such braces are stripped by lyx on
loading, there is no risk that they accumulate.

See also this thread:
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg197828.html
2016-12-01 18:02:47 +01:00
Guillaume Munch
148b3ae773 Move class definitions inside main class
Prepare for following commits.

This prevent's forward-declaration, but including the TexRow header should be
inexpensive.
2016-10-22 23:24:01 +02:00
Enrico Forestieri
8d5899aaf3 Fortify math insets against ulem commands
It should be now possible underlining or striking out any kind
of math inset containing any math construct indigestible to ulem.
While this was already possible for inline math insets, they could
have break if an aligned environment was used, for example.
This is now possible also for diplay math. Even if this can be
nonsensical and not visually perfect, at least no latex errors
should be generated if one tries to.
2016-10-21 01:35:39 +02:00
Enrico Forestieri
261e7ae9ce Strike out (in the output) deleted display math with track-changes
Showing deleted display math by enabling "Show Changes in Output" was
only possible with dvi (through dvipost). Although LyX strikes out
such formulas on screen, it was impossible obtaining an output
directly using pdflatex (or other engines producing pdf) because
ulem cannot cope with display math material and gives errors.
The solution is to strike out by ourselves such deleted formulas.
I took into account several options. One of them would produce
an output similar to dvipost (which strikes out each element), but
would have required much more changes in the output routines.
Eventually, I opted for using tikz, which gives a more clean
output (as it requires to simply adding a preamble and a postamble
to the latex code of any displayed math, instead of a mark up
tailored to each particular math construct). The look of the pdf
output is similar to the way LyX strikes out the equations on screen.
2016-10-17 03:25:35 +02:00
Guillaume Munch
670efa8f64 Rationalise includes
Modifying TexRow.h or texstream.h no longer triggers the recompilation of the
complete source tree.
2016-07-04 02:42:17 +02:00
Richard Heck
04b8f5cdc4 Use symbols file to lookup entities for delimiters. Fixes bug #8280.
Based upon work by Josh Hieronymus.
2016-06-29 22:39:42 -04:00
Guillaume Munch
52dd5dc84f Fix compilation with gcc 4.6 part II 2016-06-15 14:42:34 +01:00
Guillaume Munch
d2d243d77f Simplify the TexRow information for mathed output
Replace the manual manipulation of a stack of RowEntries with a Changer
function. When I introduced the stack of RowEntries, I did not know about the
Changer mechanism.
2016-06-13 08:46:15 +01:00
Guillaume Munch
460a764b7f Adding TexRow information on math latex output (#4725)
WriteStream is now built from an otexstream instead of an odocstream, and
therefore counts lines in a TexRow. Calls to TexRow are added in relevant places
in math insets.

This finishes adding line tracking for math in the source panel and for forward
search.
2015-10-19 06:55:17 +01:00
Richard Heck
740e89de17 The mode setting stuff wasn't working properly for XHTML, so this patch
simplifies it and hopefully does get it working.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38195 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-01 22:34:40 +00:00
Richard Heck
ff79d11bb7 Style.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36398 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-19 13:27:51 +00:00
Richard Heck
b9e83e76ca Another warning.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36387 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-18 22:02:46 +00:00
Richard Heck
60da156ffd Squash some warnings.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36386 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-18 22:01:54 +00:00
Enrico Forestieri
a1927c00d2 Correctly set the breakline guard.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36381 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-18 21:15:59 +00:00
Enrico Forestieri
8cd4ef18c8 Make sure that no blank line can (unintentionally) slip in when exporting
math to latex. This also fixes bug #6733.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36371 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-18 14:05:50 +00:00
Enrico Forestieri
04fb3f0d06 Remove a MathStream and HtmlStream member which is used nowhere.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36368 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-18 09:58:35 +00:00
Richard Heck
9ee805185c Fix up the math stream.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33969 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-31 18:57:37 +00:00
Richard Heck
27add8d945 HTML for math boxes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33948 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-30 02:37:05 +00:00
Richard Heck
9e34cf8186 Fix math char stuff.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33940 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-30 00:18:08 +00:00
Richard Heck
30b18aec37 The beginnings of pure HTML output of math, for our internal XHTML
output routines. The idea is that in some cases people may not want to
use MathML, so we are going to try to give options.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33936 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-29 22:52:13 +00:00
Enrico Forestieri
271d53fdd0 Fix bug #3325: Labels with special characters in equations do not work
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33325 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-04 19:08:17 +00:00
Richard Heck
7a32a8489a Allow MTag to take attributes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33148 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-21 21:06:29 +00:00
Enrico Forestieri
19c935ca37 Fix XHTML output on systems where char_type is not typedef'd to wchar_t.
See docstream.h for the explanation.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33027 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-14 13:29:13 +00:00
Richard Heck
eb17e9c362 MathML for MathBox and such.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32712 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-31 20:36:34 +00:00
Richard Heck
19cd5f0e82 Fix MathML output for MathBox, as suggested in the FIXME.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32711 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-31 19:49:29 +00:00
Richard Heck
3915c2d01a Fix some issues with textmode. We'll let SetMode() handle as much of
this as possible for us.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32708 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-31 19:35:56 +00:00
Richard Heck
4479a7f689 A simple version of ModeSpecifier for MathStream.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32702 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-31 18:37:09 +00:00
Richard Heck
13b88d6166 Fix MathML output of wide characters.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32699 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-31 17:31:13 +00:00
Richard Heck
98e6886dc4 Provide for the possibility of deferred material, per Andre's excellent
suggestion. Now I wish I'd done XHTMLStream the same way....


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32691 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-31 15:52:57 +00:00
Enrico Forestieri
1535e4b825 Fix the rest of bug #6284.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31694 a592a061-630c-0410-9148-cb99ea01b6c8
2009-10-23 15:00:36 +00:00
Jürgen Spitzmüller
89e7f60e1d Catch encoding exception when performing instant preview on an uncodable char (bug 6116).
* MathStream{.cpp, h}:
	- replace bool dryrun() by enum output that also knows whether the stream is for instant preview
* InsetMathHull.cpp:
	- tell the stream whether we use it for instant preview.
* MathString.cpp (write):
	- gracefully catch encoding exception for instant preview.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30895 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-07 05:25:22 +00:00
Pavel Sanda
34fc56c9bc Hopefully fixes #6082
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg153098.html

Juergen?


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30581 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-14 18:06:19 +00:00