2010-09-10 38 views
10

Có cách nào để có một bảng trong LaTeX trải rộng trên nhiều trang, chứ không phải là chiều dài khôn ngoan? Theo như tôi có thể nói, cả hai longtable và supertabular sẽ phá vỡ các bảng trên nhiều trang, nhưng chỉ bằng cách phá vỡ giữa các hàng và tôi cần phải phá vỡ giữa các cột. Thậm chí tốt hơn sẽ là nếu có thể có một vài cột lặp lại ở trên mỗi trang.Bàn rất rộng trong LaTeX

+7

Đề nghị chuyển câu hỏi này cho http://tex.stackexchange.com/ –

+2

Tìm một giải pháp [tex.stackexchange.com] [1]. [1]: http://tex.stackexchange.com/questions/93808/column-wise-break-of-extra-wide-tables –

+2

Tôi bỏ phiếu để đóng câu hỏi này như off-topic vì có toàn bộ trang web dành riêng cho điều này: [tex.se] (quá cũ để di chuyển). – Werner

Trả lời

0

Tôi đã giật tóc ra với cùng một vấn đề này và trong một tuần. Tôi nghĩ rằng điều này có thể không hoàn toàn có thể theo một cách không hacky.

Một giải pháp thô nhám có thể là sử dụng các gói dpfloat: http://www.ctan.org/tex-archive/help/Catalogue/entries/dpfloat.html

Thật không may, bạn sẽ được tạo nhiều bảng và phá vỡ chúng bằng tay, nhưng ít nhất kết quả cuối cùng nên nhìn không sao. Ngoài ra, điều này sẽ trông tốt hơn nếu bạn mương các quy tắc theo chiều dọc trong bảng của bạn theo hướng dẫn hiền triết trong gói sách (bạn sẽ phải google vì dường như tôi là người dùng mới, không có đủ danh tiếng để đăng liên kết vào sổ tay pdf của cuốn sách).

+0

Tôi rất muốn nó tự động làm điều đó, nhưng có lẽ tôi sẽ phải từ bỏ bản thân mình để thực hiện nó theo cách thủ công. Tôi đã nghĩ (khi tôi đang lập kế hoạch tạo tệp tex bằng Python) bằng cách viết các cột dưới dạng hàng, xoay mỗi ô và sử dụng longtable hoặc supertabular, nhưng điều đó vẫn có vẻ hơi điên rồ và bực dọc. – hoyland

0

Tôi đang sử dụng mã này không quá tốt đẹp và cấu hình bằng tay để tách một bảng quá rộng:

\usepackage{tikz} 

\newsavebox{\boxFinal} 
\begin{lrbox}{\boxFinal} 
    \scalebox{0.6}{ 
    \begin{tabular}{...} 
... 
    \end{tabular} 
    } 
\end{lrbox} 

\begin{table}[htb] 
    \centering 
    \begin{tikzpicture} 
    \clip (0,-\dp\boxFinal) rectangle (0.5\wd\boxFinal,\ht\boxFinal); 
    \pgftext[left,base]{\usebox{\boxFinal}}; 
    \end{tikzpicture} 
    \label{table_test1}\caption{Part 1 of 2.} 
\end{table} 

\begin{table}[htb] 
    \centering 
    \begin{tikzpicture} 
    \clip (0.5\wd\boxFinal,-\dp\boxFinal) rectangle 
     (\wd\boxFinal,\ht\boxFinal); \pgftext[left,base]{\usebox{\boxFinal}}; 
    \end{tikzpicture} 
    \label{table_test2}\caption{Part 2 of 2.} 
\end{table} 

Thường có một nhu cầu tự đúng chia offsets. Bạn có thể thực hiện việc này bằng cách thêm hoặc trừ từ 0.5 \ wd \ boxTính số giá trị.

Ý tưởng này được lấy từ http://www.latex-community.org/forum/viewtopic.php?f=5&t=2867

0

Một giải pháp tốt sẽ để xoay toàn bộ bảng 90 độ ngược chiều kim đồng, do đó có nhiều chỗ hơn cho nó.

Preamble \usepackage{pdflscape}

\newpage 
\thispagestyle{empty} 
\begin{landscape} 
\begin{table} 
... 
\end{table} 
\end{landscape} 
Các vấn đề liên quan