Commit Graph

535 Commits

Author SHA1 Message Date
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