Commit Graph

30 Commits

Author SHA1 Message Date
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
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
Günter Milde
cec04267b2 Make preview skript Python-3 compatible. 2019-09-05 09:42:56 +02:00
José Matos
376cb6763f python3: fix the preview framework to work with both python 2 and 3 (part 4)
Remove support for python 1.x (really)

This code has not been used for a long time, probably never, since some code
above requires at least python 2.4 to work.

I got to this code by running futurize from python-future. There are no
significant warnings, mostly are related with the division but since
we are dividing floats there is no change between python 2 and 3.
2017-05-12 10:01:48 +01:00
José Matos
c546977c6e python3: fix the preview framework to work with both python 2 and 3 (part 2) 2017-05-11 15:50:08 +01:00
José Matos
11f2a59ce9 python3: fix the preview framework to work with both python 2 and 3 2017-05-09 11:20:34 +01:00
Georg Baum
d0aa7d24ab Make scripts python3 compatible
Again using 2to3 and manual checking
2016-06-08 20:02:33 +02:00
Enrico Forestieri
cabc7c4be1 Fix another couple of issues spotted by Guillaume
* Take into account macro redefinitions in the legacy route
* Take into account macros inside nested macro definitions
2015-06-20 16:37:12 +02:00
Enrico Forestieri
07169c7be2 Report how many preview snippets fail.
Instead of warning about latex problems that, most probably, are worked
around by the script, report how many preview snippets were not produced.
2015-06-03 17:57:09 +02:00
Enrico Forestieri
d3eae5b9c7 Do not show previews of snippets that produce latex errors 2015-04-30 00:37:05 +02:00
Richard Heck
f9de88c53c Remove the shebang line from our python scripts, per Jose's suggestion.
Fedora ships these chmod 644 and has never seen a problem. The advantage
to doing this is that it better controls what version of python we are
using to launch the script, and it will reveal if we're somehow somewhere
not controlling that properly.
2014-01-28 12:52:16 -05:00
Georg Baum
8c8e19bb1c Work around gnuhtml2latex encoding bug
gnuhtml2latex does not handle encodings at all. Therefore the result is not
imported correctly by tex2lyx if the HTML file is encoded in anything else
than ascii or latin1 (the default of tex2lyx). The simple wrapper script
loads inputenc if needed. It may not be possible to compile the result with
LaTeX, (e.gif utf8 is used), but for running tex2lyx it will work just fine.
2013-04-12 21:35:50 +02:00
Julien Rioux
10b2ef1af5 lyxpreview: Allow to find python scripts.
In particular, lilypond-book is just a python script. On windows,
we need to call the python interpreter, using the full path to
the script while being wary of spaces in the path.
2012-12-31 17:16:11 +01:00
Julien Rioux
13b1277cd2 lyxpreview: Handle bibtex-generated references and bibliography.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39795 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-03 16:35:27 +00:00
Julien Rioux
2645d57d89 * lyxpreview_tool.py : Allow to look for commands with arguments.
For example, find_exe(["bibtex -min-crossrefs=7"]) should search for
bibtex and if it is found, return the string "bibtex -min-crossrefs=7".

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39794 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-03 16:35:25 +00:00
Enrico Forestieri
a55f54b903 Let lyxpreview2bitmap.py also work on Windows when the PyWin extension modules
are not installed.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39741 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-24 01:27:40 +00:00
Julien Rioux
bb55234cac Better error and progress messages for lyxpreview.
Introduce --debug and --verbose flags to control output. Also, use the
python subprocess module to capture stderr from external commands, thus
bumping the python requirement to version 2.4 or later.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39660 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-11 18:23:29 +00:00
Julien Rioux
675f233f34 Some clean up of the lyxpreview code.
Move some common variables to lyxpreview_tools. Otherwise,
add a few variable names, making it easier to track things.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39656 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-11 18:22:29 +00:00
Julien Rioux
2dfa11904f Stylictic-only changes to lyxpreview.
Whitespace and line endings only, in preparation for some serious work.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39655 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-11 18:22:12 +00:00
Julien Rioux
adf6faf4d4 revert r37696 and apply a fallback mechanism to pdflatex
when latex fails with a preview. Fixes bug #7303 (IP fails with hyperref).
Patch by Ale with suggestions from Enrico

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38243 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-04 14:33:45 +00:00
Richard Heck
ccb0a36e08 Fix stupid typo.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37672 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-14 22:14:42 +00:00
Richard Heck
b7c21b6ac6 More has_key replacements.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37647 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-14 02:30:44 +00:00
Enrico Forestieri
46cb01a5e0 Fix bug #6720 (Better error handling of instant preview)
Patch from Ale revised by me.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37274 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-20 23:39:08 +00:00
Enrico Forestieri
4feb6cf62b Fix instant preview on windows when dvipng is not available.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36545 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-28 01:22:36 +00:00
Jürgen Spitzmüller
01c71419d9 *** Extend preview scripts to also handle PDF output (bug 2165) ***
* src/PreviewLoader.cpp:
	- add conditions for preview with pdf output

* lib/scripts/legacy_lyxpreview2ppm.py:
	- if no dvi preview file is available, check for a PDF file
	  and process that, if found
	- also produce png output, if requested.

* lib/scripts/lyxpreview2bitmap.py:
	- if no dvi preview file is available, check for a PDF file
	  and process that, if found

*  lib/scripts/lyxpreview_tools.py:
	- move some common functions here

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25419 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-02 14:42:04 +00:00
Bo Peng
2ae2c0db71 Remove hardcoded option -tt from python scripts
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14478 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-17 19:41:32 +00:00
Georg Baum
4ae87a3bb8 Call python with the -tt switch to make mixed tab/space indentation an error
* src/support/os.[Ch]
	(python): new function, return the python command

	* lib/lyx2lyx/lyx_1_5.py
	(revert_font_settings): replace tabs with spaces

The rest is simply s/python/python -tt/ and
s/"python"/lyx::support::os::python()/ where appropriate.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14270 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-30 13:54:01 +00:00
Angus Leeming
132d2a2da7 Enable instant preview to work if the path to GhostScript contains spaces (bug
2193).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10710 a592a061-630c-0410-9148-cb99ea01b6c8
2006-01-05 14:13:14 +00:00
Angus Leeming
f907db6a82 Move common code into a 'tools' file.
Implementation is as similar as possible to the well-tested code in the
1.3.x tree.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8878 a592a061-630c-0410-9148-cb99ea01b6c8
2004-08-09 11:31:18 +00:00