Commit Graph

609 Commits

Author SHA1 Message Date
Juergen Spitzmueller
0d98fb8548 lyxpaperview: take the first match 2020-08-27 12:05:49 +02:00
Juergen Spitzmueller
ff14d0bd00 Report back if citation target could not be opened 2020-08-27 11:52:52 +02:00
Juergen Spitzmueller
8365eabd6f Make paper search function accessible and customizable 2020-08-27 08:48:55 +02:00
Scott Kostyshak
4a9bbe61df ctests: restore use of -shell-escape to fix Minted
This commit amends 4bb00e99 and fixes the Minted tests.
2020-08-24 16:30:36 -04:00
Juergen Spitzmueller
298fa2eee5 lyxpaperview.py: credit Pavel 2020-08-24 15:59:26 +02:00
Juergen Spitzmueller
7097c4e6b1 laypaperview.py: Fix program description 2020-08-24 15:41:52 +02:00
Juergen Spitzmueller
3e31fad5f6 lyxpaperview.py: no need to limit to year and author
The script can now take an unlimited number of arguments, which are all
searched for in the filename. This allows for more flexibility.
2020-08-24 15:38:55 +02:00
Juergen Spitzmueller
935c9aad5a Add python lyxpaperview script 2020-08-24 13:32:50 +02:00
Pavel Sanda
894ad70eba Enable Open Citation menu item iff citation contain locator information or external search script is available.
Per Juergen's request.
2020-08-23 22:19:34 +02:00
Pavel Sanda
8362360639 switch args 2020-08-21 09:25:10 +02:00
Scott Kostyshak
4c0073cd03 Whitespace 2020-08-20 21:51:29 -04:00
Pavel Sanda
4cd3ab1b1a Example script for looking up the citation pdfs. 2020-08-20 09:12:54 +02:00
Kornel Benko
4bb00e99fb Cmake export tests: Omit next group of possible conflicts while runnig test in parallel
Disable conversion cache because all lyx instances use the same cache without
any locking between read and write to the cache.

Thanks to Scott catching this case.
2020-08-19 22:28:50 +02:00
Thibaut Cuvelier
fa38ae3fc0 Revert "DocBook: add new layout parameter DocBookWrapperMergeWithPrevious."
This reverts commit 59b0f88d2b.
2020-08-03 22:57:49 +02:00
Thibaut Cuvelier
f025538c95 Revert "DocBook: add a layout tag to tell whether an item is the abstract or not."
This reverts commit 5ccd63eff6.
2020-08-03 22:55:52 +02:00
Thibaut Cuvelier
5ccd63eff6 DocBook: add a layout tag to tell whether an item is the abstract or not. 2020-08-03 16:04:58 +02:00
Thibaut Cuvelier
59b0f88d2b DocBook: add new layout parameter DocBookWrapperMergeWithPrevious. 2020-08-03 16:04:57 +02:00
Pavel Sanda
28968b1f0d Add required elements in the layouts to support DocBook.
Slightly modified patch from Thibaut Cuvelier.
2020-07-07 09:49:48 +02:00
Richard Kimberly Heck
6f084c4c30 Some python cleanup from Thibault. 2020-06-21 11:37:23 -04:00
Juergen Spitzmueller
bd89a273bc Amend 74f831e06d
Forgot this part.
2020-05-18 08:32:26 +02:00
Juergen Spitzmueller
74f831e06d Add support for inkscape 1.0
Command line syntax has changed. We now check for the version and use
the appropriate cl options.

