PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \vspace beim ersten Aufruf ignoriert



Festus
07-09-2012, 12:15
Hallo,

ich muss gerade eine Liste nach dem Schema

Punkt.....................Erläuterungen

erstellen.

Ich mache das mit einem \newcommand mit einzelnen tabular-Umgebungen mit 2 p-Spalten. Zur besseren Übersichtlichkeit wollte ich etwas vertikalen Weißraum zwischen den Einträgen über \vspace einfügen. Hier mein MB:


%%Document Layout%%
\documentclass[a4paper,DIV=14,12pt]{scrartcl}
\setlength{\parindent}{0pt}

%%Fonts%%
\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}

%%Language%%
\usepackage[german]{babel}

\begin{document}
\makeatletter
\newcommand{\TabMat}[2]{\vspace{0.2cm}
\begin{tabular}{p{0.35\textwidth}p{0.6\textwidth}} %
#1 & #2\\%
\end{tabular}
}
\makeatother

\TabMat{BliBlaBlub}{Der erste Eintrag}
\TabMat{BliBlaBlub}{Der zweite Eintrag steht irgendwie zu dicht unter dem ersten}
\TabMat{BliBlaBlub}{Der dritte Eintrag, ab hier funktionierts durchgehend}
\TabMat{BliBlaBlub}{Der vierte Eintrag}

\end{document}

Das Problem ist nun, dass der \vspace command scheinbar NUR beim zweiten Eintrag nicht funktioniert. Der zweite Eintrag steht bei mir näher am ersten als er sollte (siehe PDF, ich habs auch im Ausdruck gecheckt, es liegt also nicht am Viewer). Danach funktionierts. Weiß jemand wo das Problem liegt?

u_fischer
07-09-2012, 12:49
Du solltest \vspace innerhalb eines Absatzes (und alle deine Zeilen sind im gleichen Absatz) nicht verwenden, der Abstand wird nicht immer dort eingefügt, wo du glaubst.

Eine Möglichkeit sind Absätze:


\newcommand{\TabMat}[2]{\par\vspace{0.2cm}....

localghost
07-09-2012, 12:54
Mit einer eigens dafür angepassten Liste geht das einfacher. Die erlaubt dann auch saubere Seitenumbrüche.

% TeX program = pdflatex
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
adieresis={ä},
germandbls={ß},
Euro={€}
}
\usepackage{babel}
\usepackage{lipsum} % nur für Fülltext

\newenvironment{xlist}[1]{%
\begin{list}{}{%
\settowidth{\labelwidth}{#1} % Breite der Marken
\setlength{\labelsep}{2em} % Abstand von Eintrag zur Marke
\setlength{\leftmargin}{\labelwidth} % linker Rand (gemessen vom Text des Eintrags aus)
\addtolength{\leftmargin}{\labelsep}
\setlength{\rightmargin}{0pt} % rechter Rand
\setlength{\parsep}{0.5ex plus 0.2ex minus 0.1ex} % Raum zwischen Absätzen in einem Eintrag
\setlength{\itemsep}{1ex plus 0.2ex} % Raum zwischen einzlenen Einträgen
\renewcommand{\makelabel}[1]{##1\hfil} % Ausrichtung der Marken (hier linksbündig)
}
}
{\end{list}}


\begin{document}
\begin{xlist}{Zweiter Punkt} % Hier den längsten Eintrag aus der Liste einfügen
\item[Erster Punkt] \lipsum[1]
\item[Zweiter Punkt] \lipsum[2]
\item[Dritter Punkt] \lipsum[3]
\end{xlist}
\end{document}
Eine generelle Anpassung ist sicher auch mit enumitem (http://ctan.org/pkg/enumitem) möglich.


Thorsten

Festus
07-09-2012, 13:23
Danke Ulrike, das funktioniert wunderbar.

@localghost

Danke für den Hinweis, das wird in Zukunft vlt. mal ganz nützlich sein. Die von dir angestrebten sauberen Seitenumbrüche will ich in dem Fall aber gerade nicht haben. Die Einträge auf der Erläuterungsseite sind nie besonders lang, schon gar nicht so lang wie dein Lorem Ipsum. Ich will aber auf jeden Fall verhindern, dass innerhalb der Erläuterungs-Blocks umgebrochen wird, was kein Problem ist, da diese Blocks eben eh nicht besonders lang und auch kein echter Fließtext sind.