Hi Andreas again,

I've checked and you're right: multirow by itself is no more used, it's multirow2 that is used. The changes have been made in 2006:

https://sourceforge.net/p/dblatex/dblatex/ci/bc27ce5770bd70c2d9799e6c30cfb3ffebe379df/tree/latex/misc/multirow2.sty?diff=e8552fb986f46b7d6def8d1a39bfa0c34e63d8af

And the initial bug fix to have \@xmultirow \long is from one of your bug report in 2005:

https://sourceforge.net/p/dblatex/mailman/message/2402596/
https://sourceforge.net/p/dblatex/mailman/message/2402609/

I completely forgot those steps! So the patch is what you said: just remove the multirow references:

--- a/latex/style/dbk_table.sty Sun Oct 02 23:21:03 2016 +0200
+++ b/latex/style/dbk_table.sty Mon Oct 10 21:31:00 2016 +0200
@@ -9,7 +9,6 @@
 \usepackage{longtable}
 \usepackage{lscape}
 \usepackage{colortbl}
-\usepackage{multirow}
 \usepackage{calc}
 \usepackage{hhline}

@@ -21,16 +20,6 @@
   \expandafter[\expandafter3\expandafter]\expandafter{%
   \multicolumn{#1}{#2}{#3}}

-% Make \@xmultirow long
-\expandafter\long\expandafter\def%
-\expandafter\@xmultirow%
-\expandafter#\expandafter1%
-\expandafter[\expandafter#\expandafter2\expandafter]%
-\expandafter#\expandafter3%
-\expandafter[\expandafter#\expandafter4\expandafter]%
-\expandafter#\expandafter5%
-\expandafter{\@xmultirow{#1}[#2]{#3}[#4]{#5}}
-
 % For the newtbl code
 \newdimen\newtblstarfactor%
 \newdimen\newtblsparewidth%

Regards,
BG

On Mon, 10 Oct 2016 20:42:58 +0200, ben.guillon <ben.guil...@gmail.com> wrote:

Hi Andreas,

The internal macro \@xmultirow is called by \mutirow and is never called directly. That's why you dont see any \@xmultirow call in dblatex. This macro has been transformed into a \long macro because it fails in some cases.

So, for now it is best to apply your quick fix (which is the actual fix). I know it is not really good to patch a package like this, but I prefer using the current implementation with its improvements and just patching it, than providing my own macro.

This said, I will try to retrieve the case that made \@xmultirow fail; maybe that the current implementation is now robust to this case. Then the \long patching could be removed.

Regards,
BG

Hi BenoƮt,

is the problematic paragraph labeled "% Make \@xmultirow long" in
dbk_table.sty *needed at all* within current dblatex?  I can't find any
calls of the \@xmultirow macro within dblatex, and after commenting out
the paragraph a DocBook example with a table containing multirows still
is transformed to PDF without errors and looks as expected.

Eliminating this paragraph from dbk_table.sty seems to be cleaner, more
robust and future-proof than my previous hotfix candidate.

What do you think?

Regards, Andreas

Reply via email to