Commit Graph

1353 Commits

Author SHA1 Message Date
Juergen Spitzmueller
6d6eda3950 Further simplification 2019-03-10 12:43:09 +01:00
Juergen Spitzmueller
27f15ac930 lyx_2_3.py: use revert_language rather than local methods. 2019-03-10 12:36:56 +01:00
Juergen Spitzmueller
c70c049417 Enhance revert_language function
This should now consider all cases (many of which were not handled so far)
2019-03-10 12:36:06 +01:00
Juergen Spitzmueller
ebd7a1a22a Support for the Malayalam language
Patch by Joice Joseph
2019-03-10 10:21:59 +01:00
Günter Milde
8060c8e488 ctests: Dedicated test and comments for "lyx2lyx.lyx_2_4.revert_fonts". 2019-01-29 15:11:21 +01:00
Kornel Benko
c2091becd2 Amend a25b9702, lyx2lyx: Corrected handling of system-font-specs
In the lines specifying the font, e.g.
	\font_typewriter "DejaVuSansMono" "DejaVu Sans Mono"
the system font specs may contain words separated by spaces
2019-01-29 13:21:05 +01:00
Günter Milde
49583b7dd0 Fix encoding issue with lyx2lyx conversion of "Date" info-insets.
Remaining problem: the name of the day appears in English instead of the document language.
2019-01-23 11:06:04 +01:00
Günter Milde
5a1fb5b5fa Improve readability of the lyx2lyx help output.
Also some small clean-up edits
2019-01-23 10:12:28 +01:00
Günter Milde
a925d25085 Improve a warning in lyx2lyx.
If get_containing_layout() finds a layout without name,
it will return an empty string as layoutname.
Calling functions can thus differentiate between missing
\begin_layout and missing layoutname and give a more specific
response or warning.
2019-01-18 00:20:19 +01:00
Scott Kostyshak
253b12aba1 Fix lyx2lyx export of long tables
For some .lyx files with long tables, this fix reduces the
differences in LaTeX export of master, compared to LaTeX export of
the lyx2lyx exported file. Further, this export fixes the lyx2lyx
roundtrip convergence for these cases. For discussion, see:

  https://www.mail-archive.com/search?l=mid&q=20190102230924.7zgla5lhkwxpx5fi%40barna
2019-01-16 18:38:45 -05:00
Günter Milde
9126f06d93 lyx2lyx: Minor formatting fix. 2019-01-10 17:20:34 +01:00
Juergen Spitzmueller
8c219daeeb Amend 348b3e5e49
thinko!
2019-01-06 15:19:50 +01:00
Juergen Spitzmueller
348b3e5e49 rewrite revert_jss reversion routine
Fixes: #11448
2019-01-04 16:36:11 +01:00
Juergen Spitzmueller
4ebb91194a Fixed remaining glitches in tcolorbox reversion routines
The indexes were off at several places, which made the routines leak.
2019-01-03 10:12:14 +01:00
Juergen Spitzmueller
25451bc252 fix tcolorbox reversion routines 2019-01-02 15:37:48 +01:00
Juergen Spitzmueller
71dfcb18b9 Fis some old box reversion routines. 2019-01-01 16:34:15 +01:00
Richard Kimberly Heck
75c8e5c000 Typo 2018-12-28 23:34:51 -05:00
Richard Kimberly Heck
f11a51be35 Fix bug #11378. 2018-12-28 23:02:47 -05:00
Juergen Spitzmueller
2927179499 lyx2lyx: fix float reversion routines
This jumped too wide with two subsequent floats.
2018-12-28 07:30:34 +01:00
Richard Kimberly Heck
01af66d658 Minor fixes 2018-11-03 10:00:48 -04:00
Richard Kimberly Heck
c9be8bff74 Speed up parenthesis conversion routine for Hebrew. Patch from Guy. 2018-11-03 09:58:32 -04:00
Juergen Spitzmueller
0ec295d63e Fix parentheses with Hebrew
Patch by Guy Rutenberg, with some changes of mine.

