2010-10-21 16 views
27

Tablodaki çoklu yay içindeki çizginin nasıl kırılacağını öğrenemiyorum. İki sıra yüksekliğindeki bir hücreye sahip olduğum bir masa yapmam gerekiyor ve içinde uzun bir metin var, ancak çizgiyi kırmıyor ve metin sol taraftaki başka bir hücreyle çakışıyor.Lateks: tablo içinde çoklu satırdaki çizginin nasıl kırılacağı

Herhangi bir öneriniz var mı? kod

Örnek:

\begin{center} 
    \begin{tabular}{|p{1cm}|p{2.5cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|} 
    \hline 
    \multirow{2}{*}{Long text to break} % HERE IS A PROBLEM 
     & Thing & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3}  
    \\ \cline{2-6} 
     & sth 1 & sth 1 & sth 2 & sth 1 & sth 2 \\ \hline 
\hline 
\end{tabular} 
\end{center} 

cevap

9

Sen minipage bunu deneyebilirsiniz:

\begin{center} 
\begin{tabular}{|l|l|l|l|l|l|} 
    \hline 
    \multirow{2}{*}{\begin{minipage}{0.5in}Long text to break\end{minipage}} 
    & Thing & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\ 
    \cline{2-6} 
    & sth 1 & sth 1 & sth 2 & sth 1 & sth 2 \\ 
    \hline 
    \hline 
\end{tabular} 
\end{center} 

Ancak, özel durumda, benim önerim sadece kısıtlamalarını gevşetmeye olurdu Diğer sütunlar, çünkü orada çok fazla yer boşa harcanıyor. Her p{} ile, diğer sütunlar belirli bir genişliğe zorlar, bu nedenle ilk sütun için yeterli yer yoktur.

\begin{center} 
\begin{tabular}{|l|l|l|l|l|l|} 
    \hline 
    \multirow{2}{*}{Long text to break} 
    & Thing & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\ 
    \cline{2-6} 
    & sth 1 & sth 1 & sth 2 & sth 1 & sth 2 \\ 
    \hline 
    \hline 
\end{tabular} 
\end{center} 
+0

Hücre genişlikli olduğu için "l" parametresini kullanamıyorum, ancak "\ begin {minipage} {2cm}" {minipage} "bana yardım etti, teşekkürler. – kokosing

30

p kolon ve \parbox da çalışır: Benim için

\usepackage{multirow} 

\begin{document} 
\begin{center} 
\begin{tabular}{|p{1.5cm}|l|l|l|l|l|} 
    \hline 
    \multirow{2}{*}{\parbox{1.5cm}{Long text to break}} 
    & Thing & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\ 
    \cline{2-6} 
    & sth 1 & sth 1 & sth 2 & sth 1 & sth 2 \\ 
    \hline 
    \hline 
\end{tabular} 
\end{center} 
\end{document} 

parbox in latex document

+0

Teşekkürler, benim için iyi çalışıyor. Ancak, bence '\ parbox' yerine TeX' \ vbox' –

+0

yerine kullanmalısınız Cevabı güncelledim. Parbox, metnin üstündeki alanı ele alır. – Tombart

6

o yapı kullanma çalıştı bunu derlenmiş zaman

şu kod bana prezentabl baktı - "multirow" komutu - {*} ifadesi "{width}"

9

benim için kısa ve cevap en pratik: {width} parametre için uzunluk olarak

kullanım \linewidth.

\usepackage{multirow} 
\begin{document} 

\begin{center} 
\begin{tabular}{|p{1cm}|p{2.5cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|} 
\hline 
\multirow{2}{\linewidth}{Long text to break} % HERE IS A PROBLEM 
    & Thing & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3}  
\\ \cline{2-6} 
    & sth 1 & sth 1 & sth 2 & sth 1 & sth 2 \\ \hline 
\hline 
\end{tabular} 
\end{center} 

\end{document} 

That's it!

tek olası sorun imkansız durumda diğer hücrelerdeki metin böyle görünebilir gerçekten kısa olması olmasıdır: masa dışındaki hücreler üzerinde daha fazla metin vardır Ancak tipik eğer Broken text in the right width but sadly going out of the table

sadece "sth1" harika görünecektir: enter image description here

+1

Multirow sütunundaki taşmayı nasıl engellerim? – Midiparse

+0

@Midiparse Üzgünüm Size bir cevap veremiyorum. Bir olasılık metninizi bir kutuya koymak ve bu kutuyu çoklu ortam ortamında kullanmak olabilir [sadece tahmin (!)] –

İlgili konular