Commit Graph

89 Commits

Author SHA1 Message Date
Enrico Forestieri
10e1f90883 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-12 23:58:32 +02:00
Juergen Spitzmueller
aede56fa20 Strip polyglossia options from pdf string
Fixes #11813

(cherry picked from commit f9999039ac)
2020-04-05 17:29:04 +02:00
Juergen Spitzmueller
5679dc5c6f Proper number ordering with luabidi
As opposed to bidi (XeTeX), luabidi (LuaTeX) does no automatic reordering,
so we need to use \\LR{}

(cherry picked from commit 1d0929b5d9)
2019-07-11 17:46:55 +02:00
Juergen Spitzmueller
485f070887 Fix nesting problem with numbers in RTL text
\textcolor must precede any \beginL

Fixes: #6283
(cherry picked from commit 114ebf00c4)
2018-07-22 10:16:32 +02:00
Juergen Spitzmueller
36096435e5 Fixes for nested ulem commands
1. \uuline must be on top of \sout
2. \uwave in \xout needs a hack to compile

(cherry picked from commit 9fd94a2dd0)
2018-05-05 10:09:04 +02:00
Juergen Spitzmueller
749ff439df No manual intervention needed for polyglossia (bidi) and RTL numbers.
See https://tex.stackexchange.com/a/256837/19291

(cherry picked from commit 00d4144352)
2018-02-27 08:59:02 +01:00
Juergen Spitzmueller
7668633b94 Properly handle color none.
Fixes: #5870
(cherry picked from commit 9a1eeb8cbb)
2018-01-04 08:23:04 +01:00
Christian Ridderström
e30f3d76d2 Bulk cleanup/fix incorrect annotation at the end of namespaces.
This commit does a bulk fix of incorrect annotations (comments) at the
end of namespaces.

The commit was generated by initially running clang-format, and then
from the diff of the result extracting the hunks corresponding to
fixes of namespace comments. The changes being applied and all the
results have been manually reviewed. The source code successfully
builds on macOS.

Further details on the steps below, in case they're of interest to
someone else in the future.

1. Checkout a fresh and up to date version of src/

    git pull && git checkout -- src && git status src

2. Ensure there's a suitable .clang-format in place, i.e. with options
   to fix the comment at the end of namespaces, including:

    FixNamespaceComments:                           true
    SpacesBeforeTrailingComments:                   1

and that clang-format is >= 5.0.0, by doing e.g.:

    clang-format -dump-config | grep Comments:
    clang-format --version

3. Apply clang-format to the source:

    clang-format -i $(find src -name "*.cpp" -or -name "*.h")

4. Create and filter out hunks related to fixing the namespace

    git diff -U0 src > tmp.patch
    grepdiff '^} // namespace' --output-matching=hunk tmp.patch  > fix_namespace.patch

5. Filter out hunks corresponding to simple fixes into to a separate patch:

    pcregrep -M -e '^diff[^\n]+\nindex[^\n]+\n--- [^\n]+\n\+\+\+ [^\n]+\n'  \
        -e '^@@ -[0-9]+ \+[0-9]+ @@[^\n]*\n-\}[^\n]*\n\+\}[^\n]*\n'         \
        fix_namespace.patch > fix_namespace_simple.patch

6. Manually review the simple patch and then apply it, after first
   restoring the source.

    git checkout -- src
    patch -p1 < fix_namespace_simple.path

7. Manually review the (simple) changes and then stage the changes

    git diff src
    git add src

8. Again apply clang-format and filter out hunks related to any
   remaining fixes to the namespace, this time filter with more
   context. There will be fewer hunks as all the simple cases have
   already been handled:

    clang-format -i $(find src -name "*.cpp" -or -name "*.h")
    git diff src > tmp.patch
    grepdiff '^} // namespace' --output-matching=hunk tmp.patch  > fix_namespace2.patch

9. Manually review/edit the resulting patch file to remove hunks for files
   which need to be dealt with manually, noting the file names and
   line numbers. Then restore files to as before applying clang-format
   and apply the patch:

    git checkout src
    patch -p1 < fix_namespace2.patch

10. Manually fix the files noted in the previous step. Stage files,
    review changes and commit.