Fixes: #11191
2018-10-30 12:33:35 +01:00
Kornel Benko
99174acff8 Increment version to 565 due to add of adobe source pro fonts 2018-10-02 17:24:47 +02:00
Kornel Benko
6d0f7fc98d Added Adobe Source Pro fonts to lyx-GUI 2018-10-02 11:28:46 +02:00
Juergen Spitzmueller
5e26a3a633 Implement layout format in insetinfo
The docs refer to the outdated layout formats. The inset prevents this.
2018-09-20 11:33:03 +02:00
Juergen Spitzmueller
305d449a47 Fix copy-paste error.
Candidate for stable.
2018-09-16 10:34:01 +02:00
José Matos
cac27076ea Replace /usr/bin/env python -> /usr/bin/python3 2018-08-29 17:26:21 +01:00
Kornel Benko
a25b970296 Unified handling of IBMPlex and DejaVu fonts in lyx2lyx 2018-08-20 15:47:49 +02:00
Kornel Benko
66a33930f5 Amend 24050bf, DejaVu adm IBM-Plex fonts need different scale options 2018-08-18 17:10:43 +02:00
Kornel Benko
24050bfa30 Added IBM Plex fonts to lyx-GUI
This extends also 366e37c
2018-08-18 16:21:40 +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
e9b187af08 New info-inset type l7n
This returns a localized version of a string (in the GUI language)
if available, removing trailing colons and accelerator marks.

This can be used to refer to dialog items in the docs in a portable way.
2018-08-13 17:18:44 +02:00
Kornel Benko
df59cb89e9 Amend 3058deb: Make convert_fonts robust
The preamble handling needs to know, which package belongs to
which font-type
* The conversion is now independent of the sequence in the preamble
  This is important for instance, if the user created the preamble manually
2018-08-11 13:04:57 +02:00
Kornel Benko
3058debb60 Amend 366e37c: Add also the conversion routine
Created also routines convert_fonts() and revert_fonts()
so that adding new fonts which have similar features should be easier
2018-08-11 11:45:02 +02:00
Kornel Benko
366e37c851 Added latex-DejaVu fonts to lyx-GUI.
Increment lyx-format to 561
2018-08-10 19:38:06 +02:00
Juergen Spitzmueller
136b8a63be typo 2018-08-10 17:10:59 +02:00
Juergen Spitzmueller
7efdf98fc8 Further extend Info insets:
* Add time type (time, modtime, fixtime)
* Add "name-noext" buffer type (file name w/o extension)
2018-08-07 12:14:45 +02:00
Juergen Spitzmueller
74158ec6a7 remove duplicate entries
Paste error :-/
2018-08-07 10:30:49 +02:00
Juergen Spitzmueller
e730234e57 Add date-related info insets
With this commit, info insets leave the dark backstage room of an opaque
and quite hidden dev-only feature and come frontstage.

In the UI, they present themselves as "Fields" since this is what people
know from word processors. Other user-related fields that could be
implemented next: time, user name (I plan to do that for 2.4).

Since this supersedes date-insert, I removed Insert > Date from
the menu and propose to ditch date-insert and the corresponding rc.

The lyx2lyx reversion routine has lots of room for improvement and
attractive tasks for pythons (file timestamp, switch of localization).
Please feel invited!

This is a file format change.
2018-08-05 10:01:36 +02:00
Kornel Benko
a96845660e Do not increment start for find(phrase) while looping over phrases
The increment will be done at the end of the for-loop.
2018-08-02 22:51:36 +02:00
Kornel Benko
7f3fd5a809 lyx2lyx: Use correct check for emty lines while converting Begin/EndFrontmatter
* Coversion now tries not to pollute the result with emty lines
* stripped some trailing spaces
2018-07-31 13:44:48 +02:00
Kornel Benko
f8f9eec358 Amend 3e92efd: Remove (Begin|End)Frontmatter in elsarticle
1.) Revert changes in elsarticle.lyx
2.) upgrade format to 558
3.) added missing lyx2lyx routines
2018-07-30 13:44:01 +02:00
Juergen Spitzmueller
358436ea1e Split vcs Info inset from buffer Info inset
This should go separately in the GUI, and thus in the inset.
2018-07-29 19:41:34 +02:00
Richard Kimberly Heck
4549f46a43 Speed up convert_literalparam. Part of #11200. 2018-07-21 22:49:49 -04:00
Richard Kimberly Heck
8573391aee Try to speed up convert_phrases by re-ordering the loops. Part of #11200. 2018-07-21 22:32:39 -04:00
Richard Kimberly Heck
96ea84e042 Speed up convert_specialchars. Part of #11200. 2018-07-21 22:18:22 -04:00
Richard Kimberly Heck
4cb209b121 Speed up convert_captionlayouts. Part of #11200. 2018-07-21 22:18:09 -04:00
Juergen Spitzmueller
e6e3777363 Add support for bib files encoding
File format change.