Fixes #11742
2020-05-15 14:08:46 +02:00
Richard Kimberly Heck
9bcb243ec6 Increment layout format. 2020-05-02 23:17:16 -04:00
Kornel Benko
b55f735afe Moving lib/scripts/{GetOptions.pm,listFontWithLang.pl} to development/tools 2020-05-02 13:40:26 +02:00
Kornel Benko
4d7c7f1e74 Perl script (for developpers) to select desired system font names.
Needed font-config (so that this script is probably OK on unix systems only)
Probably needed module for Getopt::Mixed.
On debian systems it is contained in package libgetopt-mixed-perl
2020-05-02 13:20:53 +02:00
Enrico Forestieri
92c4bb4682 Amend bd6d09fc
Was forgetting this.
2020-03-22 22:03:49 +01:00
Enrico Forestieri
bd6d09fc98 Fix Python 3 issues when generating preview snippets
The log file generated by latex can contain strings encoded in
whatever supported encoding. Instead of guessing the encoding,
it is better to open it in binary mode and then performing the
necessary comparisons as "bytes". In order to do this, the
strings are encoded in utf8, so that, for example, b"pythön" is
encoded as "pyth\xc3\xb6n" (7 bytes). Of course, this means that
we can only successfully perform comparisons with ascii strings.
However, this is what we actually do, as we only search for
ascii strings in the log file.
2020-03-14 17:19:08 +01:00
Günter Milde
0db0d7f375 Remove no longer needed module import. 2020-03-05 00:24:08 +01:00
Richard Kimberly Heck
9d8dfe934b Fix bug #11750.
Unfortunately, stat.st_ino returns 0 on Windows, at least on Python 2.7, so we can't use that way of telling when we're seeing the same directory again. Surely the real pathname should work.
2020-02-24 19:07:31 -05:00
Scott Kostyshak
562917dc1c lyxpreview_tools.py: fix a regular expression
Three backslashes are needed before a LaTeX command, not one. Before
this commit, the code gave the following error with Python >= 3.6:

  re.error: bad escape \g at position 29

This error was introduced with Python 3.6, as documented [1] by the
following line of documentation:

  Changed in version 3.6: Unknown escapes in pattern consisting of
  '\' and an ASCII letter now are errors.

Although previous Python versions did not give an error, the regular
expression was not working as intended: for example, the "\\n" in
"\\newcommandx" would be interpreted as a new line.

[1] https://docs.python.org/3.6/library/re.html#re.sub
2020-02-15 21:57:30 -05:00
Enrico Forestieri
4e3567523a Fix syntax error with Python 2
Python 2 wants b"..." and gives error win rb"...".
2020-02-06 10:50:02 +01:00
Juergen Spitzmueller
5fc2662b13 Add pref to keep ct markup on copy/paste
Fixes #10278, #10128
2020-01-13 15:20:48 +01:00
Juergen Spitzmueller
8e62dcc20f Add pref option to disable underlining of added text (in workarea)
Addresses #10102
2019-12-27 10:35:52 +01:00
Günter Milde
cec04267b2 Make preview skript Python-3 compatible. 2019-09-05 09:42:56 +02:00
Scott Kostyshak
db65b1a3c3 Port gnuplot2pdf.py to Python 3
Instead of wait(), use communicate(), as mentioned here:

  https://docs.python.org/3/library/subprocess.html

Otherwise, the process seems to hang as cautioned in the above URL.

Also, use byte strings.
2019-09-04 09:12:09 -04:00
Juergen Spitzmueller
cbfce678d8 Add Requires to float definition. 2019-08-12 12:18:28 +02:00
Juergen Spitzmueller
006f1cbe43 update layout formats 2019-08-07 17:10:58 +02:00
Juergen Spitzmueller
0b7305024a Use generic paper size names rather than LaTeXisms such as "letterpaper"
This allows to support classes that don't use the Xpaper wording.

Add support for KOMA font (keyval) syntax on top of that.

Also support class-specific font and paper sizes in tex2lyx.

File and layout format change.
2019-08-07 16:44:11 +02:00
Juergen Spitzmueller
50abaa0e57 Add FontSizeFormat textclass option
This allows to customize the way fontsizes are passed to the class (e.g.,
"fontsize=12", as used by KOMA, rather than "12pt").
2019-08-06 19:27:49 +02:00
Juergen Spitzmueller
c6f262a5b7 Add textclass options for paper size selection and default paper size
Fixes: #4506

