Commit Graph

1363 Commits

Author SHA1 Message Date
Juergen Spitzmueller
b2ccdae228 Amend 15fd17d83f 2018-03-10 14:22:51 +01:00
Juergen Spitzmueller
15fd17d83f tex2lyx: support for \includeonly 2018-03-09 17:27:55 +01:00
Juergen Spitzmueller
247e1a223d tex2lyx: handle whitespace in table column declaration.
Fixes: #10804
2018-03-09 14:18:03 +01:00
Juergen Spitzmueller
3e7aebe966 tex2lyx/TODO: small tweak. 2018-03-09 13:57:29 +01:00
Juergen Spitzmueller
9e5ab04a6c This works already. 2018-03-09 13:43:12 +01:00
Juergen Spitzmueller
af6933c06f tex2lyx: chapterbib support 2018-03-09 13:30:52 +01:00
Juergen Spitzmueller
cba38881d6 tex2lyx: honor grouping in optional arguments.
E.g., \cite[{a literal ] character}]{key}
2018-03-09 13:14:13 +01:00
Juergen Spitzmueller
0513622fd0 Fix copy and paste error in 6659304f7f 2018-03-09 12:29:07 +01:00
Juergen Spitzmueller
0bc192bfff Revert "Revert "tex2lyx: towards proper support of "literal"/"latexified" inset commands""
I did not intend to revert this. Sorry for the noise.

This reverts commit 74d9277909.
2018-03-09 12:18:49 +01:00
Juergen Spitzmueller
74d9277909 Revert "tex2lyx: towards proper support of "literal"/"latexified" inset commands"
This reverts commit 6659304f7f.
2018-03-09 11:32:09 +01:00
Uwe Stöhr
1174279967 tex2lyx: parse \xymatrix
LyX's \xymatrix support relies on math therefore put it into math and parse its content

fixes bug #10638
2018-03-09 04:53:33 +01:00
Juergen Spitzmueller
6659304f7f tex2lyx: towards proper support of "literal"/"latexified" inset commands
We now report whether the attempt to recode the macros to glyphs
succeeded. If yes, we set "literate" to false, if not to true.

Also, do not attempt to recode for non-latexifying fields.

Fixes: #9563
2018-03-08 15:05:01 +01:00
Juergen Spitzmueller
7a22ce7c09 tex2lyx: support alignment pseudo-environments.
Fixes: #7857
2018-03-06 17:54:32 +01:00
Juergen Spitzmueller
1dcb2a0976 tex2lyx: fix subfloat import
Fixes: #10385
2018-03-06 10:35:55 +01:00
Uwe Stöhr
a30972a39c tex2lyx/text.cpp: fix a typo 2018-03-05 17:37:50 +01:00
Juergen Spitzmueller
4bc379ea67 Small update of TODO 2018-03-05 14:57:16 +01:00
Juergen Spitzmueller
b94bb37e53 parse_text (tex2lyx): get rid of the monstrous if-then-else clause
Rather than that, continue in the loop if a condition is met.

This fixes tex2lyx for MINGW, which has a cluase-nesting threshold.

Fixes: #9552
2018-03-05 09:08:14 +01:00
Juergen Spitzmueller
0915e81481 tex2lyx: support qualified citation lists (biblatex) 2018-03-04 20:12:27 +01:00
Juergen Spitzmueller
1a3dbbf07a tex2lyx: refsection and bibbysection support (biblatex) 2018-03-04 17:29:59 +01:00
Juergen Spitzmueller
f22213a04f tex2lyx: support biblatex
(qualified citation lists and multibib not yet supported)
2018-03-04 16:46:31 +01:00
Juergen Spitzmueller
476401a76f tex2lyx: consider options passed via \PassOptionsToPackage 2018-03-04 16:45:37 +01:00
Juergen Spitzmueller
ccb9ae9670 tex2lyx: import straight quotation marks as ERT
This assures that they are output as straight quotations marks (e.g.,
babel shorthands).

Fixes: #75 [sic!]
2018-03-04 12:08:08 +01:00
Richard Heck
f22954b89d Fix bug #10939. 2018-02-24 00:49:31 -05:00
Richard Heck
2a78c1c662 Fix bug #10938. 2018-02-24 00:44:26 -05:00
Richard Heck
8281a81b10 Fix bug #10937. 2018-02-24 00:40:03 -05:00
Richard Heck
12db09aac2 Fix bug #10936. 2018-02-24 00:36:55 -05:00
Juergen Spitzmueller
ed331bedd6 tex2lyx: do not force default bibliography style if none is set
Some classes provide a \bibliographystyle, so we must not output any
\bibliographystyle if none is set in the TeX file.

