Commit Graph

113 Commits

Author SHA1 Message Date
Georg Baum
39329935f3 Parse \multicolumn in math (bug 396)
The math parser could not handle multicolumn grids. This is a problem because
there is no true ERT in math (everything is parsed).
Now multicolumn cells are parsed correctly. The display is also somewhat OK,
but apart from that any multicolumn related UI is missing. Since the file
format change is now done the UI can be added at any later point. The most
important part of bug 396 is now fixed: tex2lyx does not create invalid .lyx
files anymore for formulas containing \multicolumn.

I updated the tex2lyx test cases that produce correct output. tex2lyx does
still produce invalid output for the test cases which are not updated because
of the previous format change.
2015-05-17 13:43:37 +02:00
Jean-Marc Lasgouttes
66fa801e74 Improve support for on screen length calculation
The computation of length on screen depend in particular of the computation of the size of an em. Many places of the code used to rely on the width of the M character, which is not really correct:
http://en.wikipedia.org/wiki/Em_%28typography%29

In digital typography, the best value to use is the point size of the font.

* Implement FontMetrics::em(), which returns the value in pixels of the EM unit.
 Convert code to use it.

* Introduce Length::inPixel(MetricsBase const &), which takes the textwidth and em information from the MetricsBase object. Convert code to use it.

* Fix several places where Length::inPixel is used without a proper em value.

* add mathed_font_em() helper function. It should eventually be removed like some other functions in MathSupport.