Implementing this to the classes requires file format changes, as the
classes' page layout will likely differ from geometry's.
2019-08-06 17:34:16 +02:00
Jean-Marc Lasgouttes
c476c3766c Add a pref to disable OS keyboard language support
By default, the behavior is the same as before, except that the
language of new document is not unconditionally en_US anymore.

The new checkbox "Respect OS keyboard language" (off by default)
governs this behavior.

Update prefs format to 30.
2019-07-20 12:57:16 +02:00
Juergen Spitzmueller
13b6632228 Add TextClass option BibInToc
Fixes #1889
2019-07-08 15:40:17 +02:00
Günter Milde
8556cb1c66 fix layout2layout with stdin/out for Py3.
sys.stdin and sys.stdout expect a Unicode string,
with bytes we must use sys.std(in|out).buffer.
2019-07-07 20:37:12 +02:00
Jean-Marc Lasgouttes
642b4acca1 Let TeXFiles.py handle symbolic links.
Nix (https://nixos.org) is a Unix package manager, which can be used to
install LaTeX on macOS. A peculiarity of Nix is that all packages are
installed into separate directories and the actual directory tree is
then constructed via symlinks.

This interacts badly with the way LyX currently detects files in the
TeX setup, because TeXFiles.py does not follow symlinks. Therefore,
almost nothing is found when using LyX together with Nix’ LaTeX.

Patch from Michael Roitzsch.
2019-06-25 15:52:46 +02:00
José Matos
4268a9e812 Remove code that is redudant.
Both for python2 and python3 output is always a string.
2019-06-04 18:26:13 +01:00
José Matos
639b5da1af Fix the remaing issues with comparisons with objects of different types.
In python it is possible to compare tuples with a lexicographic order.

Take advantage of that since there is no need to resort to the C-trick of converting a version in hex format.

We need to set a dummy version in case we are using ImageMagick to ensure that version is always an integer 3-tuple.
2019-06-03 19:07:20 +01:00
José Matos
a8937b53ec Fix bug in python comparison.
It worked in python2 but not the way the authors imagined. Because hex always returns a string.

From python2:
>>> 1 > "2"
False
>>> "2" > 1
True
>>> "1" > 2
True

The rational is that an integer is always smaller than a string.

In python 3 this because it does not make sense to compare objects of different types.
2019-06-03 17:15:09 +01:00
José Matos
f9bf53f35a Make verbose switch consistent.
Someday we should probably unify these two switches. Because the debug switch is verbose
and the verbose switch is mostly used for debuging.
2019-06-03 07:31:05 +01:00
José Matos
a810d779d7 Import lyxpreview_tools directly and not only inside *if* conditions.
This is related to the bug #11457 saga and it was my fault.

The debug files should be written only be on if the argument --debug is passed and not --verbose as it was done by mistake.
2019-06-02 17:24:40 +01:00
Juergen Spitzmueller
c7efb677f8 New InsetLayout tag ParbreakIgnored
This effectively allow paragraph breaks in insets only for cosmetic
reasons (e.g., to align contents on different lines).

This is the last change necessary for an enhanced covington gloss support
(which uses the new covington gloss ui)
2019-06-02 18:16:30 +02:00
Juergen Spitzmueller
9e6d22ea9c Add InsertOnNewline argument tag
This adds a paragraph break before auto-inserting arguments in flex
insets.

Useful for specific arguments (particularly ling glosses)
2019-06-02 18:07:10 +02:00
Juergen Spitzmueller
9f04eeae03 Support FreeSpacing in InsetArgument 2019-06-02 16:33:06 +02:00
José Matos
050f0cbc91 Add further debug information fow windows (#11457) 2019-05-31 16:07:13 +01:00
José Matos
28f17333ff Temporary hack to try to solve #11457 on windows
Redirect the standard output and standard error of the script to a file called debug.txt in the temporary directory.
2019-05-31 10:43:02 +01:00
José Matos
8dd31803b1 Attempt to fix #11457
In python 3 the colors need to be strings and not bytes:

This was the equivalent of

>> print("%s" % b"1")
"b'1'"

since the colors were bytes the call to dvipng was something like

dvipng -Ttight -depth -height -D 115 -fg "b'rgb 0.937255 0.941176 0.945098'" -bg "b'rgb 0.137255 0.149020 0.160784'"  "lyxpreviewxBJEqm.dvi"

Note the "b'rgb after both -fg and -bg that wrecked havoc and thus dvipng failed. That was the difference between python2 and python3 calls.
2019-05-28 16:22:32 +01:00
Kornel Benko
48a5b16885 Add a testcase for buffer-write-as 2019-05-27 10:21:15 +02:00
Juergen Spitzmueller
70b3d3adcc Add NewlineCmd InsetLayout and Argument option
This allows to specific an alternative macro for newlines

Fixes: #10407
2019-04-18 11:35:03 +02:00
Juergen Spitzmueller
ed44bbddee Add MenuString to InsetLayout
Fixes: #8818
2019-04-18 10:27:19 +02:00
Juergen Spitzmueller
4b3aacd13b Add TableStyle layout tag
Fixes: #8360
2019-03-26 17:42:56 +01:00
Uwe Stöhr
01c5d528fe convertDefault.py: remove ancient restriction
there is no longer the need to restrict the image depth (on Windows since years the 16 bit depth version of ImageMagick is bundled)
2019-03-21 02:35:51 +01:00
Juergen Spitzmueller
8b92a2a689 Add NeedMBoxProtect [inset]layout option
This accesses the inulemcmd output param which protects specific commands
(\cite, \ref) in an \mbox.

This is needed in ulem and soul commands, since their complex
detokenization makes such commands (who produce multiple words via local
assignment) fail.

So now it is possible to properly support ulem and soul via
[inset]layout

Fixes a case reported in #9404
2019-03-12 14:08:05 +01:00
Günter Milde
9abd46b4d5 Fix AttributeError with Python 3.
At least since Python 3.5, `output` is already a
(unicode) string and does not have a "decode" method.
2019-02-28 22:59:30 +01:00
Jean-Marc Lasgouttes
9fe101e890 Remove support for pixmap cache
This code has issues and there is no evidence that it improves performance.

Remove LyXRC variable \use_pixmap_cache and update rc format to 29.

Now the global pixmap cache is only used by GuiCompleter. Therefore
there is no need to reset it when fonts change.
2018-10-07 14:56:55 +02:00
Richard Kimberly Heck
e5fc7327e3 Extend fix for #7404 to allow any inset collapsible to be edited
externally.
2018-10-04 13:41:41 -04:00
José Matos
cac27076ea Replace /usr/bin/env python -> /usr/bin/python3 2018-08-29 17:26:21 +01:00
Juergen Spitzmueller
ed61ce74b7 So long, date-insert!
This function is superseded by info-insert date, which is much mightier
and more flexible.
2018-08-20 09:25:22 +02:00
Juergen Spitzmueller
43e26a562b Add prefs2prefs code for vcs info inset renaming 2018-08-18 16:11:08 +02:00
Juergen Spitzmueller
b124adbd38 Introduce listpreamble argument type
This uses the InsetArgument interface to provide access to a document
part hitherto inaccessible by LyX: the part between \begin and the first
\item in a list (where lengths and counters can be redefined, for
instance).

Fixes: #11098

File format change, layout format change
2018-08-17 10:22:32 +02:00
Juergen Spitzmueller
1e5acc5656 Fix command line output of convertDefault.py for ImageMagick
Part of #11186
2018-07-13 10:20:26 +02:00
Kornel Benko
1803d788f7 Cmate tests: Amend aca3031
The script checkKeys.pl.in was mentioned but not added to the previous commit.
2018-06-09 09:48:41 +02:00
Kornel Benko
aca3031352 Cmake tests: Added check to inspect created pdf in test "AMS-import"
If the command "comparepdf" is found, it will be used.
Also the script lyx_batch.pl is now easier to expand for
possible new comparision tools.
2018-06-09 09:15:21 +02:00
Kornel Benko
f5732bef83 Disable GUI for our batch tests if using QT5
Thanks to Enrico for this params
2018-05-26 13:30:30 +02:00
Kornel Benko
49603e91aa Cmake batch tests: Generalize lists of files in test.
Each source file is to be copied to the test directory
Created files are to be compared to the corresponding expected file (if it is not set to "undef")
2018-05-25 17:19:34 +02:00
Kornel Benko
3319664d53 Cmake batch tests: Check also if all expected files are created 2018-05-25 13:59:47 +02:00
Kornel Benko
1a36fee79d Added testcase for ticket #11156
The test is named "AMS-import", with defined test-labels 'tex2lyx' and 'batch'
2018-05-24 20:49:11 +02:00
Juergen Spitzmueller
bbf287a3c6 Allow for cite engine and format definitions/modifications in layouts
Now layout files and modules can extend the cite engines or completely
overwrite them, and modify the cite formats.

Any CiteEngine definition in a layout/module will completely overwrite
those by cite engine files.

AddToCiteEngine will extend them (add if they do not exist yet).

Any CiteFormat definition in a layout will be preferred to those in cite
engines. CiteFormat definitions that are not touched by the former are
still active, though (so, as opposed to CiteEngine, a CiteFormat does
not completely overwrite those by the engine files).

Layout format change.
2018-05-21 12:46:53 +02:00
José Matos
5b160e82be Update scripts to support simultaneously python 2 and 3
The fixes are simple and on line with the changes made during
the 2.3 development. It was an oversight to leave them out.

With this commit all the python scripts should be supported by
python 2 and 3.
2018-04-28 10:51:35 +01:00
Juergen Spitzmueller
389352b3fb Add optional flavor flag to needaux
Also, use latex flavor if no flag is given rather than default output
format

Fixes: #9127
2018-04-25 13:51:40 +02:00
Juergen Spitzmueller
26ea1e1496 Align fontenc with document fonts
Following a request by Günter, we consider the document fonts (only rm
for now) when selecting an appropriate font encoding.

See #9741

The new default font encoding setting "auto" does

* consider the font encoding needed by the language(s), which can now
  have fallback alternatives
* Consider which font encoding is provided by the document font

Thus, cm now will result in OT1 fontenc, if the language can deal with
that.

The font_enc pref is ditched: it is no longer needed.

The automatism is still very basic and is subject to extension.

File format and prefs format change.
2018-04-22 19:06:46 +02:00
Kornel Benko
17dc24419a Adapt test outline-beamer' to the synchronous batch export
Also add the 'export'- label to this test
2018-04-22 11:59:19 +02:00
Juergen Spitzmueller
e11bda2cea Layout format update after 2ba584957c 2018-04-14 10:28:22 +02:00
Kornel Benko
26eeaa1af2 vcs_info_export moved to new directory, part 2 2018-01-17 12:25:22 +01:00
Kornel Benko
aed458f007 Cmake tests: New test for the outliner with beamer
Test idea from Pavel Šanda
Move insets down and up, then compare with expected latex output.
2018-01-14 13:47:27 +01:00
Juergen Spitzmueller
f3b89e4c72 Add IsAutoNestedBy
This is complementary to AutoNests: Styles can determine which other
style should auto-nest them. This is particularly useful for modules
that add new styles which should be auto-nested in a given context.
2017-12-29 10:36:03 +01:00
Juergen Spitzmueller
d6fb2abbea Some AutoNest polishment.
* Rename Nests to AutoNests
* Do it when changing from any style
2017-12-29 10:03:00 +01:00
Juergen Spitzmueller
99ecc6e2c9 Implement auto-nesting.
Now layouts can specify other layouts that should be nested in and
after the current one (if the layout is switched from the current one
and if it follows a paragraph in the current one).

This is particularly useful for things such as the beamer frames, where
particular layouts are practically always nested.
2017-12-28 17:44:54 +01:00
Juergen Spitzmueller
eb2dbb8b09 Assure print function compatibility in python 2.x 2017-11-24 11:56:41 +01:00
Juergen Spitzmueller
4f10c0a14b Use python3 print syntax 2017-11-23 08:16:10 +01:00
Uwe Stöhr
913619c80a svg2pdftex.py: make print work with Python 2 and 3 2017-11-22 23:26:58 +01:00
Juergen Spitzmueller
f2b6ff0870 Swap prefs format 24 and 25, since the former will not be backported. 2017-11-02 16:40:05 +01:00
Juergen Spitzmueller
891a7ef79f Collapsable -> Collapsible (part 5)
Preferences update and prefs2prefs routine.

This was forgotten in the process.
2017-11-02 16:26:45 +01:00
Juergen Spitzmueller
c466baaa5b Collapsable -> Collapsible (part 2)
The current spelling is not strictly wrong, but flagged as unusual or
historical by some authorities. It is also found fault with many
spell checkers. Thus we decided to move to the more standard "-ible"
form once and for all.

See #10678 for discussion

This part covers the most tricky part: the internal naming.
Translations and layouts will follow.

This will all also all be backported to 2.3.x, for the sake of backwards
compatibility (cherry-picking).
2017-10-16 10:12:21 +02:00
Juergen Spitzmueller
8fecdfc473 Fix literal string in binary context
In 1a26f9b26c, all strings in the context of regexes and
comparisons have been converted to byte-like objects for python2/3
compatibility reasons. This has not been considered in the later
commit 5c54557350, which makes layout2layout break with
TypeError: can't concat str to bytes.
2017-10-13 10:04:27 +02:00
Stephan Witt
f93ec4a1f4 Add Qt-based fallback-converter for Mac to compensate missing ImageMagick convert utility 2017-09-30 18:13:37 +02:00
Juergen Spitzmueller
5de0bf55a7 svg2*tex.py: final fixes for Windows
Fixes: #10679
2017-09-12 07:59:26 +02:00
Juergen Spitzmueller
90df39d491 svg2*tex.py: use subprocess in order to handle path with spaces.
See #10679
2017-09-10 17:04:49 +02:00
Juergen Spitzmueller
2aaf185e7c Add default output format for pLaTeX
Fixes: #10747
2017-09-09 08:56:04 +02:00
Jean-Marc Lasgouttes
3d590d3bd7 Merge remote-tracking branch 'features/properpaint'
Now painting the workarea is done at paint events as should be.
Explicit painting after updating metrics has been replaced by a much
lighter procedure (updatePosCache) to update the insets positions cache.

Expected benefits:
- better performance
- proper use of subpixel aliasing

The LyXRC variable use_qimage is not needed anymore and is therefore removed.
2017-09-08 17:05:13 +02:00
Jean-Marc Lasgouttes
4f4383cac5 remove LyXRC::use_qimage
This is not needed anymore now that we do not need a backup pixmap.

Update LyXRC format to 23 and add conversion.
2017-09-08 16:58:21 +02:00
Jean-Marc Lasgouttes
5c54557350 Honor trailing spaces in LabelString and friends
Remove the trimming operation on LabelString, LabelStringAppendix,
EndLabelString and LabelCounter. This trimming meant that quotes
strings were not preserved, which is wrong.

To preserve layouts, the Layout format has been updated to 64, so that
layout2layout can remove extra spaces on existing strings, which
ensures that behavior is unchanged for old layouts (courtesy of rgheck).

It is now possible to re-add spaces in label strings where it makes
sense.

Fixes bug #10723.
2017-08-31 13:59:37 +02:00
Juergen Spitzmueller
933a7dee00 Improve the svg2*tex.py scripts.
The inkscape command was hardcoded, but it seems that we need the full
patch on Windows. Therefore we check in configure.py if inkscape is
installed and pass the proper name (and possibly path) to the scripts.

Should address problems mentioned in #10679
2017-08-28 08:05:29 +02:00