Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

\multirow in longtable (gnumeric Export)

46 views
Skip to first unread message

Susanne Wunsch

unread,
Feb 9, 2010, 10:21:34 AM2/9/10
to
Hallo,

ich entwerfe recht umfangreiche Tabellen in gnumeric (1.9.18) und
exportiere diese nach LaTeX und XHTML.

In der LaTeX-Variante habe ich Schwierigkeiten, sobald \multirow
auftaucht:

Der \multirow-Inhalt wird genau eine Zeile versetzt (tiefer)
begonnen als in der Tabelle definiert wurde.

Leider habe ich den tatsächlichen Übeltäter noch nicht herausgefunden,
deshalb ist das Beispiel zwar stark zusammengeschrumpft, aber
vermutlich noch nicht "minimal".

Gnumeric definiert die Spaltenbreiten abhängig vom LaTeX-Dokument um,
das ist sehr nützlich, aber ich vermute darin die Ursache des
Fehlers. Wenn die Spaltenbreiten "von Hand" gesetzt werden,
funktioniert es.

--- LaTeX File -------------------------------------------------------

\listfiles
\documentclass{report}
\usepackage[latin1]{inputenc}
\usepackage{array}
\usepackage{longtable}
\usepackage{calc}
\usepackage{multirow}
\usepackage{ifthen}

\usepackage{booktabs}

\begin{document}