2017-07-23 13:11:54 +02:00
Richard Heck
75bfed5507 Fix trailing whitespace in cpp files. 2017-07-03 13:53:14 -04:00
Enrico Forestieri
71f532db4b Do not output a \par inside a local language switch command 2017-06-04 03:14:14 +02:00
Enrico Forestieri
55bbd67cde Fix bugs #10650 and #9598 2017-06-03 17:26:05 +02:00
Enrico Forestieri
2a5bb7ab67 Fix bug #10685
Make sure to properly nest \begin{lang} and \end{lang} tags even
when no language package is selected. In this case, LyX assumes
that babel is being used, so the language names might be wrong
if the user arranged for using polyglossia in the preamble.
Nevertheless, we assure that the produced output is syntactically
correct, so that by adding proper preamble code a correct output
is still possible.
2017-05-30 17:57:37 +02:00
Uwe Stöhr
e575e7eebd Add support to cross out characters
- adds support for the command \xout of the LateX package ulem
- fileformat change
2017-04-05 00:01:19 +02:00
Juergen Spitzmueller
e83e64c447 Do not output bidi direction macros in passthru context
Part of #10434.
2016-10-21 10:40:19 +02:00
Enrico Forestieri
7e3494c293 Also track local language switches
Until now this was not done for essentially two reasons. The first
one is that local switches are used for short text insertions, so that
they are unlikely crossing environment boundaries. The second one
is that if we have to close a language at the end of an environment
we would be missing the right termination command. As this last
issue can be overcome by simply storing in the stack the current
nest level with a sign denoting the kind of switch, there is no
reason anymore not to track also local languages switches.
Also factor out some commonly used constructs in order to improve
readability.
2016-09-27 23:00:29 +02:00
Enrico Forestieri
4508a7f855 No need to clutter runparams... 2016-09-25 08:56:12 +02:00
Enrico Forestieri
8c14d9e041 Correctly track opened polyglossia languages
A language switch may also occur outside of output_latex.cpp, apparently.
2016-09-25 08:20:34 +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
Günter Milde
faadac9f4a Remove wrong FIXME.
Code at this place calls "switchEncoding" which takes care of not-switching
if there is only one inputenc used in the document.
2015-11-21 23:08:54 +01:00
Günter Milde
0eb9477be7 Fix 480937a103708a651/lyxgit, second attempt.
Prevent encoding changes whenever the TeX engine is XeTeX or LuaTeX,
as XeTeX/LuaTeX use only one encoding per document:

* with useNonTeXFonts: "utf8plain",
* with XeTeX and TeX fonts: "ascii" (inputenc fails),
* with LuaTeX and TeX fonts: only one encoding accepted by luainputenc.

+1 no needless encoding switches
+1 runparams.encoding matches the correct encoding at any time
+1 less complicated code.

-1 there may still be problems with CJK (possibly impossible to
   solve for Xe/LuaTeX with TeX fonts).

For LuaTeX & TeX fonts, the complete document uses the encoding
of the global document language.

