latex táblázat

Fórumok

Sziasztok!
Szeretnék egy olyan táblázatot létrehozni, amelynek az oszlopai előre meghatározott szélességűek és tartalmaz \multirow valamint \multicolumn elemeket.
Sokféleképpen próbáltam és már feltúrtam a netet is, de eddig sikertelenül.

Előre is köszi, bármilyen segítséget.

Hozzászólások

Ha a tablazat oszlopait p{Xcm}-kent adod meg?

Valami ilyesmi, de ebben nincs \multirow és nem próbáltam ki.

\begin{table}
\caption{Fix szélességű táblázat}\label{FixTable}
\begin{tabular}{|m{2cm}|m{3cm}|m{4cm}|}
\hline
Ssz.& \multicolumn{2}{c|}{Ár}\\ \cline{2-3}
& nettó & bruttó \\ \hline
1 & 1000 & 1250 \\ \hline
2 & 2000 & 2500 \\ \hline
\end{tabular}
\end{table}


\begin{tabularx}{teljesszelesseg}{p{elsooszlopszelessege}p{masodik...}}
...
\end{tabularx}

Pelda:


\documentclass{article}
\usepackage{tabularx}
\usepackage{multicol}
\usepackage{multirow}

\begin{document}

Start table:

\begin{tabularx}{120mm}{|p{40mm}|p{40mm}|p{40mm}|}
\cline{1-3}
\multirow{2}{*}{1} & \multicolumn{2}{|l|}{2} \\
\cline{2-3}
& x & \multirow{2}{*}{3} \\
\cline{1-2}
\multicolumn{2}{|l|}{4} & \\
\cline{1-3}
\end{tabularx}

after table\dots

\end{document}

Ez nem lenne rossz, de nekem így az utolsó oszlop tartalmát messze a táblázaton kívülre, jobbra helyezi.
\begin{tabularx}{19.2cm}{p{2.7cm}p{2.9cm}p{2.7cm}p{2.7cm}p{2.7cm}p{2.7cm}p{2.7cm}}
\hline
1. oszlop & 2. oszlop & 3. oszlop & 4. oszlop & 5. oszlop & 6. oszlop & 7. oszlop \\
\hline
szöveg1 & szöveg2 & szöveg3 & szöveg4 & szöveg5 & szöveg6 & szöveg7
\end{tabularx}

Illetve van még egy szűkítő feltétel, amit elfelejtettem írni. Az igazításokat is szeretném előre meghatározni.

Minden bizonnyal félreérthető voltam.
\begin{tabularx}{19.2cm}{p{2.7cm}p{2.9cm}p{2.7cm}p{2.7cm}p{2.7cm}p{2.7cm}p{2.7cm}}
\hline
1. oszlop & 2. oszlop & 3. oszlop & 4. oszlop & 5. oszlop & 6. oszlop & 7. oszlop \\
\hline
szöveg1 & szöveg2 & szöveg3 & szöveg4 & szöveg5 & szöveg6 & szöveg7 \\
\end{tabularx}

Fenti esetben a vonalakat megfelelő méretűre igazítja, viszont a 7. oszlop mindkét sorának tartalma már a megadott méreten kívülre kerül.

Annak az az oka, hogy a tábázat tartalma szélesebb minta maga a táblázat.
A {19.2cm} megadja a táblázat szélességét. A p{x.xcm} az oszlopok szélességét adja meg. És ehhez hozzáadódik az oszlopok távolsága.
Általában célszerű, ha csak a kritikus méretű (túl széles) oszlopok szélességét adjuk meg, a többit pedig a latex-re bízzuk.
Kiegészítés: ha nem adod meg az táblázat teljes szélességét akkor elég a tabular környezet.
Ha mindenáron meg akarod adni az összes méretet, akkor állítsd nullára az oszloptávolságot a @{}-al:
p{2.7cm}@{}p{2.7cm}

Ezt szeretném elérni:

\begin{tabularx}{19.2cm}{>{\hsize=2.0cm\raggedright}X@{\ }
>{\hsize=9.0cm\raggedright}X@{\ }
>{\hsize=2.2cm\raggedleft}X@{\ }
>{\hsize=0.8cm\centering}X@{\ }
>{\hsize=0.7cm\centering}X@{}
>{\hsize=0.9cm\centering}X@{\ }
>{\hsize=2.8cm\raggedleft}X@{}
}
\hline
1. oszlop & 2. oszlop & 3. oszlop & 4. oszlop & 5. oszlop & 6. oszlop & 7. oszlop \\
\hline
szöveg1 & szöveg2 & szöveg3 & szöveg4 & szöveg5 & szöveg6 & szöveg7 \\
szöveg8 & \multicolumn{4}{l}{szöveg9} & szöveg10 & szöveg11\\
\end{tabularx}

Viszont az X miatt nem engedi a \multicolumn használatát, ugyanakkor pedig pont a 2. oszlopban törni kellene a szöveget. A többi oszlopban ez nem érdekes.

Tudom, hogy gányolás, de ha csak az egyik oszlopban kell törni a szöveget, akkor talán elég lehet \parbox-okat tenni abba az oszlopba:


\documentclass{article}
\usepackage{multicol}
\usepackage{multirow}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\begin{document}

\begin{table}
\begin{tabular}{llrr}
\toprule % \hline
1. oszlop & 2. oszlop & 3. oszlop & 4. oszlop \\
\midrule % \hline
1. szöveg & \parbox{4cm}{Hosszú szöveg a 2. oszlopban} & \multicolumn{2}{c}{3. és 4. szöveg} \\
\midrule % \hline
\multirow{2}{*}{Multirow} & \parbox{4cm}{Még hosszabb szöveg a 2. oszlopban} & 3. szöveg & 4. szöveg \\
\cmidrule{2-4} % \cline{2-4}
& \parbox{4cm}{Elképzelhetetlenül hosszú szöveg a 2. oszlopban} & 3. szöveg & 4. szöveg \\
\bottomrule % \hline
\end{tabular}
\caption{Gányolás táblázattal}
\end{table}

\end{document}

Van benne multicolumn és multirow, ahogy kérted.

Továbbá én booktabs-szel csinálnám, mert szebb a kimenete, értve ezalatt a függőleges közöket és a fent-lent vastagított vonalakat.