Fixes: #6223
2018-07-07 15:25:35 +02:00
Juergen Spitzmueller
9dcb24d578 Support varwidth's V tabular column type
This effectively enables linebreaks, multipars and layout changes in
non-fixed width (i.e., standard) table columns.

Fixes: #6577

TODO: metrics are wrong (too wide) on screen with linebreaks.
2018-07-01 19:18:38 +02:00
Juergen Spitzmueller
f38816bf16 Add support for tabularx/xltabular
I.e., variable width columns in single and multiple page tables

Files format change.

Fixes: #4154, #4155
2018-06-24 10:05:15 +02:00
Juergen Spitzmueller
98621be1ba Support \cite command in tufte classes
This is an extra command used for sidenote citations. Since we do not
provide \cite with natbib (which tufte uses) as a choice, we use the
new AddToCiteEngine feature to add it.

File format change.

Fixes: #11150
2018-05-21 13:46:04 +02:00
Juergen Spitzmueller
aa9543fa2b Add support for global float alignment
It is now possible in the float settings (doc dialog) to specify a global
(inner) alignment for floats, and in the float settings, this can be
overridden (just as with float placement)

Fixes: #8665

File format change.
2018-05-10 20:15:11 +02:00
Juergen Spitzmueller
57dc817581 Add \nospellcheck font property
This revives a ten year old idea (and patch) by Dov.

You can now mark in the character dialog text and exclude it from spell
checking.

Fixes: #1042

File format change

Remaining issue: The instant spell checking marks are not immediately
removed, but only after some editing.
2018-05-06 19:48:21 +02:00
José Matos
94905f9ce3 Use insert_document_option to remove Georgian when reverting.
Less code for the same functionality. :-)
2018-04-28 18:47:32 +01:00
José Matos
08182ead14 Remove spurious spaces at the end of lines 2018-04-28 18:31:31 +01:00
José Matos
ea8b0df0e4 Add new semantic functions to add an remove document options.
The objective is to identify common operations and place them
in functions in order to improve the readability and correctness of the code.

is_document_option(document, option):
  Find if _option_ is a document option (\\options in the header).

insert_document_option(document, option):
  Insert _option_ as a document option.

remove_document_option(document, option):
  Remove _option_ as a document option.
2018-04-28 15:10:09 +01:00
José Matos
91ded82b52 Small improvement to pre-historic file format conversion. 2018-04-28 14:57:57 +01:00
José Matos
1fe328666c Improve the readability of lyx2lyx -l option
Example:
$ lyx2lyx -l
...
2.2     stable format:       508
        stable versions:     ['2.2.0', '2.2.1', '2.2.2', '2.2.3', '2.2.4']
        development formats: 475 - 507

2.3     stable format:       544
        stable versions:     ['2.3.0']
        development formats: 509 - 543

2.4     stable format:       -- not yet --
        stable versions:     -- not yet --
        development formats: 545 - 550
2018-04-28 14:42:31 +01: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
Juergen Spitzmueller
02d37932d0 \textcyr -> \textcyrillic
Use the command as defined by Babel. This allows us to use the (more
advanced) Babel command if provided instead of rolling our own.

I add a dummy file format change in case it turns out we need to
do something here for old documents (e.g. with user preamble definitions)
2018-04-21 16:28:15 +02:00
Juergen Spitzmueller
97e1806c4a Add a floating landscape inset 2018-04-18 16:20:19 +02:00
Juergen Spitzmueller
2551614ff1 Add Landscape module
Support for the (pdf)lscape package.

Fixes: #10801
2018-04-18 14:36:49 +02:00
Juergen Spitzmueller
feab528fd1 Add support for rotated longtabulars (via [pdf]lscape)
Fixes: #9194

See #9194 for why we use an earlier file format change here.
2018-04-18 13:22:29 +02:00
Richard Kimberly Heck
aabd3514dc Update version number in lyx2lyx. 2018-03-26 10:41:49 -04:00
Juergen Spitzmueller
cf9f077100 lyx2lyx fixes for the recent font additions. 2018-03-16 09:02:29 +01:00
Juergen Spitzmueller
6a0f0d28a5 Add support for xcharter font.
File format change.