See also #9740.
2015-11-12 16:55:04 +01:00
Jean-Marc Lasgouttes
67907d2f12 Add missing break in switch
Coverity issue 102058
2015-09-12 22:29:25 +02:00
Uwe Stöhr
e35bb3126a support for all default colors of the package xcolor
fileformat change
2015-05-14 22:23:44 +02:00
Juergen Spitzmueller
9aa0fe91f6 ulem commands can be nested. 2014-04-21 11:51:58 -04:00
Juergen Spitzmueller
969f49c2c5 Fix unbalanced bracket problem with CJK
The bug was introduced with commit [47f7d447/lyxgit], where the unnecessary trailing bracket in CJK environments was suppresed, but not the preceding bracket (which is only output if CJK is a secondary language).
2013-10-11 12:19:41 +02:00
Juergen Spitzmueller
6e69a61d00 Fix problem with unbalanced braces in XeTeX output (bug #8765) 2013-07-13 22:44:09 +02:00
Juergen Spitzmueller
c2cea31aea Properly nest ulem commands within other font changes
This reverts the wrong fix to #8424 which caused #8733 and fixes both problems properly
2013-07-13 22:43:39 +02:00
Juergen Spitzmueller
b65d5f2012 Handle secondary babel languages when main language is CJK 2013-05-20 11:07:47 +02: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
Juergen Spitzmueller
0dd741e4da Load babel with English-only documents (bug 8423) 2012-12-23 11:34:38 +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
Georg Baum
99ffb47cc3 Replace some hard coded numbers with names
And prevent a crash if LaTeX is accidentally output for a math font.
2012-12-09 13:05:19 +01:00
Uwe Stöhr
63295f9dc5 Font.cpp: fix bug #8424
We must group the content which should be changed in size wit a pair of braces because the LaTeX size commands are otherwise switches. We already do so for many case, but not for the case that a size command is inside another command. This patch adds now always a brace pair around the selected text which is the safest method.
2012-11-19 01:13:37 +01:00
Juergen Spitzmueller
1db9ff9b1a Add a way to surpass special English treatment in useBabel
Normally, we do not load babel when English is the only language. However, if we check if babel is used from Font::validate, we need to surpass this test, else no secondary language is registered if English is the main language.
2012-08-08 17:02:12 +02:00
Juergen Spitzmueller
4c2ae219e1 whitespace 2012-06-24 15:15:31 +02:00
Uwe Stöhr
47f7d44747 fix bug #8215
Font.cpp: CJK parts must not have a closing brace because they are within an environment
2012-06-24 14:42:23 +02:00
Juergen Spitzmueller
f42c9e50df fix bug #8211: \setotherlanguage not set for non-babel languages 2012-06-23 13:50:40 +02:00
Enrico Forestieri
1ef605f625 Introduce a wrapper class for odocstream to help ensuring that no
blank lines may be inadvertently output. This is achieved by using two
special iomanip-like variables (breakln and safebreakln) in the lyx::
namespace. When they are inserted in the stream, a newline is output
only if not already at the beginning of a line. The difference between
breakln and safebreakln is that, if needed, the former outputs '\n'
and the latter "%\n".
In future, the new class will also be used for counting the number of
newlines issued. Even if the infractrure for doing that is already in
place, the counting is essentially still done the old way.
There are still places in the code where the functionality of the
class could be used, most probably. ATM, it is used for InsetTabular,
InsetListings, InsetFloat, and InsetText.
The Comment and GreyedOut insets required a special treatment and a
new InsetLayout parameter (Display) has been introduced. The default
for Display is "true", meaning that the corresponding latex
environment is of "display" type, i.e., it stands on its own, whereas
"false" means that the contents appear inline with the text. The
latter is the case for both Comment and GreyedOut insets.
Mostly, the only visible effects on latex exports should be the
disappearing of some redundant % chars and the appearing/disappearing
of null {} latex groups after a comment or lyxgreyedout environments
(they are related to the presence or absence of a space immediately
after those environments), as well as the fact that math environments
are now started on their own lines.
As a last thing, only the latex code between \begin{document} and
\end{document} goes through the new class, the preamble being directly
output through odocstream, as usual.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37360 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-29 02:41:13 +00:00
Pavel Sanda
f5ad7f949e Kill leading blankspaces in new strings, its weird to encounter them in .po.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36531 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-27 03:04:53 +00:00
Jürgen Spitzmüller
0cd51c41a8 * Font.cpp: let's compare the lyx name here. Polyglossia name can be ambigouos (cf. "german" [german] vs. "german" [ngerman]).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36439 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-23 10:18:46 +00:00
Jürgen Spitzmüller
bd3dcea835 * fix bug #7062. How stupid of me!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36438 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-23 09:59:31 +00:00
Jürgen Spitzmüller
7cbeed2e40 * Introduce polyglossia support (bug 6576).
Please test this.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36433 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-22 12:10:16 +00:00
Stephan Witt
dec437fbac add cache of spell checker results to speed up native speller engine on macosx
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35362 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-14 05:24:04 +00:00
Uwe Stöhr
72292b98a6 support for formal math script
- fileformat change
- fixes #2340

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34941 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-17 15:51:11 +00:00
Vincent van Ravesteijn
1cf4251488 Fix LyX after r31772 (bug #6294).
The declaration should match the definition.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31806 a592a061-630c-0410-9148-cb99ea01b6c8
2009-10-30 14:57:21 +00:00
Jean-Marc Lasgouttes
0c1ff6d89e Move some functions that only required a FontInfo parameter from Font.*
to FontInfo.*

This allows tex2lyx to use the plain FontInfo object (via Layout), and to remove
several '#ifdef TEX2LYX' in the code

Reorder a bit the makefile in tex2lyx


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31772 a592a061-630c-0410-9148-cb99ea01b6c8
2009-10-27 16:16:15 +00:00
Enrico Forestieri
128c2b31d8 Avoid ugly macros in the preamble and protect underlined \cite commands
in a clever way.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29558 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-07 10:57:52 +00:00
Enrico Forestieri
cd62043a1b Solve problem with underlining citations.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29550 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-06 10:20:40 +00:00
Pavel Sanda
04c734f7a7 Move underline text from \underbar to \uline.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg150815.htm


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29545 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-05 11:51:55 +00:00
Pavel Sanda
5416e09ebf Heh, wrong shift ;)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29544 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-05 09:26:40 +00:00
Pavel Sanda
6fde8f8067 Introduce double underline and wavy underline styles from ulem
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg150803.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29542 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-05 09:26:28 +00:00