Commit Graph

527 Commits

Author SHA1 Message Date
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
Juergen Spitzmueller
9f5a55aadc Add proper author info and license header to the inkscape.xtemplate related files 2017-08-26 16:10:55 +02:00
José Matos
6b092c8400 scripts/ext_copy.py: add option to copy directly to the document directory
When this option is not given, as it happened before, the copier will create/use
a subdirectory in the target final directory
2017-08-08 15:23:03 +01:00
Juergen Spitzmueller
7945ba0cb0 Load color before polyglossia also in preview snippets
This fixes an error in the preview generation with polyglossia
and bidi that prevents snippet generation (and consequently also
"math as image" xhtml output).

Fixes: #10716.
2017-07-11 10:03:03 +02:00
Enrico Forestieri
7c14ff94e3 Fix bug #10718
Due to the peculiarities of Windows, it may happen that
pdftocairo is built without png support when compiled on this
platform. Unless explicitly requested (maybe for some peculiar
application and certainly not for usual distros), this is
highly improbable to occur on other platforms.
2017-07-09 22:27:06 +02:00
Kornel Benko
87ccd23047 Cmake export tests: Missed second parameter for writeConverters()
Unfortunatelly the prototype checking in perl is not very
sophisticated.
2017-06-21 00:09:50 +02:00
Kornel Benko
c5e53637c2 Cmake export tests: Modularisation of prefTest.pl
Also added a parameter to easier switch between standard settings in
preferences and settings to use in export tests.
2017-06-18 12:13:57 +02:00
Kornel Benko
195e55d3f4 Cmake export tests: Adapt to minted listings
1.) Handle also 'LatexCommand inputminted' in lyxStatus.pm
2.) Add '-shell-escape' to the appropriate converters.
  This applies only to the ctest-environment iff calling
  the script 'prefTest.pl' in the build directory.
2017-06-16 11:39:26 +02:00
Enrico Forestieri
ae56167718 Use a combo box instead of a check box for selecting the listings package 2017-06-12 17:24:26 +02:00
Kornel Benko
3b05cf2851 make tests: Disable sessions handling
We use prefTest.pl to allow use of external programs
while testing exports.
The change here affects only the keytests though.
2017-06-01 09:19:29 +02:00
Kornel Benko
ab956a50a6 Cmake tests: remove handling of bindings in user.bind.
It is done now by keytest.py
2017-05-22 08:56:42 +02:00
José Matos
cc7ca138da Fix call of layout2layout as a module.
If we call parser.parse_args(), thus with no arguments, the parser uses
sys.argv (because that is the default). We should pass argv since that was
the purpose of handling argv in the main function.

We pass argv[1:] since when parsing the arguments we always ignore the name
of the program.

Use the full power of argparse to declare the default value of the end_format.
2017-05-13 15:25:44 +01:00
José Matos
99cf71f8eb Fix call os lyx2lyx as a module.
If we call parser.parse_args(), thus with no arguments, the parser uses
sys.argv (because that is the default). We should pass argv since that was
the purpose of handling argv in the main function.
2017-05-13 13:39:02 +01:00
José Matos
6138880c08 cleanup: remove unneeded whitespaces 2017-05-13 13:38:01 +01:00
José Matos
430869a1bd prefs2prefs.py: whitespace changes
Bring this file in line with the other python scripts:
  * use four spaces for indentation instead of a tab

Remove empty whitespace at the end of lines.
2017-05-12 15:29:29 +01: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
Tommaso Cucinotta
066edd3c30 Enable graphics generation from external gnuplot scripts. 2017-05-04 00:44:00 +02:00
Kornel Benko
6e9e7f2b94 keytests: Allow definition of shortcuts for the test.
Since no extra shortcuts are defined, this is essentially a noop ATM.
2017-04-24 17:50:49 +02:00
Scott Kostyshak
e9deea03db Update the formats of lyxrc.dist.in to 21
In the end, no changes were needed. This was decided by prefs2prefs
for MacOSX and cygwin, and by manual inspection for Win32.
2017-04-23 23:23:03 -04:00
Enrico Forestieri
217696d34b lyxpak.py: Python 3 compatibility 2017-04-15 00:05:40 +02:00
Enrico Forestieri
1a26f9b26c layout2layout.py: Python 3 compatibility
The layout2layout.py script already reads and writes files in
binary format. However, all regexes and comparisons assume strings,
so that python3 chokes on them. This commit converts all involved
strings into bytes-like objects. In this way both python 2 and 3
behave the same.
2017-04-13 16:25:59 +02:00
Enrico Forestieri
db494452dc TeXFiles.py: Python 3 compatibility 2017-04-13 10:49:38 +02:00
Stephan Witt
4a009c85bb #9006 care to make prefs2prefs.py python 3 compatible 2017-04-08 20:58:16 +02:00
Juergen Spitzmueller
34943a4e5f Make Japanese Biblatex-aware
Biblatex can be used with Japanese, but then, biber (not pbibtex) should
be used as processor.