Fixes: #10673
2018-02-23 07:43:19 +01:00
Juergen Spitzmueller
820ec38da7 Handle comments in options
Things like
pdfpagemode=UseOutlines%None,UseOutlines,UseThumbs,FullScreen

was not imported correctly (the comment was not stripped)

Fixes the rest of #5737
2018-02-22 11:24:43 +01:00
Juergen Spitzmueller
3cc98a9bf6 tex2lyx: normalize bib and bst paths
Fixes: #7637
2018-02-09 13:23:50 +01:00
Jean-Marc Lasgouttes
d77b05db80 Move the inPixels(MetricsBase) help from Length to MetricsBase.
A basic class like Length should not depend on something from
frontend.

This change allows to remove several dummy implementations of
theFontMetrics().
2018-01-05 20:14:04 +01:00
Jean-Marc Lasgouttes
39a8000589 Do not use Application for a 'cancel export' boolean
It is not good for a support function to depend of anything outside of
it, especially Application.

Here the boolean that indicates that export should be canceled is put
in Systemcall. This allows to remove all the dummy theApp() function
that have been added here and there for linking needs.
2018-01-02 16:01:07 +01:00
Richard Heck
2335d196b4 Put the dummy tex2lyx support where it is supposed to be. 2017-12-23 15:04:40 -05:00
Richard Heck
56071d2fb0 Dummy theApp() method should return a pointer. 2017-12-23 14:40:18 -05:00
Richard Heck
f1df7e478d Fix linking errors. Someone else will have to tell me if this
is the best way to do it.
2017-12-21 18:55:39 -05:00
Kornel Benko
89b248a219 Tex2lyx tests: adapt some check files for expected output
This amends 40a3a44
2017-12-21 05:58:49 +01:00
Jean-Marc Lasgouttes
40a3a44aa2 tex2lyx: do not keep the Flex prefix for Flex insets names
While there is code in LyX that handles this, tex2lyx should respect
the format that LyX produces and the Flex: prefix is gone since
cfeddb92 in 2014.

In particular, this prefix is known to cause assertion when undoing a
document setting change.
2017-12-20 16:00:39 +01:00
Uwe Stöhr
6c6cf5e071 use https:// in the first line of .lyx files
- also support to detect https via tex2lyx
2017-12-17 02:24:26 +01:00
Jean-Marc Lasgouttes
4cfa5a9d2a Avoid assignment in if() clause
The optimization they provide is not worth it IMO.

Fixes bugs #10898, #10899, #10940.
2017-12-14 12:56:02 +01:00
Kornel Benko
29a735463a Adapt the check for configure need to the one used in LyX::queryUserLyXDir()
We should refactor the check
2017-08-08 12:23:15 +02:00
Jean-Marc Lasgouttes
15a87dd3a8 Check whether a class is known before loading it
Fixes bug #10719.
2017-07-25 11:57:29 +02:00
Juergen Spitzmueller
3c7b75c5bc Properly import \newtheorem*
Fixes: #10622
2017-07-23 13:20:56 +02: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
Jean-Marc Lasgouttes
64667735f4 h_use_minted is a bool, not a string
We have a mix in this file of boolean stored as such or as strings.
This translates to values written as true/false or 1/0 in .lyx files.

In this case, the value of use_minted could only be true, since the
char * pointer is non null.

Also add some else clauses.

Spotted by coverity.
2017-07-06 14:11:30 +02:00
Richard Heck
fd5a950d7f Fix whitespace in some more files. 2017-07-03 14:46:27 -04:00
Richard Heck
00e4902ea3 Fix trailing whitespace in txt files. 2017-07-03 13:53:41 -04:00
Richard Heck
75bfed5507 Fix trailing whitespace in cpp files. 2017-07-03 13:53:14 -04:00
Richard Heck
51aebc9327 Fix whitespace at EOL. 2017-07-03 13:46:30 -04:00
Enrico Forestieri
d4d7cdf9a1 Prune white space after the separating comma of options
Both listings and minted allow for many complex options. So, a latex
source can be easily written as

\documentclass{article}
\usepackage{minted}
\usepackage{graphicx}
\usepackage{dingbat}
\begin{document}
\begin{minted}[breaklines=true,
               breakautoindent=false,
               breaksymbolleft=\raisebox{0.8ex}{
                   \small\reflectbox{\carriagereturn}},
               breaksymbolindentleft=0pt,
               breaksymbolsepleft=0pt,
               breaksymbolright=\small\carriagereturn,
               breaksymbolindentright=0pt,
               breaksymbolsepright=0pt]{Python}
