PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellarischer Lebenslauf - Überschrift in Tabelle - Abstand vor Überschrift



Spindoctor
22-10-2008, 01:28
Hallo!

Ich verfasse gerade einen (kurzen) tabellarischen Lebenslauf in LaTeX.

Dazu scheint es mir sinnvoll, Überschriften (subsubsections) in der Tabelle zu setzen.

So weit funktioniert das ganz gut. Das einzige Problem, das ich habe, ist die Überschrift der ersten Kategorie des tabellarischen Lebenslaufs.

Es geht nämlich die Linie, die ich zwishen den beiden Spalten ziehe zu weit nach oben.

Der Grund dafür ist klar:
Jede Überschrift -- also auch subsubsection -- lässt einen definierten Abstand zum vorigen Absatz frei. Dieser Abstand vor der Überschrift gehört sozusagen zur Überschrift dazu, deshalb wird die Zelle, in der die Überschrift drinnensteht entsprechend größer, was die Linie zwischen den Spalten weiter nach oben zieht.

Jetzt meine Frage: wie kann ich die Linie kürzer machen und um wieviel muss ich sie kürzer machen?

hier ein Minimalbeispiel, an dem zu sehen ist, dass die erste horizontale Linie weiter von der Überschrift entfernt ist als die zweite horizontale Linie

Minimalbeispiel

%
% Tabellenüberschriftsproblem
%

\documentclass[12pt,a4paper,twoside]{scrreprt}

\usepackage[naustrian]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}

Hier ist Text

\begin{tabular}{p{5cm}|}
\hline
\subsubsection{eine Überschrift}\tabularnewline
\hline
\end{tabular}

Hier ist Text

\end{document}
%
%EoF
%

Stefan_K
22-10-2008, 02:09
Hallo,

ich würde für einen kurzen Lebenslauf nicht scrreprt verwenden, eher scrartcl. Überschriften brauchen zudem nicht unbedingt \subsubsection etc. zu sein, man benötigt ja nicht Features wie Inhaltsverzeichnis, Kolumnentitel etc.

Man kann natürlich \subsubsection redefinieren, beispielsweise:

\makeatletter
\renewcommand\subsubsection{\@startsection{subsubs ection}{3}{\z@}%
{0ex}% vorher: -3.25ex\@plus -1ex \@minus -.2ex
{1.5ex \@plus .2ex}%
{\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}%
\setlength{\parfillskip}{\z@
plus 1fil}\fi
\raggedsection\normalfont\sectfont\nobreak\size@su bsubsection
}%
}
\makeatother

Das Original steht in scrreprt.cls.

Viele Grüße,

Stefan

Spindoctor
22-10-2008, 08:54
zunächst mal vielen dank für die Antwort!

ich verwende deshalb scrreprt, weil das ganze meine diplomarbeit ist - der Lebenslauf ist ein vorgeschriebener Bestandteil auf meiner Uni.

Danke für die Erklärung. Ich hab eh auch in die scrreprt.cls geschaut, allerdings konnte ich mit den Variablen nichts anfangen.
Wenn ich Dich richtig verstehe, ist die erste Zahlenangabe der Abstand davor?

Gibt es tatsächlich eine Alternative für subsubsection?
Im Prinzip will ich nämlich überall die Abstände haben, nur bei der ersten Überschrift nicht.

Noch eine kleine Frage: kann man die Überschrift auch lokal -- nur für einen Befehl umdefinieren? Wie erwähnt möchte ich ja im Prinzip die Überschriften beibehalten wie sie sind. Ich müsste also danach gleich wieder "zurückdefinieren". Das geht zwar, wenn man nur lokal definieren könnte, wäre es aber eleganter!

Danke nochmal!

mechanicus
22-10-2008, 09:22
Noch eine kleine Frage: kann man die Überschrift auch lokal -- nur für einen Befehl umdefinieren? Wie erwähnt möchte ich ja im Prinzip die Überschriften beibehalten wie sie sind. Ich müsste also danach gleich wieder "zurückdefinieren". Das geht zwar, wenn man nur lokal definieren könnte, wäre es aber eleganter!