* Add dummy implementation of FontMetrics to tex2lyx for linking purposes.
2015-03-26 17:10:15 +01:00
Georg Baum
c5782ff4bb Fix pasting insets into math (bug #9302)
The problem was that the conversion to plain text (which is used as an
intermediate step) requires for some insets a valid buffer pointer, but
insets in the cut stack do not have one. Now we use the same temp buffer
business as for copying to the external clipboard.
2015-01-19 21:37:01 +01:00
Jean-Marc Lasgouttes
e7a1cce551 Rename some LFUN names to match their text name
Also, rename copy-label-as-reference to label-copy-as-reference and update LFUNs.lyx accordingly.
2014-02-13 13:50:33 +01:00
Richard Heck
1b1f8dd235 Audit all the LASSERT calls, and try to do something sensible at
each failure.

There are several places I was not sure what to do. These are marked
by comments beginning "LASSERT:" so they can be found easily. At the
moment, they are at:

Author.cpp:105: // LASSERT: What should we do here?
Author.cpp:121: // LASSERT: What should we do here?
Buffer.cpp:4525:        // LASSERT: Is it safe to continue here, or should we just return?
Cursor.cpp:345:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:403:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:1143:                // LASSERT: There have been several bugs around this code, that seem
CursorSlice.cpp:83:     // LASSERT: This should only ever be called from an InsetMath.
CursorSlice.cpp:92:     // LASSERT: This should only ever be called from an InsetMath.
LayoutFile.cpp:303:                     // LASSERT: Why would this fail?
Text.cpp:995:           // LASSERT: Is it safe to continue here?
2013-04-25 17:27:10 -04:00
Georg Baum
c14b9e67bc Implement paste from LaTeX and HTML (bug #3096)
As discussed on the list. No automatic contents detection is done, the user
needs to use the special paste menu instead. I used the new TempFile class
for safe temporary file handling.
The documentation would go into section 2.2 of UserGuide.lyx, but I am not
allowed to edit that document.
2013-04-14 19:45:36 +02:00
Georg Baum
de5e348727 Fix bug #8468: Wrong import of UTF8 CJK.
Actually, the test case showed several problems:
- ERT insets did use layout "Standard", not "Plain Layout"
- The font scale was read correctly, but tex2lyx claimed that it did ignore
  the option "scaled=0.95"
- If a third argument of the CJK environment was given, it caused the whole
  environment to be put in ERT with a broken encoding. This is now fixed for
  the bug test case by using the \font_cjk header variable, but the encoding
  problem still exists for unsupported encodings. I'll file a separate bug
  for that.
- The CJKutf8 package was not handled in the preamble parsing. Therefore the
  chinese comment in the preamble was read with a wrong encoding, and guessing
  the document language did not work.
The new file CJKutf8.tex was created by copying and modifying CJK.tex, but
unfortunately it is impossible to tell git to inherit the history of CJK.tex
for the new file (search the web for git svn copy if you want to know details).
2012-12-30 20:52:49 +01:00
Lars Gullik Bjønnes
43f6b1672b Use empty() to check empty and non-empty'ness not size()
Also add FormatList::empty().
2012-10-27 01:25:38 +02:00
Jean-Marc Lasgouttes
9059843121 Simpler fix for undo support when entering \hline in an equation
* Avoid undo step when using backspace in macro mode
 * Use recordUndoInset when entering macro mode (if one enters something like \hline, the outer inset itself will be modified)
 * Use recordUndoInset when pasting in an INsetMathGrid (same reason as above)
2012-04-17 22:21:45 +02:00
Jean-Marc Lasgouttes
201dcc8ec3 Revert "Fix undo of entering \hline"
This reverts commit 1fa39e1f95.
2012-04-17 22:21:45 +02:00
Georg Baum
1fa39e1f95 Fix undo of entering \hline
It was broken with 6d75800f5d as noticed by Enrico. The fix is to use undo
groups (thanks Jean-Marc).
2012-04-08 19:15:49 +02:00
Georg Baum
6d75800f5d Fix bug #6936.
If \hline is entered, do not create an unknown inset, but increase the number
of hlines of the current row if that is allowed. The same idea is applied to
copy-paste (not part of the bug report).
This is also a test for committing via git.
2012-03-25 11:16:32 +02:00
Georg Baum
76962d5515 Fix on-screen alignment of multline equations
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39882 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-18 18:46:57 +00:00
Georg Baum
8356e9e2c0 remove dead code
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38638 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-08 10:56:53 +00:00
Vincent van Ravesteijn
7e566747fd Fix bug #7351 (oart 2). Missing update.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38131 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-29 17:09:46 +00:00
Vincent van Ravesteijn
bd3d6369c2 Fix bug #7106: iterator out of range while copying multi-row math.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37108 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-04 19:43:52 +00:00
Stephan Witt
ab9de435b4 fix typo: double semicolon at line end of code
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36985 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-21 15:28:55 +00:00
Vincent van Ravesteijn
36986009d1 Fix bug #4849: Split cell always enabled in (context) menu.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36622 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-30 09:32:30 +00:00
Uwe Stöhr
f69929850d InsetMathGrid.cpp: whitespace
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36471 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-25 05:04:38 +00:00
Richard Heck
da1e7e14ce Squash warning.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36159 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-06 03:17:23 +00:00
Enrico Forestieri
79ef98205d Fix bug #7019 (Math labels should not be escaped on saving)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36156 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-06 02:53:29 +00:00
Richard Heck
5577e877bb Try to move all updateBuffer() calls to a central location. We now use
DispatchResult to store a flag that tells us whether we need a buffer
update or not. 

So: If you find a missing one, go to an appropriate place in the
dispatch and call cur.forceBufferUpdate() or, if you don't have a cursor
but do have a DispatchResult, call dr.forceBufferUpdate().

There is one remaining call I could not move, in
TextMetrics::redoParagraph. But this looks like an emergency call when
the macro context has not been set. There are also a couple calls that
are connected with buffer creation that I commented out, since the same
call is done again almost immediately. But I'm not positive about those.

Now the nice thing would be to do the same for updateMacros().


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34826 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-09 14:37:00 +00:00
Enrico Forestieri
d546a9b286 Revert r34761 because that was not the right fix that is going to be
committed shortly.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34762 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-05 12:25:48 +00:00
Enrico Forestieri
7eeb664bbb Refine fix for #6595. Don't add \\ to the last empty line of substack,
tabular and xymatrix.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34761 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-05 10:03:56 +00:00
Enrico Forestieri
9536afe742 Fix bug #6595: empty last row of matrix or eqnarray vanishes.
This patch essentially reverts r30795 and also provides the correct fix
for #2969.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34751 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-04 16:31:53 +00:00
Peter Kümmel
61b2bd5e7f Using "using namespace std" with msvc10 makes also std::tr1::bind visible and generates conflicts with boost::bind.
Solution: don't use boost::bind for msvc10 (could also be extended  to several GCC versions)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34257 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-22 11:16:58 +00:00
Richard Heck
b79d8e5e2d Make members of FuncRequest private, per the FIXME there. Again, this is
basically a massive renaming, with no real changes.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34106 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-09 19:00:42 +00:00
Richard Heck
4c7a5d0024 This is just a giant renaming of member variables in FuncRequest,
preparatory to making them private.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34105 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-09 18:15:17 +00:00
Richard Heck
96390e0ff7 Change semantics of two-arg htmlize to make more consistent with other
functions.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33975 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-31 19:17:06 +00:00
Richard Heck
f835e2a6f9 Cases for HTML.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33950 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-30 02:57:05 +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
Abdelrazak Younes
321f6031af Fix bug #6564. The cmd status retrieval is quite broken within tables (math or text).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33639 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-06 14:19:21 +00:00
Richard Heck
d65020b293 s/updateLabels/updateBuffer/g, per a suggestion of Abdel's.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33613 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-03 22:13:45 +00:00
Abdelrazak Younes
b5049e769b * InsetTabular cleanup:
- proper message passing for all tabular features
- properly define which feature needs an argument

* replace LFUN_TABULAR_FEATURE with LFUN_INSET_MODIFY
- The math tables are also affected. In the future a common base class
between math and text table will solve this inconsistency.
- There is a hack in GuiApplication in order to not rename the toolbar
icons. This will have to be cleaned up with a general icon naming for
LFUN_INSET_MODIFY... to be discussed.

* Tabular Dialog:
- big cleanup, lots and lots of bug fixing here
- migrated to InsetParamsWidget


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33495 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-18 08:28:46 +00:00
Jürgen Spitzmüller
7bbd67eb26 * Implement updateLabels in mathed and add the MathRef insets to the references cache.
This fixes bug #1560.

The diverse setBuffer / updateLabels calls need auditing. See FIXMEs.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33249 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-28 17:37:22 +00:00
Richard Heck
14001c49fe Fix up the InsetMathGrid output: detect better if we have a table, and
use appropriate tags.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32714 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-31 21:00:49 +00:00
Richard Heck
c060a85d81 Revert r32684, per Andre's suggestion.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32689 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-31 15:46:39 +00:00
Richard Heck
8a0134cc8c Introduce a return value for mathmlize(). We will need this to be able
to defer labels.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32684 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-31 03:50:12 +00:00
Richard Heck
2635724b57 In a normal grid, we can just use <mrow>.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32547 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-16 15:50:31 +00:00
Vincent van Ravesteijn
fd25e06129 Revert some unwanted debug info.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32146 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-22 02:09:10 +00:00
Vincent van Ravesteijn
cd514c458a Fix bug #6310: Incorrect latex for sparse matrices with vertical lines.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32145 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-22 02:03:09 +00:00
Richard Heck
90f392425f FIXME
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31984 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-14 16:58:32 +00:00
Abdelrazak Younes
ff4460603e Make Buffer argument mandatory in most of the InsetMath based class... boring work...
Math manual loads and save correctly it seems but expect some instability period.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31898 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-08 11:45:46 +00:00
Enrico Forestieri
a1a34443ef Fix bug #5530: LyX expansion in math-macro overwritten by default one.
This patch initializes the buffer_ member of a MathHull inset in most
(but not all) cases. The problems with buffer_ should be greatly
allievated now, but there still can be some corner case.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31873 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-06 15:18:48 +00:00
Vincent van Ravesteijn
11c3f2d1bc Fix the math output mess I caused in r30822.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30860 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-04 20:34:53 +00:00
Vincent van Ravesteijn
13bb684eb0 Improve LaTeX output of arrays in math. Always output a '\n' except in the case that the line is completely empty.
see also:
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg153349.html

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30822 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-01 22:03:12 +00:00
Vincent van Ravesteijn
b62b366a67 Fix bug #2969: Double labels appear on empty lines of multi-line equations.
This reverts part of r10553. There, an extra '//' was added when the last line was empty. However, this really makes an extra line and that is visible when the lines have a line number. The bug #2067 that would have been fixed by this does not seem to 'exist' anymore.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30795 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-26 20:25:11 +00:00
Enrico Forestieri
d178fabe24 Refinements to fix for bug #6041.
- Fix display of centered vertical alignment status.
- Avid else branch and simply return early (conforms to the used style).
- Smash unnecessary debug output.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30372 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-05 13:36:34 +00:00
Enrico Forestieri
0b219d2541 Fix bug #6041: "tabular-feature align-" in a math-matrix.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30363 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-05 00:24:17 +00:00
Enrico Forestieri
0a90c42b86 Fix bugs #6047, #4043, and #5394.
6047: Lyx 1.6.3 unable to typeset the third chemical equation of the
      file mhchem.lyx (package mhchem)
4043: mhchem support
5394: support for the mhchems's \ce command
The \ce and \cf insets are text mode environments that allow entering
spaces and mathmode commands. LyX leaves them alone and doesn't try to
be smart, i.e., the behaviour is exactly the same we had in the old days
with text-in-math mode environments, before the introduction of the
\ensuremath and \lyxmathsym macros. This means that in those environments
one has to know what he is doing, as LyX will not offer any protection.
The hack of enclosing \ce and \cf in a \text{} environment in order to
be able to enter spaces is no longer necessary.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30338 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-03 00:05:58 +00:00