From b1e5663333f7c9bd806c74fdb85419e45d3615e2 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Mon, 10 Sep 2018 16:21:42 +0200 Subject: [PATCH] tex2lyx: Add support for horizontal longtabular alignment --- src/tex2lyx/TODO.txt | 1 - src/tex2lyx/table.cpp | 5 ++++- src/tex2lyx/tex2lyx.h | 3 ++- src/tex2lyx/text.cpp | 12 +++++++++++- status.23x | 2 ++ 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/tex2lyx/TODO.txt b/src/tex2lyx/TODO.txt index c33b4964b9..fa2bd7aca7 100644 --- a/src/tex2lyx/TODO.txt +++ b/src/tex2lyx/TODO.txt @@ -25,7 +25,6 @@ Format LaTeX feature LyX feature % !BIB program = comment understood by some TeX editors 358 custom makeindex command \index_command -363 horizontal longtable alignment InsetTabular 364 branch file name suffix \filename_suffix 371 automatic mhchem loading \use_mhchem 390 forward/reverse search \forward_search, \forward_macro diff --git a/src/tex2lyx/table.cpp b/src/tex2lyx/table.cpp index a3cabfd20c..d3392b0077 100644 --- a/src/tex2lyx/table.cpp +++ b/src/tex2lyx/table.cpp @@ -847,7 +847,8 @@ void handle_hline_below(RowInfo & ri, vector & ci) void handle_tabular(Parser & p, ostream & os, string const & name, - string const & tabularwidth, Context & context) + string const & tabularwidth, string const & halign, + Context & context) { bool const is_long_tabular(name == "longtable"); bool booktabs = false; @@ -1417,6 +1418,8 @@ void handle_tabular(Parser & p, ostream & os, string const & name, << write_attribute("lastFootTopDL", endlastfoot.topDL) << write_attribute("lastFootBottomDL", endlastfoot.bottomDL) << write_attribute("lastFootEmpty", endlastfoot.empty); + if (!halign.empty()) + os << write_attribute("longtabularalignment", halign); } else os << write_attribute("tabularvalignment", tabularvalignment) << write_attribute("tabularwidth", tabularwidth); diff --git a/src/tex2lyx/tex2lyx.h b/src/tex2lyx/tex2lyx.h index 1791c2f414..968e157270 100644 --- a/src/tex2lyx/tex2lyx.h +++ b/src/tex2lyx/tex2lyx.h @@ -81,7 +81,8 @@ void parse_math(Parser & p, std::ostream & os, unsigned flags, mode_type mode); /// in table.cpp void handle_tabular(Parser & p, std::ostream & os, std::string const & name, - std::string const & width, Context & context); + std::string const & width, std::string const & halign, + Context & context); /// in tex2lyx.cpp diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index b85020d457..85e2462e3e 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -1638,13 +1638,23 @@ void parse_environment(Parser & p, ostream & os, bool outer, else if (unstarred_name == "tabular" || name == "longtable") { eat_whitespace(p, os, parent_context, false); string width = "0pt"; + string halign; + if (name == "longtable" && p.hasOpt()) { + string const opt = p.getArg('[', ']'); + if (opt == "c") + halign = "center"; + else if (opt == "l") + halign = "left"; + else if (opt == "r") + halign = "right"; + } if (name == "tabular*") { width = lyx::translate_len(p.getArg('{', '}')); eat_whitespace(p, os, parent_context, false); } parent_context.check_layout(os); begin_inset(os, "Tabular "); - handle_tabular(p, os, name, width, parent_context); + handle_tabular(p, os, name, width, halign, parent_context); end_inset(os); p.skip_spaces(); } diff --git a/status.23x b/status.23x index 3a88190d6a..2daf9c72a5 100644 --- a/status.23x +++ b/status.23x @@ -37,6 +37,8 @@ What's new - Improve import of titling commands other than \maketitle (bug 6461). +- Add support for horizontal longtabular alignment. + * USER INTERFACE