2010-02-19 61 views
15

Tôi có hai phần rất ngắn và liên tiếp (đối với một CV), mỗi dòng chứa một bảng nhỏ:Bắt hai bảng trong LaTeX để có cùng (canh phải) chiều rộng cột

\section{Work Experience} 

\begin{tabular}{r|p{11cm}} 
Current & Your job at Your Company, Town \\ 
Jan 2009 & What your company does \\ 
& A description of what you do\\ 
\multicolumn{2}{c}{}\ 
\end{tabular} 

\section{Education} 

\begin{tabular}{r|p{11cm}} 
Slightly wider first column & University, Town \\ 
Jan 2009 & Thesis subject \\ 
& A description of what you did\\ 
\multicolumn{2}{c}{}\ 
\end{tabular} 

Vì vậy, mỗi bảng có hai cột: Cột đầu tiên chứa dấu chấm, căn chỉnh sang phải. Thứ hai: một số thông tin nhiều hơn với một chiều rộng nhất định, đầu (và trái) liên kết.

Bài toán là chiều rộng của cột bên trái trong hai bảng khác nhau và trông không đẹp vì các phần (do đó bảng) liên tục và trong một trang. Tôi không thể cung cấp cho r chiều rộng như p:

\begin{tabular}{r{11cm}|p{11cm}} 

Không hoạt động. Làm thế nào tôi có thể nhận được độ rộng của các cột đầu tiên của hai bảng có cùng độ dài trong khi cũng có chúng được căn phải không?

EDIT Cảm ơn câu trả lời, tất cả họ đều làm việc cho tôi vì vậy tôi bỏ phiếu tán tất cả trong số họ, và chấp nhận một trong đó thu hút tôi nhiều nhất (và upvoted nhất), vì bạn không cần phải xác định \hfill trong mỗi hàng. Tuy nhiên, nếu bạn không muốn sử dụng gói mảng vì bất kỳ lý do nào thì các giải pháp khác cũng tuyệt vời.

+1

Không phải là câu trả lời cho bạn câu hỏi như vậy, nhưng tôi sử dụng gói currvita để duy trì CV của tôi (tốt, với hacks phù hợp ...): http://www.ctan.org/tex-archive/macros/latex/contrib/currvita /. Bằng cách đó * bạn * không phải đối phó với những chi tiết này. – dmckee

+0

Cảm ơn bạn đã đọc, hãy kiểm tra phiên bản tiếp theo :) – vahidg

Trả lời

16

Nếu bạn sử dụng gói array, bạn có thể đặt \hfill trong tiêu đề như sau, vì vậy bạn không phải nhớ đặt nó (hoặc \parbox) trong mỗi hàng.

\documentclass{article} 
\usepackage{multicol} 
\usepackage{array} 
\begin{document} 
\section{Work Experience} 

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}} 
    Current & Your job at Your Company, Town \\ 
    Jan 2009 & What your company does \\ 
    & A description of what you do\\ 
    \multicolumn{2}{c}{} 
\end{tabular} 

\section{Education} 

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}} 
    Slightly wider first column & University, Town \\ 
    Jan 2009 & Thesis subject \\ 
    & A description of what you did\\ 
    \multicolumn{2}{c}{} 
\end{tabular} 
\end{document} 

để cung cấp cho:

alt text http://www.freeimagehosting.net/uploads/5e29f675e3.jpg

1

Bạn có thể cung cấp cả hai tùy chọn p {width} và bắt đầu từng ô ở bên trái với \hfill.

3

Dưới đây là một giải pháp của nhiều khả năng:

\begin{tabular}{r|p{11cm}} 
\parbox{11cm}{\hfill Current} & Your job at Your Company, Town \\ 
Jan 2009 & What your company does \\ 
& A description of what you do\\ 
\multicolumn{2}{c}{}\ 
\end{tabular} 

Về cơ bản, tạo ra một \parbox với chiều rộng mong muốn và đặt dấu \hfill ở bên trái.

1

Bạn có thể sử dụng array gói để xác định một lệnh lấp đầy cho từng dòng trong cột đầu tiên của bạn:

\begin{tabular}{>{\hfill}p{11cm}|p{11cm}|} 

Ví dụ:

\documentclass{article} 
\usepackage{array} 
\begin{document} 

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}|} 
This is a test & test 
\end{tabular} 

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}|} 
Test & this is a test 
\end{tabular} 
\end{document} 
6

Dưới đây là một biến thể của câu trả lời @ RTBarnard bằng cách sử dụng các gói tabularx:

\documentclass[a4paper,twoside,draft,12pt]{article} 
\usepackage{tabularx} 
\begin{document} 

\section{Work Experience} 

\begin{tabularx}{\textwidth}{>{\raggedleft}X|p{8cm}} 
Current & Your job at Your Company, Town \\ 
Jan 2009 & What your company does \\ 
& A description of what you do\\ 
\end{tabularx} 

\section{Education} 

\begin{tabularx}{\textwidth}{>{\raggedleft}X|p{8cm}} 
Somewhat wider than first column, 
overflowing into additional lines & University, Town \\ 
Jan 2009 & Thesis subject \\ 
& A description of what you did\\ 
\end{tabularx} 
\end{document} 

Ghi chú:

  1. Tại sao tabularx? Vì thường là dễ dàng hơn để biết chiều rộng bạn có có sẵn cho toàn bộ bảng và để cho phép TeX tính toán chiều rộng cột không rõ .
  2. Tham số đầu tiên là chiều rộng tổng thể của bảng. Ở đây, tôi đã chỉ định \textwidth để lấp đầy chiều rộng của typeblock, nhưng bạn có thể thay đổi điều đó thành bất kỳ thước đo nào bạn cần.
  3. Tôi đã sử dụng \raggedright thay vì \hfill: nếu mục đó chuyển lên dòng thứ hai, \hfill sẽ chỉ căn chỉnh đúng dòng đầu tiên của đoạn.
  4. Có phải là \multicol đáng kể không? Tôi đã gỡ bỏ nó để giữ cho câu trả lời càng đơn giản càng tốt.

Chạy bằng XeTeX dưới TeXLive.

+1

Để hoàn thành, tôi sẽ lưu ý rằng nếu bạn muốn đặt thông số đó vào cột cuối cùng, bạn cần đặt lại ý nghĩa của "\\" bằng cách sử dụng '\ arraybackslash '. –

+0

Hey, không biết điều đó, bạn có thể xây dựng? –

+1

'\ raggedleft' thay đổi ý nghĩa của' \\ 'để làm nhiều thứ ma thuật khác nhau. Xem '{\ ttfamily \ meaning \ raggedleft}'. '\ arraybackslash' sẽ thay đổi ý nghĩa của nó trở lại nghĩa của môi trường bảng. Những thay đổi này chỉ ảnh hưởng đến nhóm hiện tại, vì vậy bạn sẽ chỉ thấy các lỗi biên dịch trong cột cuối cùng. –

Các vấn đề liên quan