Danke nochmal!

Hallo,
das geht mit \begingroup \endgroup
\documentclass[12pt,ngerman]{scrreprt}
\usepackage{babel}
\usepackage[latin1]{inputenc}
\usepackage{blindtext}
\usepackage{ragged2e}
\begin{document}
\tableofcontents
\chapter{foo}
\blindtext[5]
\begingroup
\setkomafont{chapter}{\footnotesize\bfseries}
\chapter{bar}
\blindtext[5]
\endgroup
\chapter{bla}
\blindtext[5]
\end{document}


Gruß
Marco

Spindoctor
22-10-2008, 10:08
Danke mechanicus!

Hab das grad probiert, aber so wie ichs gemacht hab, hats nicht geklappt.

Könntest Du mir nochmal erklären, wie ich den Befehl



\makeatletter
\renewcommand\subsubsection{\@startsection{subsubs ection}{3}{\z@}%
{0ex}% vorher: -3.25ex\@plus -1ex \@minus -.2ex
{1.5ex \@plus .2ex}%
{\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}%
\setlength{\parfillskip}{\z@
plus 1fil}\fi
\raggedsection\normalfont\sectfont\nobreak\size@su bsubsection
}%
}
\makeatother
in ein \begingroup \endgroup hineinbekomme?

Danke!

localghost
22-10-2008, 10:54
Du könntest doch auch eine (selbst definierte) Listen-Umgebung nehmen. Die kannst Du dann unterbrechen, um die einzelnen Abschnitte unterzubringen.


MfG
Thorsten¹

Spindoctor
22-10-2008, 15:43
@ Listenumgebung
Wär natürlich auch eine Lösung, aber halt ein anderer Ansatz...

@ sonst:

Mangels Alternativen (mit \begingroup und \endgroup sind immer Fehlermeldungen gekommen) hab ichs eben zuerst neu definiert, und nach der ersten Verwendung wieder zurückdefiniert.

Ziemlich unelegant, meiner Meinung nach, aber es funktioniert.

Für elegantere Vorschläge wäre ich natürlich offen...

localghost
22-10-2008, 20:33
@ Listenumgebung
Wär natürlich auch eine Lösung, aber halt ein anderer Ansatz [...]
Und dazu noch ein recht einfacher.

\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{txfonts}

\parindent0em