I this context, bring the jbibtex UI in line with bibtex, allowing for
a selection of alternatives.
2017-01-14 12:13:33 +01:00
Juergen Spitzmueller
979294d5ec New tag MaxCiteNames
This determines the number of authors before "et al.". We had it
hardcoded to 2, but actually the nuumber differs.
2017-01-07 16:44:27 +01:00
Juergen Spitzmueller
dcdd04a492 TeXFiles.py: scan for biblatex *.bbx and *.cbx files 2017-01-01 08:07:05 +01:00
Kornel Benko
5dbe57b3d6 Cmake tests: Add a script to modify preferences prior to export testing 2016-12-03 11:32:19 +01:00
Tommaso Cucinotta
cc653feb60 Bump up RC fileformat after [244de5d2/lyxgit] for the new 'needauth' options.
Addressing #10481.
2016-11-25 23:33:08 +01:00
Juergen Spitzmueller
fb9a866a66 Implement PassThru option to arguments. 2016-10-21 10:39:55 +02:00
Juergen Spitzmueller
0eb651a2cf New layout tags for better counter handling
* ResumeCounter: allow to resume an (enumerate) counter
* StepMasterCounter: allow to increase a master counter
2016-10-14 20:08:12 +02:00
Martin Vermeer
10c88aa58f Initial commit of Inkscape SVG LaTeX + PDF support
Based on Daniel Groger's work of five years ago, with minor changes

http://www.mail-archive.com/lyx-devel%40lists.lyx.org/msg169820.html

This extends the support for Xfig LaTeX + PDF to a more modern and
actively developed vector graphics editor. Embedded Objects manual
updated, also to include a workaround for an Inkscape 0.91 bug.
2016-10-04 00:01:18 +02:00
Guillaume Munch
77511ea1d5 Add an option to layout2layout to convert to a particular format 2016-07-31 18:34:33 +01:00
Richard Heck
d142ab94ef whitespace 2016-07-31 00:15:42 -04:00
Richard Heck
22e1063cb9 Fix indentation of fen2ascii script so it will run. 2016-07-30 23:17:30 -04:00
Georg Baum
d66d6f7805 Remove external date inset
The external date inset was implemented as a demonstrator for external insets
in general. It was never intended for production code. Now that we have several
external insets defined we do not need the demonstrator anymore. This fixes
bugs #4398 and #9948.
2016-06-19 21:23:25 +02:00
Georg Baum
d0aa7d24ab Make scripts python3 compatible
Again using 2to3 and manual checking
2016-06-08 20:02:33 +02:00
Georg Baum
8da5d01ff7 Detect ImageMagick 7
Imagemagick 7 does not have a convert command anymore, it is now called magick.
Joint work by Uwe and me.
2016-05-10 21:27:57 +02:00
Jean-Marc Lasgouttes
fd1ee3b424 Rename Caption:LongTableNoNumber to Caption:Unnumbered
The term LongTable has been deprecated and moreover the renaming makes the interface easier to the eye.

File format updated to 507. (conversion based on jamatos patch)
Layout format updated to 60.
tex2ylx tests updated.
Document EmbeddedObjects.lyx has been updated.
2016-03-30 16:07:00 +02:00
Guillaume Munch
366b319e42 New LFUN tabular-feature: update prefs2prefs.py 2016-01-27 18:20:53 +01:00
Guillaume Munch
3c9b62a69d Layout format update: AddToToc, IsTocCaption, OutlinerName
Preliminary work for addressing #7790. Thanks to Richard for providing initial
files this is based on.

Adding to TextClass:
    OutlinerName <string> <string>
    (the second string is translated)
e.g.:
    OutlinerName thm "Definitions & Theorems"

Adding to Layout:
    AddToToc <string>     (default "", means no)
    IsTocCaption <bool>   (default 0)
e.g.:
    AddToToc thm
    IsTocCaption 1

Adding to InsetLayout:
    AddToToc <string>     (default "", means no)
    IsTocCaption <bool>   (default 0)
e.g.:
    AddToToc literate

