From: Juergen Spitzmueller Date: Fri, 31 May 2019 08:48:00 +0000 (+0200) Subject: Fix toprule with booktabs/longtable and captions X-Git-Tag: 2.3.4~115 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=f8eb3b97428a77a00cf2d03ebcfc9b044c37f5f4;p=features.git Fix toprule with booktabs/longtable and captions (cherry picked from commit fe589d562224b2cebaade60facb9c727d8ea7a60) --- diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp index 375d7561b6..36e99b62c6 100644 --- a/src/insets/InsetTabular.cpp +++ b/src/insets/InsetTabular.cpp @@ -2203,14 +2203,18 @@ void Tabular::TeXTopHLine(otexstream & os, row_type row, string const & lang, if ((row == 0 && nset == 0) || (row > 0 && nset != ncols())) return; + // Is this the actual first row (excluding longtable caption row)? + bool const realfirstrow = (row == 0 + || (is_long_tabular && row == 1 && ltCaption(0))); + // only output complete row lines and the 1st row's clines if (nset == ncols()) { if (use_booktabs) { - os << (row == 0 ? "\\toprule " : "\\midrule "); + os << (realfirstrow ? "\\toprule " : "\\midrule "); } else { os << "\\hline "; } - } else if (row == 0) { + } else if (realfirstrow) { for (auto & c : columns) { if (topline.find(c)->second) { col_type offset = 0; @@ -4014,7 +4018,9 @@ void InsetTabular::drawCellLines(PainterInfo & pi, int x, int y, // Top bool drawline = tabular.topLine(cell) || (row > 0 && tabular.bottomLine(tabular.cellAbove(cell))); - bool heavy = tabular.use_booktabs && row == 0 && tabular.rowTopLine(row); + bool heavy = tabular.use_booktabs + && (row == 0 || (tabular.is_long_tabular && row == 1 && tabular.ltCaption(0))) + && tabular.rowTopLine(row); tabline(pi, x, y, x + w, y, drawline, heavy); // Bottom diff --git a/status.23x b/status.23x index fcd96572d7..9b0ff657f2 100644 --- a/status.23x +++ b/status.23x @@ -45,7 +45,7 @@ What's new * DOCUMENT INPUT/OUTPUT - +- Fix toprule with booktabs/longtable and captions (bug 11589). * USER INTERFACE