Tabularx Multicolumn Problem

Tabellen und Grafiken erstellen und anordnen


Laiwan
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 6. Okt 2009, 13:58

Tabularx Multicolumn Problem

Beitrag von Laiwan »

Hallo Leute,

ich habe eine Tabelle erstellt, die so aussehen soll, wie die auf dieser Seite ganz oben: Der Link.

Hier mein Minimalbeispiel:
\documentclass[10pt,parskip=full-]{scrartcl}
\usepackage{tabularx}

\begin{document}	
	
\newcolumntype{y}{>{\raggedright\arraybackslash}X}
		
	\begin{tabularx}{400pt}{|y|y|y|y|y|y|y|}\hline
		Singular & libro & mesa & noche & esquí & hotel & ciudad \\\hline
		Plural & libro\textbf{s} & mesa\textbf{s} & noche\textbf{s} & esquí\textbf{es} & hotel\textbf{es} & ciudad\textbf{es}\\\hline
		& \multicolumn{3}{y|}{Der Singular endet auf einem \textbf{unbetonten Vokal} (Selbstlaut): Anhängen von -s} 
		& \multicolumn{3}{y|}{Der Singular endet auf einem \textbf{unbetonten Vokal} (Selbstlaut): Anhängen von -s} \\\hline
		
	\end{tabularx}
	
\end{document}

Ich denke mein Porblem ist ersichtlich. Die Multicolumn ist zwar über drei Zellen gestreckt, jedoch wird der Inhalt weiterhin auf die Breite einer y-Zelle begrenzt. Wie kann ich dies umgehen?

Danke im voraus,

Laiwan
Zuletzt geändert von Laiwan am Di 6. Okt 2009, 15:56, insgesamt 1-mal geändert.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2500
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

\multicolumn und tabularx

Beitrag von Stefan Kottwitz »

Hallo Laiwan,

willkommen im Forum!
Die y-Spalten haben nunmal überall die gleiche Breite, das resultiert dann auch als multicolumn-Breite. Als multicolumn-Parameter könnte man auch eine p-Spalte gewisser Breite nehmen, wenn man bei der Auto-Anpassung bleiben möchte, könnte man beispielsweise so modifizieren:
\usepackage{calc}
\newcommand*\adjust{\setlength\hsize{3\hsize+4\tabcolsep}}
... \multicolumn{3}{>{\adjust}y|}{...} ...
Stefan

Laiwan
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 6. Okt 2009, 13:58

Beitrag von Laiwan »

Hallo Stefan,

vielen Dank für deine Antwort. Nun funktioniert es so, wie ich es haben will. Leider weiß ich nicht warum. Kannst du mir sagen, was deine Änderungen im Einzelnen bewirken oder auf ein gutes Tutorial verweisen?

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2500
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

\multicolumn und tabularx

Beitrag von Stefan Kottwitz »

Hallo Laiwan,

hier wird im Nachhinein die Breite der multicolumn-Zelle manipuliert, sie wird mit 3 multipliziert und die Zwischenräume werden hinzugezählt, damit man auf die Breite von 3 y- bzw. X-Spalten kommt.
Hierzu kann man die tabularx-Dokumentation lesen (texdoc tabularx auf der Kommandozeile Deines Rechners). Darin steht in 4.3 Column widths z.B. "Do not use \multicolumn entries which cross any X column." jedoch auch "As with most rules, these may be broken if you know what you are doing." :wink: und eine Bemerkung zu \hsize.

Stefan

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Das scheint zusammen mit longtable nicht zu funktionieren. Hatte versucht es nachzubauen. Der unten stehende Code funktioniert ohne longtable.
%% XeTeX
\documentclass{article}
\usepackage{mwe}

\usepackage{tabularx}
\usepackage{longtable}

\begin{document}
\newcolumntype{y}{>{\raggedright\arraybackslash}X}

\begin{longtable}
\begin{tabularx}{\linewidth}{|y|y|y|y|y|}
        keyB&mytext&mytext&mytext&mytext\\
        \hline
    \end{tabularx}
\end{longtable}

\end{document}
Die (für mich nicht interpretierbare) build Meldung dazu
  1 t.tex|| Package array Error:  Illegal pream-token (\begin): `c' used.
  2 t.tex|13 error| Illegal unit of measure (pt inserted). } \begin{tabularx}{\linewidth} {|y|y|y|y|y|}                                                                  
  3 t.tex|14 error| Extra alignment tab has been changed to \cr. \endtemplate  keyB& mytext&mytext&mytext&mytext\\
  4 t.tex|14 error| Extra alignment tab has been changed to \cr. \endtemplate  keyB&mytext& mytext&mytext&mytext\\
  5 t.tex|14 error| Extra alignment tab has been changed to \cr. \endtemplate  keyB&mytext&mytext& mytext&mytext\\
  6 t.tex|14 error| Extra alignment tab has been changed to \cr. \endtemplate  keyB&mytext&mytext&mytext& mytext\\
  7 t.tex|| \begin{longtable} on input line 12 ended by \end{tabularx}.
  8 t.tex|20 error| Missing } inserted. } \end{longtable}
  9 t.tex|20 error| Missing \cr inserted. \cr  \end{longtable}
 10 t.tex|20 error| Misplaced \cr. \cr  \end{longtable}
 11 t.tex|20 error| Missing \cr inserted. \cr  \end{longtable}
 12 t.tex|20 error| Misplaced \cr. \cr  \end{longtable}
 13 t.tex|20 error| Missing \cr inserted. \cr  \end{longtable} 
 14 t.tex|20 error| Misplaced \cr. \cr  \end{longtable}
...
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Du kannst tabularx nicht in eine longtable package. Du kannst auch keinen Wanderschuh in einen Turnschuh stecken. Beide machen ungefähr dasselbe, aber anders. Du suchst einen Gummistiefel.

Warum hängst du dich eigentlich an ein uraltes Thema, anstatt ein neues zu starten?
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Antworten