def f(x):
    return 'Some text' + str(x) + 'some more text' + str(x) + 'even more text that goes on for a while'
\end{minted}
\end{document}

The used text editor can therefore add a mixture of tabs and spaces.
The white space after the options is not a problem and the imported
file compiles just fine, but the validator gets confused and doesn't
validate them. This would entail a difficult editing of the options
only to have them validated. So, better remove the white space.
2017-06-17 20:41:29 +02:00
Enrico Forestieri
a1e65ad458 Amend 9b2b51a4
runtests.py was being forgotten and a string transliterated.
2017-06-17 19:35:10 +02:00
Kornel Benko
9b2b51a4db Tex2lyx tests: Added minted testcase from Enrico Forestieri 2017-06-17 19:12:17 +02:00
Enrico Forestieri
f135c8d227 Don't allow raw newlines in options
This happens if the options are split over multiple lines in the
latex source. A newline here confuses the lexer when reading the
converted LyX file.
2017-06-17 19:05:02 +02:00
Enrico Forestieri
000b7f3f46 Correctly skip a bottom caption
The getArg() method stops at the first closing brace, whether it
matches the opening one or not, so properly parse the caption and
then throw it away.
2017-06-17 14:01:42 +02:00
Enrico Forestieri
7a9bb85184 tex2lyx: import minted listings
This commit updates tex2lyx in order to also import minted listings.
For the floating version of a listing, minted uses the listing
environment, a concept that is not shared with the listings package,
towards which our listings inset is geared.
For this reason, a kludge is necessary when importing minted listings
not previously exported by LyX itself.
If the floating listing contains only a caption and a label (other
than the listing itself), everything is fine and the import is (or
aims to be) perfect. But, as in all other floating ebvironments,
one can also stick there other elements, which don't have a place
in the listings inset. So, in order to avoid a data loss, tex2lyx
sticks everything into the caption. In this way, things may be
rearranged in the GUI, if necessary. There is no other way, apart
from a complete redesign of the listings inset, of course. However,
I think that this is an acceptable compromise.
2017-06-17 02:23:00 +02:00
Enrico Forestieri
8dab1cfe7e Fix bug #9101
Update the listings inset to optionally use the minted package
(instead of the listings one) for typesetting code listings.
Only one of the two packages can be used in a document, but it
is possible to switch packages without issues if the used options
are the same. If a switch is made and the options differ, one needs
to manually adjust them if they were entered in the advanced options
tab, or apply again the gui settings.
Note that minted requires the -shell-escape option for the latex
backend and the installation of additional software (python pygments).
2017-06-07 00:55:23 +02:00
Uwe Stöhr
0dd3311dd4 rename buffer parameter math_number_before to math_numbering_side
this is a fileformat change

also try to fix an UI issue that JMarc gets
2017-05-13 20:39:45 +02:00
Uwe Stöhr
19cc4a1fcb GuiDocument: support also the class option reqno
as discussed our support for the formula numbering side should be complete. There are document classes that uses left numbering as default and with the class option "reqno" this can be changed to right numbering. reqno requires the loading of amsamth.
2017-05-12 01:06:05 +02:00
Kornel Benko
c7a0ffc8c8 Update tex2lyx files to new format 2017-04-26 14:21:54 +02:00
Kornel Benko
8f00d7a95a To check if directory paths are identical we have to use realpath() 2017-04-26 14:20:32 +02:00
Uwe Stöhr
3f8c15a7c6 support for the document class option leqno
- fileformat change
2017-04-25 02:28:10 +02:00
Günter Milde
69e3e00603 Fix tex2lyx roundtrip ctests.
The last commit accidentially changed the encoding
of a sample file.
2017-04-21 14:03:37 +02:00
Günter Milde
f5ac0580ff special character "allowbreak" (ZWSP), fileformat change
New special character to mark an optional line break
without inserting a hyphen (ZWSP). See #10585.

Corresponds to the Unicode character U+200B ZERO WIDTH SPACE

 This isn't a “space”. It is an invisible character that can be used
 to provide line break opportunities.
 ​http://unicode.org/notes/tn27/

While the literal Unicode character can be used in the LyX
file, it is invisible in the GUI.

For visible feedback, the patch adds a new special character "allowbreak".

