2010-02-19 2 views
15

ich zwei sehr kurze und aufeinanderfolgende Abschnitte aufweisen (CV), die jeweils eine kleine Tabelle mit:zwei Tabellen in LaTeX gibt es die gleichen haben (rechtsbündig) Spaltenbreite

\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} 

So jede Tabelle hat zwei Spalten: Die erste enthält den Punkt, nach rechts ausgerichtet. Die zweite: einige mehr Informationen mit einer bestimmten Breite, oben (und links) ausgerichtet. Das Problem ist, dass die Breite der linken Spalte in den zwei Tabellen unterschiedlich ist, und nicht gut aussieht, da die Abschnitte (also Tabellen) aufeinander folgen und auf einer Seite sind. Ich kann nicht r eine Breite wie p geben:

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

funktioniert nicht. Wie kann ich die Breite der ersten Spalten der beiden Tabellen gleich lang und gleichzeitig richtig ausrichten?

EDIT Danke für die Antworten, die sie für mich arbeiten alle so upvoted ich sie alle, und akzeptierte die eine, die mich angesprochen die meisten (und die meisten upvoted), da Sie die \hfill nicht angeben müssen in jeder Reihe. Wenn Sie jedoch das Array Paket aus irgendeinem Grund nicht verwenden möchten, dann sind die anderen Lösungen auch großartig.

+1

Keine Antwort auf Ihre Fragen als solche, aber ich verwende das currvita-Paket, um meinen Lebenslauf zu verwalten (naja, mit geeigneten Hacks ...): http://www.ctan.org/tex-archive/macros/latex/Beitrag/currvita /. Auf diese Weise müssen Sie sich nicht mit diesen Details befassen. – dmckee

+0

Vielen Dank für den Tipp, gut überprüfen Sie es für die nächste Version :) – vahidg

Antwort

16

Wenn Sie das array-Paket verwenden, können Sie die \hfill in die Kopfzeile wie folgt einfügen, so dass Sie nicht daran denken müssen, es (oder \parbox) in jeder Zeile zu setzen.

\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} 

zu geben:

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

1

Sie können beide Optionen p {Breite} angeben und jede Zelle auf der linken Seite mit einer \hfill starten.

3

Hier ist eine Lösung von vielen Möglichkeiten:

\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} 

Grundsätzlich ein \parbox mit der gewünschten Breite erstellen und ein \hfill an den Linken.

1

Sie array Paket verwenden können einen Fill-Befehl für jede Zeile in der ersten Spalte angeben:

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

Zum Beispiel:

\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

Hier ist eine Variante von @ RTBarnard Antwort mit dem tabularx Paket:

\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} 

Hinweise:

  1. Warum tabularx? Da es oft einfacher ist, die Breite zu kennen, die Sie haben für die gesamte Tabelle verfügbar, und , TeX die unbekannten Spaltenbreiten berechnen zu lassen.
  2. Der erste Parameter ist die gesamte Tabellenbreite. Hier habe ich \textwidth angegeben, um die Breite von typeblock zu füllen, aber Sie können das zu jedem Maß ändern, das Sie benötigen.
  3. Ich habe \raggedright statt \hfill verwendet: Wenn das Element in eine zweite Zeile fließt, wird \hfill nur die erste Zeile des Absatzes rechts ausrichten.
  4. War die \multicol von Bedeutung? Ich habe es entfernt, um die Antwort so einfach wie möglich zu halten.

Mit XeTeX unter TeXLive ausführen.

+1

Zum Abschluss würde ich bemerken, dass, wenn Sie diese Spezifikation auf die letzte Spalte setzen möchten, müssen Sie die Bedeutung von "\\" mit '\ arraybackslash zurücksetzen '. –

+0

Hey, ich wusste das nicht, könntest du das ausarbeiten? –

+1

'\ raggedleft' ändert die Bedeutung von' \\', um verschiedene magische Dinge zu tun. Siehe '{\ ttfamily \ meansing \ raggedleft}'. '\ arraybackslash' ändert seine Bedeutung zurück in die der tabellarischen Umgebung. Diese Änderungen betreffen nur die aktuelle Gruppe. Daher werden nur in der letzten Spalte Kompilierungsfehler angezeigt. –