\newenvironment{xlist}[1][\rule{3em}{0em}]{%
\begin{list}{}{%
\settowidth{\labelwidth}{#1}
\setlength{\labelsep}{0.5cm}
\setlength{\leftmargin}{\labelwidth}
\addtolength{\leftmargin}{\labelsep}
\setlength{\rightmargin}{0pt}
\setlength{\parsep}{0.5ex plus 0.2ex minus 0.1ex}
\setlength{\itemsep}{0 ex plus 0.2ex}
\renewcommand{\makelabel}[1]{##1\hfil}
}
}
{\end{list}}

\begin{document}
\section*{Lebenslauf}
\subsection*{Persönliche Daten}
\begin{xlist}[\rule{10em}{0em}]
\item[Name:] Doctor Spin
\item[Geburtstag:] 01.04.1861
\item[Geburtsort:] Krankenhaus
\item[Staatsangehörigkeit:] unbekannt
\item[Familienstand:] ledig
\end{xlist}

\subsection*{Schulbildung}
\begin{xlist}[\rule{10em}{0em}]
\item[08/1871--07/1881] Grundschule
\item[08/1881--07/1901] Orientierungsstufe
\item[08/1901--07/1931] Gymnasium
\item[08/1931] Allgemeine Hochsulreife
\end{xlist}
\end{document}
Du könntest auch für jeden Unterabschnitt eine eigene Tabelle nehmen, deren linke Spalte eine feste Breite hat, während die rechte Spalte den Rest ausfüllt. Dabei wäre tabularx (http://ctan.org/pkg/tabularx) hilfreich.

Spindoctor
23-10-2008, 11:25
sieht hübsch aus...
hab die xlist umgebung noch nicht gekannt, sonst hätt ichs vielleicht eh so gmacht...

aber die lösung, die es jetz geworden is, is optisch auch nicht schlecht und hat den vorteil, dass sie auch bei etwas mehr text noch auf eine seite passt.

\documentclass[12pt,a4paper,twoside,abstracton]{scrreprt}

\usepackage[naustrian]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{jurabib}

\begin{document}

\chapter{Lebenslauf}
\begin{table}[h]
\setlength{\arrayrulewidth}{1.5pt}
\begin{tabular}{p{4.8cm}|p{\textwidth-4.8cm-\leftmargin-\rightmargin-1.5pt}}
\makeatletter
\renewcommand\subsubsection{\@startsection{subsubs ection}{3}{\z@}%
{.5\baselineskip}% vorher: -3.25ex\@plus -1ex \@minus -.2ex
{1.5ex \@plus .2ex}%
{\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\setlength{\parfillskip}{\z@
plus 1fil}\fi
\raggedsection\normalfont\sectfont\nobreak\size@su bsubsection
}%
}
\makeatother
\subsubsection{Persönliche Daten}\tabularnewline[.5\baselineskip]
\makeatletter
\renewcommand\subsubsection{\@startsection{subsubs ection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\setlength{\parfillskip}{\z@
plus 1fil}\fi
\raggedsection\normalfont\sectfont\nobreak\size@su bsubsection
}%
}
\makeatother
\sffamily{}Name & \normalfont{}Doktor Schpinn\tabularnewline[.5\baselineskip]
\sffamily{}Geburtsdatum und -ort & \normalfont{}01.02.1900 in Spital\tabularnewline[.5\baselineskip]
\subsubsection{Schulische Bildung}\tabularnewline[.5\baselineskip]
\sffamily{}September 1900--Juli 1900 & \normalfont{}Volksschule\tabularnewline[.5\baselineskip]
\sffamily{}September 1900--Juni 1900 & \normalfont{}Realgymnasium\newline Abschluss: Matura am 02.03.1920\tabularnewline[.5\baselineskip]
\subsubsection{Hochschulbildung}\tabularnewline[.5\baselineskip]
\sffamily{}Oktober 2000--Februar 2000 & \normalfont{}Studium der Numismatik\tabularnewline[.5\baselineskip]
\sffamily{}Februar 2000--heute & \normalfont{}Studium der Archäologie\tabularnewline[.5\baselineskip]
\subsubsection{Sonstiges}\tabularnewline[.5\baselineskip]
\sffamily{}März 2000--Juni 2000 & \normalfont{}Tutor der Lehrveranstaltung "`Archäplogie der Numismatik"'\tabularnewline[\baselineskip]
\end{tabular}
\end{table}
\end{document}
%
%EoF
%
man braucht halt sehr viel code...

interessant by the way:
wenn ich das \jurabib-Paket wegkommentiere, funktionieren die blau markierten Berechnungen nicht mehr. Ich schätze, jurabib läd ein anderes Paket um diese Berechnungen durchzuführen. Welches?

mechanicus
23-10-2008, 11:40
wenn ich das \jurabib-Paket wegkommentiere, funktionieren die blau markierten Berechnungen nicht mehr. Ich schätze, jurabib läd ein anderes Paket um diese Berechnungen durchzuführen. Welches?

Ich vermute das Jurabib das Paket calc selbständig lädt.

Gruß
Marco

Stefan_K
23-10-2008, 15:23
Das ist richtig, 3. Zeile von jurabib.sty:

\RequirePackage{calc}
Viele Grüße,

Stefan

Spindoctor
23-10-2008, 17:33
danke für die aufklärung