\providecommand{\gnumericPB}[1]%
{\let\gnumericTemp=\\#1\let\\=\gnumericTemp\hspace{0pt}}

\newlength{\gnumericTableWidth}
\newlength{\gnumericTableWidthComplete}

\setlength\gnumericTableWidth{%
104pt+%
100pt+%
631pt+%
0pt}

\def\gumericNumCols{3}
\setlength\gnumericTableWidthComplete{\gnumericTableWidth+%
\tabcolsep*\gumericNumCols*2+\arrayrulewidth*\gumericNumCols}
\ifthenelse{\lengthtest{\gnumericTableWidthComplete > \linewidth}}%
{\def\gnumericScale{\ratio{\linewidth-%
\tabcolsep*\gumericNumCols*2-%
\arrayrulewidth*\gumericNumCols}%
{\gnumericTableWidth}}}%
{\def\gnumericScale{1}}

\def\gnumericColA{104pt*\gnumericScale}
\def\gnumericColB{100pt*\gnumericScale}
\def\gnumericColC{631pt*\gnumericScale}

\begin{longtable}[c]{%
b{\gnumericColA}%
b{\gnumericColB}%
b{\gnumericColC}%
}

\toprule
\gnumericPB{\raggedright}\textbf{Name}
&\gnumericPB{\raggedright}\textbf{Problem}
&\gnumericPB{\raggedright}\textbf{Extra}
\\

\midrule

\multirow{2}*{\begin{tabular}{@{}p{\gnumericColA}@{}}%
\gnumericPB{\raggedright}\textbf{ABC (DEF 123-45)}\end{tabular}}
&\gnumericPB{\raggedright}Länge des Strings?
&
\\

&\gnumericPB{\raggedright}Testausstattung?
&
\\

\bottomrule
\end{longtable}
\end{document}

--- File List --------------------------------------------------------

report.cls 2004/02/16 v1.4f Standard LaTeX document class
size10.clo 2004/02/16 v1.4f Standard LaTeX file (size option)
inputenc.sty 2004/02/05 v1.0d Input encoding file
latin1.def 2004/02/05 v1.0d Input encoding file
array.sty 2008/09/09 v2.4c Tabular extension package (FMi)
longtable.sty 2004/02/01 v4.11 Multi-page Table package (DPC)
calc.sty 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
multirow.sty
ifthen.sty 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
booktabs.sty 2003/03/28 v1.618 publication quality tables

----------------------------------------------------------------------

PS: Wie bzw. wo kann man den Inhalt der \def-Anweisungen ansehen?

Liebe Grüße...
Susanne

Marco Daniel

unread,
Feb 9, 2010, 11:48:19 AM2/9/10
to

Hallo,

es funktioniert zum Beispiel mittels der Anweisung smash. Warum weiß
ich nicht. *G* Vielleicht hilft es jemanden die Ursache zu finden:

%%%%%%%%%%%
\listfiles
\documentclass{report}
\usepackage[utf8]{inputenc}


\usepackage{array}
\usepackage{longtable}
\usepackage{calc}
\usepackage{multirow}
\usepackage{ifthen}

\usepackage{booktabs}


\providecommand{\gnumericPB}[1]%
{\let\gnumericTemp=\\#1\let\\=\gnumericTemp\hspace{0pt}}

\newlength{\gnumericTableWidth}
\newlength{\gnumericTableWidthComplete}

\setlength\gnumericTableWidth{%
104pt+%
100pt+%
631pt+%
0pt}

\def\gumericNumCols{3}
\setlength\gnumericTableWidthComplete{\gnumericTableWidth+%
\tabcolsep*\gumericNumCols*2+\arrayrulewidth*\gumericNumCols}
\ifthenelse{\lengthtest{\gnumericTableWidthComplete > \linewidth}}%
{\def\gnumericScale{\ratio{\linewidth-%
\tabcolsep*\gumericNumCols*2-%
\arrayrulewidth*\gumericNumCols}%
{\gnumericTableWidth}}}%
{\def\gnumericScale{1}}

\def\gnumericColA{104pt*\gnumericScale}
\newlength{\testlaenge}
\setlength{\testlaenge}{104pt}


\def\gnumericColB{100pt*\gnumericScale}
\def\gnumericColC{631pt*\gnumericScale}

\begin{document}


\begin{longtable}[c]{%
b{\gnumericColA}%
b{\gnumericColB}%
b{\gnumericColC}%
}
\toprule
\gnumericPB{\raggedright}\textbf{Name}
&\gnumericPB{\raggedright}\textbf{Problem}
&\gnumericPB{\raggedright}\textbf{Extra}

\\\midrule\let\testscale\gnumericScale
\multirow{2}*{\smash{\begin{tabular}{@{}p{\gnumericColA}@{}}%


\gnumericPB{\raggedright}\textbf{ABC (DEF 123-45)}
\end{tabular}}}
&\gnumericPB{\raggedright}Länge des Strings?&
\\
&\gnumericPB{\raggedright}Testausstattung?&

\\\bottomrule
\end{longtable}
\end{document}
%%%%%%%%%%%%%%%

Gruß
Marco

Susanne Wunsch

unread,
Feb 9, 2010, 12:30:18 PM2/9/10
to
Hallo Marco,

On Tue, 9 Feb 2010 08:48:19 -0800 (PST)
Marco Daniel <marcoda...@googlemail.com> wrote:

> es funktioniert zum Beispiel mittels der Anweisung smash. Warum weiß
> ich nicht. *G* Vielleicht hilft es jemanden die Ursache zu finden:

Das würde ich noch nicht _funktionieren_ nennen.

Ich habe nur "smash" eingebaut, sowohl die unbenutzte Länge
"testlaenge" als auch die \let-Anweisung für 'gnumericScale' bringen
keine Veränderungen.

Der Output verbessert sich etwas. Allerdings stimmt die Anordnung
nachwievor nicht.

Wenn man an den Spaltendefinitionen der longtable "spielt", also "b"
gegenüber "m" und "p" vergleicht, erkennt man, dass der Text nun zu
hoch gesetzt wird.

Danke trotzdem für den Hinweis, dieser Befehl ist mir bisher noch
nicht unter die Finger gekommen. ;-)

Liebe Grüße...
Susanne

Marco Daniel

unread,
Feb 9, 2010, 2:41:42 PM2/9/10
to
On 9 Feb., 18:30, Susanne Wunsch <la...@uriah.heep.sax.de> wrote:
> Ich habe nur "smash" eingebaut, sowohl die unbenutzte Länge
> "testlaenge" als auch die \let-Anweisung für 'gnumericScale' bringen
> keine Veränderungen.
Das sind Überbleibsel von anderen Versuchen. *G*
Sorry

Gruß
Marco

0 new messages