Patch by Yuriy Skalko.
2018-03-15 15:44:49 +01:00
Uwe Stöhr
d3c51876a9 add support for the PT fonts
- fileformat change
- I also started https://wiki.lyx.org/LyX/NewInLyX24 for new features
2018-03-10 19:59:48 +01:00
Juergen Spitzmueller
e0a5babde7 Add literal param to InsetInclude
This is used by lstinput

File format change.

Fixes: #10544.
2018-02-23 08:58:16 +01:00
Juergen Spitzmueller
5b331b1466 Fix convert_separator routine with ancient LyX files. 2018-02-19 18:03:52 +01:00
Günter Milde
8f86b72cf4 lyx2lyx fixes and cleanup.
Don't insert empty line when translating QuoteInsets to literal
quotes.

Fix regexp pattern in re/convert_dashligatures.

Adjust logic in re/convert_dash(ligatur)es.
2018-02-09 16:49:23 +01:00
Günter Milde
e4f90cdf65 lyx2lyx refactoring.
Avoid duplicate code. Fix some corner-cases.
2018-02-07 18:49:21 +01:00
Günter Milde
2ddaa0a59b New lyx2lyx parser tools find_substring() and set_bool_value(). 2018-02-07 18:49:20 +01:00
Günter Milde
2b451f01f5 Add newlines around \backslash in put_cmd_in_ert.
Fix for 2fce4d49ee.
2018-02-04 10:16:54 +01:00
Günter Milde
2fce4d49ee lyx2lyx refactoring.
* use unicode.transform() instead of loop over replacements
* telling variable names
* remove trailing whitespace
* documentation update
* don't set use_ligature_dashes if both dash types are found
* remove spurious warning, normalize indentation, and use
  Python idioms in revert_baselineskip()
2018-01-31 21:13:43 +01:00
Günter Milde
a151b274bf Fix lyx2lyx dash conversion and make it faster. 2018-01-24 17:38:19 +01:00
Günter Milde
a77cfef1c6 Fix some more lyx2lyx round-trips.
Also restore corrupted seminar example.
Add default return value to parser_tools.is_in_inset().
2018-01-24 01:04:14 +01:00
Günter Milde
67eca412ff Fix some lyx2lyx round-trip tests.
Fix cases where lyx2lyx adds changes with every round cycle
uncovered by recent ctest change.

Add optional `delete` argument to parser_tools.get*value():
If True, delete the matching line.

More efficient "allowbreak" con/reversion.
2018-01-23 14:01:30 +01:00
Günter Milde
8da6cdcf23 New lyx2lyx tools.
New lyx2lyx parser tools find_complete_lines() (replaces find_slice),
del_complete_lines(), and find_across_lines(). Default value 0
for start argument in utility functions.

Rework the implementation of dash-conversion.
2018-01-23 09:10:50 +01:00
Günter Milde
8e825de4b2 Fix preamble-code removal in lyx2lyx. Do some optimizations.
Fix failure of revert_dashes() found by lyx2lyx ctests
using an efficient function to find a given sequence of lines
in a list of lines.

Some optimizations using Python idioms instead of C-like code.
2018-01-21 19:55:27 +01:00
Günter Milde
9ce5d8578b Prevent rows of hyphens becoming dashes when back-porting to 2.1.
Insert ligature breaks between hyphens where
they are separate in 2.2 but ligated by TeX in 2.1.

This fixes output with LyX 2.1 and prevents -- and --- becoming
en and em dash in the LyX source after a round-trip to 2.1
and back.

Solves lyx2lyx ctest failures with a warning about
possible line-break changes.
2018-01-17 21:39:03 +01:00
Günter Milde
6fe2e45f97 Remove trailing whitespace in lyx2lyx. 2018-01-17 09:48:08 +01:00
Günter Milde
73b6f42362 Do not convert dashes/hyphens in LyX-Code.
See previous commit and #10961
2018-01-10 12:07:36 +01:00
Günter Milde
cb1fda9988 Do not convert dashes/hyphens in Code insets (logical markup).
Code is by default rendered as typewriter and should be treated
similar:
In text marked up as code, -- or --- is typically part of a
command (e.g. "lyx --help" or "x--") and not a transliteration
for en dash, see #10961.
This is already handled so for text in typewriter font
(see Text.cpp:500).
2018-01-10 12:07:36 +01:00
Juergen Spitzmueller
7da8473c4f Start inset at new line 2018-01-06 10:43:44 +01:00
Scott Kostyshak
713fd70e8f Fix Python escaping of unicode string
When removing "r" from "ur", it is needed to add extra backslashes.
See:

  https://www.mail-archive.com/search?l=mid&q=2024193.iXIh6cq6L3%40myth

