Commit Graph

68 Commits

Author SHA1 Message Date
José Matos
b1860e301a 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.

(cherry picked from commit 8dd31803b1)
2019-10-30 19:27:50 -04: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
1f5241f747 python3: fix the preview framework to work with both python 2 and 3 (part 3)
trivial fix: xrange -> range
2017-05-11 20:56:56 +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
Günter Milde
2488bf6eaa Fix the fix for python 2 and 3 compatibility.
Really remove the "r" prefix.
2017-05-11 16:30:10 +02:00
José Matos
6495cd135f make python string compliant with python 2 and 3
python 2 does not allow to declare a string as raw byte so we double
the backslashes and remove the r preffix

python 3 accepts rb"..." meaning a byte string that is raw. In this context
raw means that the backslash does not has any special meaning and thus it
is not escaped. This is usefull together with regular expressions where the
backslashes are special.

In the worst possible case, like this one, we must use 4 backslashes to represent
one in the regular expression...
2017-05-09 16:53:32 +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
Enrico Forestieri
0751f96d25 Properly account for font size when generating previews
Patch by Guillaume.
2015-06-25 01:39:25 +02:00
Enrico Forestieri
dd09a5cabc Use the draft option for microtype
Instead of redefining \usepackage for avoiding the microtype package
when generating previews in dvi mode, the draft option can be used
for disabling it. This also allows to somewhat simplify the
fix_latex_file function.
2015-06-20 21:58:19 +02:00
Enrico Forestieri
98a5072a58 Fix a couple of issues with macros and previews
* Fix typo causing to only account for the first char of a macro name
* Also check for macros as arguments of other macros
2015-06-20 01:44:22 +02:00
Enrico Forestieri
11c2b7792c Replacement for commits bc47054b and ad0d0f6d
The strategy adopted in bc47054b had some drawbacks related to the way
instant preview snippets are generated. See the subthread starting at
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg187916.html
for details.

The strategy adopted in this commit is that of adding macro definitions
only for the macros actually used in a preview snippet, independently
of whether some macro was already used in a previous snippet. In this way
the snippets don't need to be changed according to whether they are
compiled as a whole or separately from each other. This fact was causing
the regeneration of a preview snippet whenever the cursor entered the
corresponding inset, even if the generated image would have not changed.
The problem of defining or redefining a macro is taken care by the
python scripts.
2015-06-14 18:10:29 +02:00
Enrico Forestieri
5998555743 Account for the trailing optional argument of \usepackage.
The full syntax is \usepackage[<options>]{<name>}[<min.date>]
even if this is not documented in my old Lamport's LaTeX book...
2015-06-03 19:02:54 +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
0db57b6532 Correctly escape backslashes.
Curiously, this was already working right.
2015-06-03 01:10:45 +02:00
Enrico Forestieri
3924030e82 Fix some preview issues reported on the devel list.
* Provide for vector fonts only if needed.
* Make sure microtype doesn't throw a trantum in dvi mode.
* Use correct macro definition in preview insets.
2015-06-03 00:24:54 +02:00
Juergen Spitzmueller
bc47054be8 Properly fix #6369
Avoid that \newcommand[x] definitions of math macros are pushed multiple
times to the preview loader.

Redefinitions (via \renewcommand[x]) are properly handled.
2015-04-30 16:48:55 +02:00
Enrico Forestieri
d3eae5b9c7 Do not show previews of snippets that produce latex errors 2015-04-30 00:37:05 +02:00
Enrico Forestieri
2a77dc5ec6 Forgot to escape the dot 2015-04-29 18:04:51 +02:00
Enrico Forestieri
83f2fe7045 Correct progress message
Now we also process with pdflatex the previews requiring hyperref.
2015-04-29 18:00:28 +02:00
Enrico Forestieri
2bbf775c74 Detect hyperref when generating previews
If use of hyperref is detected, the postscript route is not attempted
(because we know it will fail) and the PDF route is directly chosen.
Also account for all upper case extensions for pdflatex image files.
2015-04-29 17:29:27 +02:00
Enrico Forestieri
d44b0a19cb Amend 75f7eafd
Was forgetting this last bit from 64e0c558. Also give a message such
that the user is informed that not everything is lost if latex fails.
With this, the previews are generated also when the document directly
specifies a specific pdf output format.
2015-04-29 13:59:28 +02:00
Enrico Forestieri
75f7eafd65 Try even harder to obtain an instant preview
This is a followup commit to 691fdea3 and restores the behavior of the
script as it was intended before 64e0c558, other than taking into account
possible inclusion of files that only pdflatex can process and the
possibility of multiple defined math macros.
The instant previews in the math manual now work again.
2015-04-29 12:32:54 +02:00
Enrico Forestieri
691fdea346 Try hard to obtain an instant preview.
When the dvipng route is selected and latex fails, the lyxpreview2bitmap.py
script simply bails out. The failure may be due to using a specific pdf
only feature in ERT (for example, the inclusion of a pdf image).
In this case the procedure may succeed simply trying to use pdflatex
and the legacy conversion method.
2015-04-27 17:28:39 +02:00
Enrico Forestieri
890b9a53cb Fix bug #7850 (Preview of inline math misaligned) 2015-04-26 19:08:16 +02:00
Richard Heck
64e0c5589c Return an error if LaTeX is unable to compile the file. 2014-04-21 11:51:57 -04: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
Juergen Spitzmueller
4df9eb36a0 Remove annoying warning 2012-09-25 17:01:23 +02:00
Julien Rioux
35b580fb30 lyxpreview: Simplify the color handling.
Let's have this in trunk for testing. The real difference maker
when it comes to color is whether we use dvipng or ghostscript.