Adding to inset arguments:
    IsTocCaption <bool>   (default 0)
2015-12-13 19:56:49 +00:00
Richard Heck
4d94460ce3 Add new ProvideStyle tag, which adds a new style only if it does not already
exist. This will allow for a proper fix for bug #8796, though that may or may
not get fixed before 2.2.0.

Also, change the InStyle tag to ModifyStyle, per a suggestion of Jurgen's.
2015-12-05 18:11:46 -05:00
Richard Heck
f791b2d3ea Remove "dialog-show print" from various UI locations. 2015-11-26 23:21:07 -05:00
Richard Heck
23add332d9 Whitespace. 2015-11-26 23:21:07 -05:00
Scott Kostyshak
cd4fc6e2bc prefs2prefs: document removing print support 2015-11-07 01:48:47 -05:00
Guy Rutenberg
be41ccd4d4 lyxpak.py: Use subprocess for spawning scripts.
`os.popen` is deprecated since Python-2.6. Also, this fixes the handling
of files with quotes in their names. The patch requires Python >= 2.7.

Furthermore, the patch executes the lyx2lyx script with the same
interpreter used for it, to maintain compatibility.

I also removed some lines related to Python-2.4, as it is no longer
supported anyway.
2015-07-28 15:42:32 +02:00
Jean-Marc Lasgouttes
f41e423b30 Small clean-up to debug support 2015-07-08 11:03:42 +02:00
Enrico Forestieri
2ea3e07a23 Fix a couple of issues with filename encodings.
* Take into account the filesystem encoding for the zip export on *nix
  such that the representation of filenames in the zip archive is not
  mangled, when possible. This only concerns the way filenames are displayed
  as their creation in the filesystem was nevertheless correct.

* On Windows, try to obtain the command line parameters from the wide char
  representation by directly accessing the platform APIs through ctypes.
  This allows to also deal with filenames not exactly representable using
  the current code page and corrects a bug resulting in silently dropping
  those kind of filenames.
2015-07-05 15:45:40 +02:00
Guy Rutenberg
ca0ba7c6ad lyxpak: Fix the common path prefix calculation.
The old implementation could fail in some rare cases.
2015-07-05 13:33:14 +02: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
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
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
3c3cb777d6 Missing bits from 07169c7b
Sorry, was forgetting this.
2015-06-03 18:43:27 +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
eb748d6330 Make layout membership to ParagraphGroup settable (see #6854) 2015-06-01 16:11:05 +02:00
Richard Heck
3c2b3e6907 Remove printing support from LyX.
This was bug #6747.
2015-05-27 18:13:08 -04:00
Enrico Forestieri
c2a18fc142 Bump RC format for commit 260a98d2 2015-05-23 18:24:26 +02:00
Juergen Spitzmueller
47dd9189eb Add more Float tags to allow to disable wide and sideways feature
Fixes: #9557, #9558

This is amended to yesterday's layout format change.
2015-05-22 18:59:17 +02:00
Juergen Spitzmueller
7dc123b790 Add Float tag to determine allowed positioning options (#7752) 2015-05-22 10:37:14 +02:00
Enrico Forestieri
a365e696e2 Take into account compressed documents when creating a LyX archive 2015-05-14 18:58:46 +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
ca921fd650 Correctly indicate the failing converter
If epstopdf fails, pdftocairo is not called but the warning points
the finger to it. Also correctly indicate the failing file.
2015-04-29 16:20: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
c9b553fd2f Use pdftocairo (if available) for instant preview.
If pdftocairo is detected, it is used for generating bitmaps in the
legacy method route in preference to ghostscript. This is justified
by the fact that the conversion is 4 to 5 times faster and the
quality of the generated images is superior.
2015-04-27 21:37:26 +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
Juergen Spitzmueller
897b2e73a1 New (Inset)Layout tag PassThruChars 2015-04-20 18:13:49 +02:00
Georg Baum
88c274eee7 Let imagemagick detect file format (bug #2332)
Imagemagick detects the inut file format based on contents. Therefore it does
not make sense that we prefix the to be converted file name with the extension
(assuming that the file extension matches the imagemagick format name). This
breaks formats where the extension used by LyX does not match the imagemagick
format name.
2015-03-22 10:22:31 +01:00
Georg Baum
70afbc82ac Add low-res pdf export as suggested by James
As discussed on the list, but I did not need to create two new pdf formats
since any given document either uses TeX fonts or not. For the same reason
I also added an additional converter to PDF (cropped).
2015-02-11 22:24:04 +01:00