The small mark is inspired by LibereOffice.
A tooltip is added.
2017-04-20 23:28:48 +02:00
Uwe Stöhr
5c91be293d tex2lyx: update fileformat 2017-04-15 17:03:13 +02:00
Uwe Stöhr
58e6c6c876 InsetFloat: allow float placement for rotated floats
- fixes bug #10270
- fileformat change
- fixes also a bug that unwanted placement was output to LaTeX on certain cases
2017-04-15 06:57:52 +02:00
Kornel Benko
70b0f8d953 Cmake roundtrip tests: Amend fc1c5c6, rename formula_indent to math_indent 2017-04-13 15:48:07 +02:00
Uwe Stöhr
fc1c5c6f28 BufferParams: rename formula_indent to math_indent etc. as requested
- also add flyx2lyx feature to import existing document class option as requested by JMarc
- also don't use a real default indentation length
2017-04-13 02:31:26 +02:00
Enrico Forestieri
031748d9c8 Avoid an assertion when compiling in debug mode with MSVC 2015
Seemingly, when removing an argument from argv, and thus inserting
a null pointer to shorten the array, causes an assertion because
the null pointer is not a valid heap pointer (sic!)

Fixes bug #10440
2017-04-12 21:19:42 +02:00
Uwe Stöhr
818373ce4f tex2lyx: support rotated algorithm floats
LyX knows algorithm floats since ages. tex2lyx's support for rotated algorithm floats has simply been forgotten.
2017-04-11 00:36:00 +02:00
Uwe Stöhr
1c2d056cfc tex2lyx: fix the preamble output
- LyX has new preamble tags. Although that they are not relevant for LaTeX they must be created by tex2lyx nevertheless
- also fix an issue that the formula indentation was always output
- update the tex2lyx tests accordingly
2017-04-08 04:55:22 +02:00
Uwe Stöhr
fae697a65c update tex2lyx tests to latest file format 2017-04-08 04:13:05 +02:00
Uwe Stöhr
b3b7675f54 Length.cpp: add new unit representing \baselineskip
- fileformat change
2017-04-08 03:30:21 +02:00
Kornel Benko
723f0e14d9 Make runtests.py python3 ready
Tex2lyx tests with ctest depend on it
2017-04-07 18:51:35 +02:00
Jean-Marc Lasgouttes
86ae7dad3f Require automake 1.14 and autoconf 2.65
This allows to fix distclean properly, since we know that
subdir-objects is used. When it is the case, it is not a good idea for
a Makefile to use a source file which is under the control of another
one. This could not be made to work work with old automake versions
(<1.14).

Therefore we refer directly to object files in Makefile.am instead of
source files. The actually leads to less compilation in tex2lyx.

Update the code here and there to remove compatibility hacks. Update
documentation.

