16 Stimmen

Zwei Tabellen in LaTeX mit der gleichen (rechts ausgerichteten) Spaltenbreite erhalten

Ich habe zwei sehr kurze und aufeinander folgende Abschnitte (für einen Lebenslauf), von denen jeder eine kleine Tabelle enthält:

\section{Berufserfahrung}

\begin{tabular}{r|p{11cm}}
Aktuell & Deine Position bei Deinem Unternehmen, Stadt \\
Jan 2009 & Was dein Unternehmen macht \\
& Eine Beschreibung dessen, was du machst \\
\multicolumn{2}{c}{}\ 
\end{tabular}

\section{Bildung}

\begin{tabular}{r|p{11cm}}
Etwas breiter erste Spalte & Universität, Stadt \\
Jan 2009 & Themengebiet der Abschlussarbeit \\
& Eine Beschreibung dessen, was du gemacht hast \\
\multicolumn{2}{c}{}\ 
\end{tabular}

Also hat jede Tabelle zwei Spalten: Die erste enthält den Zeitraum, rechts ausgerichtet. Die zweite: weitere Informationen mit einer bestimmten Breite, oben (und links) ausgerichtet.

Das Problem ist, dass die Breite der linken Spalte in den beiden Tabellen unterschiedlich ist und nicht schön aussieht, da die Abschnitte (und somit die Tabellen) aufeinander folgen und auf einer Seite stehen. Ich kann r keine Breite wie p geben:

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

Funktioniert nicht. Wie kann ich die Breiten der ersten Spalten der beiden Tabellen auf die gleiche Länge bringen, während sie auch rechts ausgerichtet sind?

EDIT Danke für die Antworten, sie alle funktionieren für mich, also habe ich sie alle hochgestuft und die am meisten angesprochene (und am meisten hochgestufte) akzeptiert, da man in jeder Zeile nicht \hfill angeben muss. Wenn Sie jedoch aus irgendeinem Grund das array-Paket nicht verwenden möchten, sind auch die anderen Lösungen großartig.

1 Stimmen

Nicht direkt eine Antwort auf Ihre Fragen, aber ich benutze das Paket currvita, um meinen Lebenslauf zu pflegen (nun ja, mit passenden Hacks...): ctan.org/tex-archive/macros/latex/contrib/currvita. Auf diese Weise müssen Sie sich nicht mit diesen Details befassen.

0 Stimmen

Vielen Dank für den Tipp, wir werden ihn für die nächste Version überprüfen :)

17voto

Ramashalanka Punkte 8459

Wenn Sie das array-Paket verwenden, können Sie das \hfill im Header wie folgt platzieren, sodass Sie sich nicht daran erinnern müssen, es (oder ein \parbox) in jeder Zeile einzufügen.

\documentclass{article}
\usepackage{multicol}
\usepackage{array}
\begin{document}
\section{Berufserfahrung}

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}}
  Aktuell & Ihre Position bei Ihrer Firma, Stadt \\
  Jan 2009 & Was Ihre Firma macht \\
  & Eine Beschreibung Ihrer Tätigkeiten\\
  \multicolumn{2}{c}{} 
\end{tabular}

\section{Bildung}

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}}
  Etwas breitere erste Spalte & Universität, Stadt \\
  Jan 2009 & Thema der Abschlussarbeit \\
  & Eine Beschreibung Ihrer Tätigkeiten\\
  \multicolumn{2}{c}{} 
\end{tabular}
\end{document}

ergibt:

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

6voto

Brent.Longborough Punkte 9075

Hier ist eine Variante von @RTBarnards Antwort, die das tabularx-Paket verwendet:

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

\section{Berufserfahrung}

\begin{tabularx}{\textwidth}{>{\raggedleft}X|p{8cm}}
Aktuell & Dein Job bei Deiner Firma, Stadt \\
Jan 2009 & Was deine Firma macht \\
& Eine Beschreibung dessen, was du machst \\
\end{tabularx}

\section{Ausbildung}

\begin{tabularx}{\textwidth}{>{\raggedleft}X|p{8cm}}
Etwas breiter als die erste Spalte, 
läuft über zusätzliche Zeilen & Universität, Stadt \\
Jan 2009 & Thema der Abschlussarbeit \\
& Eine Beschreibung dessen, was du gemacht hast \\
\end{tabularx}
\end{document}

Anmerkungen:

  1. Warum tabularx? Weil es oft einfacher ist, die Breite zu kennen, die Sie für die gesamte Tabelle zur Verfügung haben, und TeX die unbekannten Spaltenbreiten berechnen zu lassen.
  2. Der erste Parameter ist die Gesamtbreite der Tabelle. Hier habe ich \textwidth angegeben, um die Breite des Satzspiegels zu füllen, aber Sie können das auf das Maß ändern, das Sie benötigen.
  3. Ich habe \raggedright anstelle von \hfill verwendet: Wenn der Eintrag auf eine zweite Zeile fließt, wird \hfill nur die erste Zeile des Absatzes rechtsbündig machen.
  4. War das \multicol wichtig? Ich habe es entfernt, um die Antwort so einfach wie möglich zu halten.

Ausführen mit XeTeX unter TeXLive.

1 Stimmen

Zur Vervollständigung würde ich darauf hinweisen, dass wenn Sie diese Spezifikation in der letzten Spalte platzieren möchten, müssen Sie die Bedeutung von "\\" zurücksetzen, indem Sie \arraybackslash verwenden.

0 Stimmen

Hey, wusste ich nicht, könntest du das genauer erklären?

1 Stimmen

\raggedleft ändert die Bedeutung von \\ , um verschiedene magische Sachen zu machen. Siehe {\ttfamily\meaning\raggedleft}. \arraybackslash wird seine Bedeutung wieder auf die der tabellarischen Umgebung ändern. Diese Änderungen betreffen nur die aktuelle Gruppe, sodass Sie nur in der letzten Spalte Kompilierfehler sehen werden.

3voto

RTBarnard Punkte 4144

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

\begin{tabular}{r|p{11cm}}
\parbox{11cm}{\hfill Aktuell} & Dein Job bei Deinem Unternehmen, Stadt \\
Jan 2009 & Was dein Unternehmen macht \\
& Eine Beschreibung dessen, was du machst\\
\multicolumn{2}{c}{}\ 
\end{tabular}

Im Grunde genommen erstelle ein \parbox mit der gewünschten Breite und setze ein \hfill ganz links.

1voto

Charles Stewart Punkte 11393

Sie können beide p{width} Optionen angeben und jede Zelle links mit einem \hfill beginnen.

1voto

Alok Singhal Punkte 87419

Sie können das array-Paket verwenden, um für jede Zeile in Ihrer ersten Spalte einen Füllbefehl festzulegen:

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

Zum Beispiel:

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

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}|}
Dies ist ein Test & Test
\end{tabular}

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}|}
Test & Dies ist ein Test
\end{tabular}
\end{document}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X