For dvipng:

  - The color info is passed as command-line arguments.

  - The tightpage option is not necessary, and since it adds
    ps specials to the output, we shouldn't use it.

For ghostscript:

  - The color info needs to be in the latex file.

  - The foreground color is set for each preview inset.

  - The background color is set by \pagecolor in the preamble,
    which is understood by pdflatex, but ignored in dvips mode.
    Thus dvips is handled with a ps special.

  - The tightpage option is necessary to crop the images.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39797 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-03 16:43:33 +00:00
Julien Rioux
873f0f4297 lyxpreview: Simplify the handling of lilypond-book.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39796 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-03 16:35:29 +00: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
Enrico Forestieri
968ab69e88 Fix the following problem with Python 2.4:
Traceback (most recent call last):
  File "/opt/src/lyx-devel/lib/scripts/lyxpreview2bitmap.py", line 535, in ?
    exit(main(sys.argv)[0])
TypeError: 'str' object is not callable



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39769 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-26 15:57:17 +00:00
Julien Rioux
45280f6bb5 Refine the lyxpreview legacy conversion (the ghostscript one).
- Break up steps 1, 2 and 3 from the legacy preview mechanism.
    These are really separate steps.

      1) Add color info, run latex
      2) Run dvips
      3) Run ghostscript

  - In the case of pdf output, skip step 2 and go directly to step 3.
  - Make sure that we fall back to the legacy conversion whenever we can.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39661 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-11 18:23:41 +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
10868c31ac Merge the preview mechanism for lilypond-book with the standard one.
- Handle the preprocessing in the main lyxpreview script with the
    command-line arguments --lilypond and --lilypond-book=exe.
  - Remove the obsoleted file lyxpreview-lytex2bitmap.py and the
    corresponding lines in configure.py.

Fix for the japanese preview still to come.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39658 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-11 18:22:59 +00:00
Julien Rioux
2bd747fad4 Add command-line arguments to lyxpreview2bitmap.py
Add command-line arguments in a standard unix fashion, using getopt.

    Usage: ./lyxpreview2bitmap.py <options> <input file>

    Options:
      -h, --help:    Show this help screen and exit
      --dpi=<res>:   Resolution per inch (default: 128)
      --png, --ppm:  Select the output format (default: png)
      --fg=<color>:  Foreground color (default: black, ie '000000')
      --bg=<color>:  Background color (default: white, ie 'ffffff')
      --latex=<exe>: Specify the executable for latex (default: latex)

    The colors are hexadecimal strings, eg 'faf0e6'.

The changes to PreviewLoader.cpp break the preview of lilypond-book
and japanese files, but they will be handled in the next commits.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39657 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-11 18:22:43 +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
Enrico Forestieri
5e52eb2dc2 Don't write a comma if not needed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38710 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-11 17:11:08 +00:00
Enrico Forestieri
cc472f5d69 There's no reason to leave in place the 10pt option, as it may not be the
default option. Also account for the fact that babel may be switched off.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38708 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-11 14:33:49 +00:00
Enrico Forestieri
b44fe8b74b Fix bug #2200 (The size of previewed images should be independent of the latex font size)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38701 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-11 11:48:20 +00:00
Pavel Sanda
f9f7c4a4bd Mostly documentation for the pythonic part of instant preview.
Patch from Ale.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg167220.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38256 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-05 14:54:38 +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
Julien Rioux
9abb85aa72 fix regex after r38119 and r38120
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38141 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-30 00:24:15 +00:00
Jürgen Spitzmüller
fe76628b9e * lyxpreview2bitmap.py: color pdf also with XeTeX.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38119 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-29 10:01:49 +00:00
Jürgen Spitzmüller
ebebdef6c9 * lyxpreview2bitmap.py:
- recognize foreground color in pdf route. This is not nice, but there's no better way, AFAICS.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37695 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-16 16:57:02 +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
32ea5966c5 Allow previewing images generated through postscript specials which are
not correctly handled by dvipng. When a ps special is detected in the dvi
file, the old good legacy method is used. Patch from Ale.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36685 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-03 17:37:38 +00:00
Jürgen Spitzmüller
61e55ac197 * fix instant preview without dvipng (bug 6579).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33640 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-06 14:53:27 +00:00
Jürgen Spitzmüller
c2ef290547 * enable instant preview with XeTeX (requires preview-latex v.11.86) [bug #5577]
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33554 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-24 10:47:35 +00:00
Jürgen Spitzmüller
938c761989 * lib/scripts/lyxpreview2bitmap.py:
- do not boil out immediately after a LaTeX error

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25420 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-02 16:07:51 +00:00