diff --git a/development/FORMAT b/development/FORMAT index 9384409b53..01319dff51 100644 --- a/development/FORMAT +++ b/development/FORMAT @@ -11,6 +11,16 @@ adjustments are made to tex2lyx and bugs are fixed in lyx2lyx. ----------------------- +2016-04-05 Enrico Forestieri + * Format incremented to 508 + New kind of Separator inset (latexpar). The old parbreak separator + used specifically to introduce a LaTeX paragraph break in the output + (and thus not as a proper separator) is turned into a latexpar kind. + The only difference with the parbreak kind is the representation + on screen. The new latexpar kind is represented by the same symbol + used previously for the parbreak one, while the latter is now + represented as a double line. + 2016-03-25 Jean-Marc Lasgouttes * Format incremented to 507 Convert caption subtype LongTableNoNumber to Unnumbered diff --git a/lib/lyx2lyx/LyX.py b/lib/lyx2lyx/LyX.py index e7078f148c..66108dca2c 100644 --- a/lib/lyx2lyx/LyX.py +++ b/lib/lyx2lyx/LyX.py @@ -86,7 +86,7 @@ format_relation = [("0_06", [200], minor_versions("0.6" , 4)), ("1_6", list(range(277,346)), minor_versions("1.6" , 10)), ("2_0", list(range(346,414)), minor_versions("2.0" , 8)), ("2_1", list(range(414,475)), minor_versions("2.1" , 0)), - ("2_2", list(range(475,508)), minor_versions("2.2" , 0)) + ("2_2", list(range(475,509)), minor_versions("2.2" , 0)) ] #################################################################### diff --git a/lib/lyx2lyx/lyx_2_2.py b/lib/lyx2lyx/lyx_2_2.py index 04c32ce7aa..37a26be592 100644 --- a/lib/lyx2lyx/lyx_2_2.py +++ b/lib/lyx2lyx/lyx_2_2.py @@ -334,6 +334,46 @@ def revert_separator(document): i = i + 1 +def convert_parbreak(document): + """ + Convert parbreak separators not specifically used to separate + environments to latexpar separators. + """ + parbreakinset = "\\begin_inset Separator parbreak" + i = 0 + while 1: + i = find_token(document.body, parbreakinset, i) + if i == -1: + return + lay = get_containing_layout(document.body, i) + if lay == False: + document.warning("Malformed LyX document: Can't convert separator inset at line " + str(i)) + i += 1 + continue + if lay[0] == "Standard": + # Convert only if not alone in the paragraph + k1 = find_nonempty_line(document.body, lay[1] + 1, i + 1) + k2 = find_nonempty_line(document.body, i + 1, lay[2]) + if (k1 < i) or (k2 > i + 1) or not check_token(document.body[i], parbreakinset): + document.body[i] = document.body[i].replace("parbreak", "latexpar") + else: + document.body[i] = document.body[i].replace("parbreak", "latexpar") + i += 1 + + +def revert_parbreak(document): + """ + Revert latexpar separators to parbreak separators. + """ + i = 0 + while 1: + i = find_token(document.body, "\\begin_inset Separator latexpar", i) + if i == -1: + return + document.body[i] = document.body[i].replace("latexpar", "parbreak") + i += 1 + + def revert_smash(document): " Set amsmath to on if smash commands are used " @@ -2284,10 +2324,12 @@ convert = [ [504, [convert_save_props]], [505, []], [506, [convert_info_tabular_feature]], - [507, [convert_longtable_label]] + [507, [convert_longtable_label]], + [508, [convert_parbreak]] ] revert = [ + [507, [revert_parbreak]], [506, [revert_longtable_label]], [505, [revert_info_tabular_feature]], [504, []], diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp index 1e8390575a..831c3f619c 100644 --- a/src/LyXAction.cpp +++ b/src/LyXAction.cpp @@ -635,9 +635,9 @@ void LyXAction::init() { LFUN_NEWLINE_INSERT, "newline-insert", Noop, Edit }, /*! * \var lyx::FuncCode lyx::LFUN_SEPARATOR_INSERT - * \li Action: Inserts an environment separator or paragraph break. + * \li Action: Inserts an environment separator or latex paragraph break. * \li Syntax: separator-insert [] - * \li Params: : default: plain + * \li Params: : default: plain * \li Origin: ef, 2 May 2014 * \endvar */ diff --git a/src/factory.cpp b/src/factory.cpp index b7320d0143..b8d94336b9 100644 --- a/src/factory.cpp +++ b/src/factory.cpp @@ -107,6 +107,8 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) inp.kind = InsetSeparatorParams::PLAIN; else if (name == "parbreak") inp.kind = InsetSeparatorParams::PARBREAK; + else if (name == "latexpar") + inp.kind = InsetSeparatorParams::LATEXPAR; else { lyxerr << "Wrong argument for LyX function 'separator-insert'." << endl; break; diff --git a/src/insets/InsetSeparator.cpp b/src/insets/InsetSeparator.cpp index b981d2cc5d..a759f1f395 100644 --- a/src/insets/InsetSeparator.cpp +++ b/src/insets/InsetSeparator.cpp @@ -52,6 +52,9 @@ void InsetSeparatorParams::write(ostream & os) const case InsetSeparatorParams::PARBREAK: os << "parbreak"; break; + case InsetSeparatorParams::LATEXPAR: + os << "latexpar"; + break; } } @@ -65,6 +68,8 @@ void InsetSeparatorParams::read(Lexer & lex) kind = InsetSeparatorParams::PLAIN; else if (token == "parbreak") kind = InsetSeparatorParams::PARBREAK; + else if (token == "latexpar") + kind = InsetSeparatorParams::LATEXPAR; else lex.printError("Unknown kind: `$$Token'"); } @@ -139,6 +144,7 @@ void InsetSeparator::latex(otexstream & os, OutputParams const &) const os << breakln << "%\n"; break; case InsetSeparatorParams::PARBREAK: + case InsetSeparatorParams::LATEXPAR: os << breakln << "\n"; break; default: @@ -177,7 +183,7 @@ void InsetSeparator::metrics(MetricsInfo & mi, Dimension & dim) const dim.asc = fm.maxAscent(); dim.des = fm.maxDescent(); dim.wid = fm.width('n'); - if (params_.kind == InsetSeparatorParams::PLAIN) + if (params_.kind != InsetSeparatorParams::LATEXPAR) dim.wid *= 8; } @@ -194,7 +200,7 @@ void InsetSeparator::draw(PainterInfo & pi, int x, int y) const int xp[7]; int yp[7]; - if (params_.kind == InsetSeparatorParams::PLAIN) { + if (params_.kind != InsetSeparatorParams::LATEXPAR) { yp[0] = int(y - 0.500 * asc * 0.75); yp[1] = yp[0]; @@ -202,6 +208,12 @@ void InsetSeparator::draw(PainterInfo & pi, int x, int y) const xp[1] = int(x + wid * 8); pi.pain.lines(xp, yp, 2, ColorName()); + + if (params_.kind == InsetSeparatorParams::PARBREAK) { + yp[0] += 0.25 * asc * 0.75; + yp[1] = yp[0]; + pi.pain.lines(xp, yp, 2, ColorName()); + } } else { yp[0] = int(y - 0.500 * asc * 0.5); yp[1] = int(y - 0.250 * asc * 0.5); @@ -266,6 +278,9 @@ void InsetSeparator::draw(PainterInfo & pi, int x, int y) const string InsetSeparator::contextMenuName() const { + if (params_.kind == InsetSeparatorParams::LATEXPAR) + return string(); + return "context-separator"; } diff --git a/src/insets/InsetSeparator.h b/src/insets/InsetSeparator.h index 2049c222a7..66a0c5515a 100644 --- a/src/insets/InsetSeparator.h +++ b/src/insets/InsetSeparator.h @@ -22,10 +22,9 @@ class InsetSeparatorParams public: /// The different kinds of separators we support enum Kind { - /// PLAIN, - /// - PARBREAK + PARBREAK, + LATEXPAR }; /// InsetSeparatorParams() : kind(PLAIN) {} diff --git a/src/tex2lyx/test/CJK.lyx.lyx b/src/tex2lyx/test/CJK.lyx.lyx index eaee0894f6..97845522f0 100644 --- a/src/tex2lyx/test/CJK.lyx.lyx +++ b/src/tex2lyx/test/CJK.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/CJKutf8.lyx.lyx b/src/tex2lyx/test/CJKutf8.lyx.lyx index d065946b7b..d06868bd93 100644 --- a/src/tex2lyx/test/CJKutf8.lyx.lyx +++ b/src/tex2lyx/test/CJKutf8.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/DummyDocument.lyx.lyx b/src/tex2lyx/test/DummyDocument.lyx.lyx index 583c8e414a..9f96ad64c4 100644 --- a/src/tex2lyx/test/DummyDocument.lyx.lyx +++ b/src/tex2lyx/test/DummyDocument.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/Dummy~Document.lyx.lyx b/src/tex2lyx/test/Dummy~Document.lyx.lyx index 5f1ac1f4df..ccaee94667 100644 --- a/src/tex2lyx/test/Dummy~Document.lyx.lyx +++ b/src/tex2lyx/test/Dummy~Document.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/XeTeX-polyglossia.lyx.lyx b/src/tex2lyx/test/XeTeX-polyglossia.lyx.lyx index eb50ffe2cf..7bc985996d 100644 --- a/src/tex2lyx/test/XeTeX-polyglossia.lyx.lyx +++ b/src/tex2lyx/test/XeTeX-polyglossia.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/algo2e.lyx.lyx b/src/tex2lyx/test/algo2e.lyx.lyx index 7f1de8a1c9..4b3ce67f73 100644 --- a/src/tex2lyx/test/algo2e.lyx.lyx +++ b/src/tex2lyx/test/algo2e.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/box-color-size-space-align.lyx.lyx b/src/tex2lyx/test/box-color-size-space-align.lyx.lyx index 4a572e0d7f..63b4c70f5d 100644 --- a/src/tex2lyx/test/box-color-size-space-align.lyx.lyx +++ b/src/tex2lyx/test/box-color-size-space-align.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/test-insets-basic.lyx.lyx b/src/tex2lyx/test/test-insets-basic.lyx.lyx index 369a4798fc..47be549cc8 100644 --- a/src/tex2lyx/test/test-insets-basic.lyx.lyx +++ b/src/tex2lyx/test/test-insets-basic.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/test-insets.lyx.lyx b/src/tex2lyx/test/test-insets.lyx.lyx index e22b2da361..fbfba6f482 100644 --- a/src/tex2lyx/test/test-insets.lyx.lyx +++ b/src/tex2lyx/test/test-insets.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/test-memoir.lyx.lyx b/src/tex2lyx/test/test-memoir.lyx.lyx index 73bc66a3df..b383241d3b 100644 --- a/src/tex2lyx/test/test-memoir.lyx.lyx +++ b/src/tex2lyx/test/test-memoir.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/test-modules.lyx.lyx b/src/tex2lyx/test/test-modules.lyx.lyx index 3de6556083..54b413f533 100644 --- a/src/tex2lyx/test/test-modules.lyx.lyx +++ b/src/tex2lyx/test/test-modules.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/test-refstyle-theorems.lyx.lyx b/src/tex2lyx/test/test-refstyle-theorems.lyx.lyx index eeae6ffba1..7da0d96024 100644 --- a/src/tex2lyx/test/test-refstyle-theorems.lyx.lyx +++ b/src/tex2lyx/test/test-refstyle-theorems.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/test-scr.lyx.lyx b/src/tex2lyx/test/test-scr.lyx.lyx index 6e6688ef4f..9958abe5a6 100644 --- a/src/tex2lyx/test/test-scr.lyx.lyx +++ b/src/tex2lyx/test/test-scr.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/test-structure.lyx.lyx b/src/tex2lyx/test/test-structure.lyx.lyx index db2763ca2b..feff755cd2 100644 --- a/src/tex2lyx/test/test-structure.lyx.lyx +++ b/src/tex2lyx/test/test-structure.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/test.lyx.lyx b/src/tex2lyx/test/test.lyx.lyx index dfc628cfcf..efe77aa7c0 100644 --- a/src/tex2lyx/test/test.lyx.lyx +++ b/src/tex2lyx/test/test.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/tex2lyx/test/verbatim.lyx.lyx b/src/tex2lyx/test/verbatim.lyx.lyx index 6438247dd8..831dc6bf96 100644 --- a/src/tex2lyx/test/verbatim.lyx.lyx +++ b/src/tex2lyx/test/verbatim.lyx.lyx @@ -1,5 +1,5 @@ #LyX file created by tex2lyx 2.2 -\lyxformat 507 +\lyxformat 508 \begin_document \begin_header \save_transient_properties true diff --git a/src/version.h b/src/version.h index a87b5bcd44..757f43f3c1 100644 --- a/src/version.h +++ b/src/version.h @@ -32,8 +32,8 @@ extern char const * const lyx_version_info; // Do not remove the comment below, so we get merge conflict in // independent branches. Instead add your own. -#define LYX_FORMAT_LYX 507 // lasgouttes: rename LongTableNoNumber to Unnumbered -#define LYX_FORMAT_TEX2LYX 507 +#define LYX_FORMAT_LYX 508 // forenr: convert parbreak to latexpar +#define LYX_FORMAT_TEX2LYX 508 #if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX #ifndef _MSC_VER