Thanks to José.

This commit amends b7983478 (and thus 586d16a4).
2017-12-26 02:10:49 -05:00
Scott Kostyshak
b7983478e1 Fix Python unicode string in lyx2lyx
This commit amends 586d16a4.
2017-12-23 21:47:08 -05:00
Günter Milde
586d16a49c Fix lyx2lyx conversion of dashes. 2017-12-19 14:10:57 +01:00
Uwe Stöhr
6c6cf5e071 use https:// in the first line of .lyx files
- also support to detect https via tex2lyx
2017-12-17 02:24:26 +01:00
Juergen Spitzmueller
648ddd25ec Collapsable -> Collapsible (part 1)
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 only covers the usage in comments and the like. More to follow.

This will all also all be backported to 2.3.x, for the sake of backwards
compatibility (cherry-picking).
2017-10-16 10:03:05 +02:00
Juergen Spitzmueller
4c62e25ed6 Fix #10760 2017-09-10 19:45:01 +02:00
Enrico Forestieri
8dab1cfe7e Fix bug #9101
Update the listings inset to optionally use the minted package
(instead of the listings one) for typesetting code listings.
Only one of the two packages can be used in a document, but it
is possible to switch packages without issues if the used options
are the same. If a switch is made and the options differ, one needs
to manually adjust them if they were entered in the advanced options
tab, or apply again the gui settings.
Note that minted requires the -shell-escape option for the latex
backend and the installation of additional software (python pygments).
2017-06-07 00:55:23 +02:00
Uwe Stöhr
bc9a7a21c8 lyx_2_3.py: assure that leqno /reqno is only handled if it is a document class option 2017-05-17 01:23:59 +02:00
Uwe Stöhr
220f504941 lyx_2_3.py: remove senseless warning 2017-05-17 01:11:58 +02:00
Richard Heck
d75c0ec8b1 Fix reversion of noprefix option for InsetRef.
Basically forgot to remove the option when we're not dealing with
a labelonly inset.
2017-05-16 12:34:56 -04:00
Uwe Stöhr
0dd3311dd4 rename buffer parameter math_number_before to math_numbering_side
this is a fileformat change

also try to fix an UI issue that JMarc gets
2017-05-13 20:39:45 +02:00
Juergen Spitzmueller
f943897d85 IndexPrint and Nomencl were not fully latexified.
Do not treat them as non-verbatim in conversion. This keeps math $...$
as math.

There will be problems with characters that are outside the given
encoding, but as long as there is no way to convert them to the
respective LaTeX macros from within lyx2lyx, I don't know how to solve
this.
2017-04-29 13:54:01 +02:00
Uwe Stöhr
3f8c15a7c6 support for the document class option leqno
- fileformat change
2017-04-25 02:28:10 +02:00
Uwe Stöhr
9ef3edf6d7 lyx_2_2.py: fix box reversion routine again
silly mistake, now Math.lyx reverts correctly again.
2017-04-21 01:05:54 +02:00
Günter Milde
f5ac0580ff special character "allowbreak" (ZWSP), fileformat change
New special character to mark an optional line break
without inserting a hyphen (ZWSP). See #10585.

Corresponds to the Unicode character U+200B ZERO WIDTH SPACE

 This isn't a “space”. It is an invisible character that can be used
 to provide line break opportunities.
 ​http://unicode.org/notes/tn27/

While the literal Unicode character can be used in the LyX
file, it is invisible in the GUI.

For visible feedback, the patch adds a new special character "allowbreak".

The small mark is inspired by LibereOffice.
A tooltip is added.
2017-04-20 23:28:48 +02:00
Uwe Stöhr
bc0591a265 lyx2lyx/lyx_2_0.py: fix a box reversion bug
- the use_makebox statement was not removed for nested boxes
2017-04-17 19:17:54 +02:00