Re-enable the layout test and fix the Length test, which was ovewriting
memory in test_inPixels() because lyxrc did not had a correct layout.
2017-04-06 14:56:30 +02:00
Uwe Stöhr
808339790c support to indent formulas
- adds support for the general document class option fleqn
- adds support to specify the formula indentation
- fileformat change
2017-04-05 22:22:47 +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
Uwe Stöhr
7aaa85915f latexfonts: support for the Noto fonts
- fileformat change
- the support to scale the sf and the tt fonts can be added later, see enhancement #10611
2017-04-04 23:02:47 +02:00
Uwe Stöhr
86cd1a9c97 tex2lyx: support for the cochineal fonts 2017-04-04 00:19:14 +02:00
Kornel Benko
0d6c64a4eb Cmake build: Project names *should* be uniq 2017-03-30 14:01:56 +02:00
Jean-Marc Lasgouttes
72af7f340c Pass big parameters by address
Spotted by coverity.
2017-03-24 15:11:21 +01:00
Enrico Forestieri
72a488d7e6 Fix output of en- and em-dashes with TeX fonts
This commit fixes the regression introduced in 2.2 about the
output of en- and em-dashes. In 2.2 en- and em-dashes are output as
the \textendash and \textemdash macros when using TeX fonts, causing
changed output in old documents and also bugs (for example, #10490).

Now documents produced with older versions work again as intended,
while documents produced with 2.2 can be made to produce the exact
same output by simply checking "Don't use ligatures for en-and
em-dashes" in Document->Settings->Fonts.

When exporting documents using TeX fonts to earlier versions, in order
to avoid changed output, a zero-width space character is inserted after
each en/em-dash if dash ligatures are allowed. These characters are
removed when reloading  documents with 2.3, so that they don't accumulate.
2017-03-19 20:50:34 +01:00
Jean-Marc Lasgouttes
7a124ab861 Fixup commit 50060053
Fix two instances where theFormats() was used instead of a local parameter.

Fix layout test.
2017-03-14 14:26:26 +01:00
Richard Heck
50060053e3 Move the global formats and system_formats variables into the
LyX singleton.

Mostly, this is very boring, but it might be good if someone would
check what I did about the dummy implementation in tex2lyx.
2017-03-13 23:40:29 -04:00
Jean-Marc Lasgouttes
ed15c31bf8 Make a dummier LyXRC for tex2lyx
The old version made coverity complain about uninitialized members.
The new one is the same as in support/tests/dummy_impl.cpp.
2017-03-08 16:37:53 +01:00
Juergen Spitzmueller
2902028a38 update tex2lyx tests 2017-02-04 19:28:18 +01:00
Juergen Spitzmueller
bedebfc45a Support for multiple bibliographies setting "per child"
This adds support for the chapterbib package, but also adds ways to
produce this sort of multibib with biblatex and bibtopic (which are
both incompatible with chapterbib).

File format change.
2017-02-04 19:23:45 +01:00
Juergen Spitzmueller
199c3f8e22 update tex2lyx tests 2017-02-04 13:45:16 +01:00
Juergen Spitzmueller
7ca20b292c Support for multiple bibliographies
Using refsection=unit in biblatex, or bibtopic's btUnit environments
in BibTeX.

File format change.
2017-02-04 12:02:00 +01:00
Juergen Spitzmueller
48af150896 Update tex2lyx tests 2017-01-30 08:29:16 +01:00
Juergen Spitzmueller
e15a8f3551 Extend LATEXIFY command param handling and add literal param.
File format change.

This allows for the relevant InsetCommand-based dialogs (such as
citation text before/after, Bibitem label, hyperlink name etc.)
to provide both the input of verbatim code or text that is transformed
to proper LaTeX code.

Some dialogs (Nomencl, Href) already had some methods (although they
could not be toggled), which are now centralized and streamlined.

The initial work of this patch has been done by Georg Baum (see
http://www.lyx.org/trac/attachment/ticket/2751/x.diff)

Fixes: #2751, #8227.
2017-01-30 07:44:55 +01:00
Juergen Spitzmueller
9cad99c2b5 update tex2lyx tests 2017-01-21 14:46:43 +01:00
Juergen Spitzmueller
68ab4023cc Support for "qualified citation lists"
These are biblatex-specific multicite commands that allow for multiple
pre- and postnotes, as in:

\cites(pre)(post)[pre1][post1]{key1}[pre2][post2]{key2}...

with an optional general pre- and postnote, which applies to the whole
list (like [][] in normal cite commands) and an optional pre- and
postnotes for each item, so that pagination can actually be specified in
multi-cite references, as in:
(cf. Miller 2015, 2; furthermore Smith 2013, 23-23; Jenkins 2012, 103,
also refer to chapter 6 in this book)

See the biblatex manual, sec. 3.8.3., for details.

File format change.
2017-01-21 14:25:17 +01:00
Juergen Spitzmueller
384723b63f update tex2lyx tests 2017-01-13 18:27:38 +01:00
Kornel Benko
cf3f4814d9 Adapt the cmake-build-system to the reworked biblatex handling 2017-01-13 13:17:12 +01:00
Juergen Spitzmueller
493f6c6cd3 update tex2lyx tests once more 2017-01-13 11:57:39 +01:00
Juergen Spitzmueller
013515e450 Update tex2lyx tests 2017-01-13 10:13:47 +01:00
Juergen Spitzmueller
ce8929e9b2 Merge branch 'master' into biblatex2 2017-01-12 09:05:28 +01:00
Richard Heck
a7aef29600 Update tex2lyx tests. 2017-01-11 14:16:28 -05:00
Juergen Spitzmueller
8319b3e9d6 Biblatex support
File format change
2017-01-08 09:39:46 +01:00
Juergen Spitzmueller
ecbd047cff Merge branch 'master' into biblatex2 2017-01-08 09:06:26 +01:00
Richard Heck
ff3690a5fd Add a "noprefix" option to the "labelonly" version of the reference
inset.

If the reference is "sec:mysec", then this will output just "mysec".
This is what is needed, e.g., to use refstyle's range commands, e.g.,
    \secrangeref{mysec1}{mysec2}
You *cannot* use:
    \secrangeref{sec:mysec1}{sec:mysec2}
even if those are the actual labels.

Eventually, I'd like to add native support for this, but I'm a bit
frightened of trying to make the reference dialog support multiple
selections.
2017-01-07 15:07:44 -05:00
Juergen Spitzmueller
f6d4bce123 Merge branch 'master' into biblatex2 2017-01-03 21:49:56 +01:00