PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Latex Beamer - Fehlermelldung -



Joan
06-06-2011, 10:48
Hi,

wenn ich im unteren Beispiel das Rote weglasse, erhalte ich nach durchlauf von Latex keine Fehlermeldung, ansonsten erscheint: "LaTeX Error: There's no line here to end." Was heißt das genau??

\frame{

\textbf{bla} \\ [0.25 cm]

\textbf{blabla}
\begin{enumerate}
\item 1
\item 2
\end{enumerate} \\ [0.25 cm]

\textbf{blabla}}

Viele Grüße,
Joan

Schweinebacke
06-06-2011, 13:25
Am Ende der enumerate-Umgebung fügt LaTeX einen Absatz ohne Einzug und Absatzabstand (aber mit Listenabstand) ein. Danach befindet sich TeX dann im vertikalen Modus, also zwischen zwei Absätzen. Da damit also noch kein Absatz und damit auch keine Zeile begonnen wurde, kann die Zeile auch nicht mit \\ beendet werden.

Im Übrigens ist es gut, dass LaTeX hier einen Fehler meldet, weil es sonst passieren könnte, dass eine Leerzeile und ein vertikaler Abstand am Anfang einer Seite eingefügt wird, was ja keinesfalls passieren soll.

Korrekt fügt man vertikale Abstandskorrekturen mit \vspace{Wert}, oder \smallskip oder \medskip oder \bigskip ein. Ein solcher Abstand wird dann am Seitenfang automatisch weg gelassen.

BTW: Eigentlich sollte der Abstand, der vor und nach einer Listenumgebung automatisch eingefügt wird, im Normalfall vollkommen genügen. Diesen Abstand kann man bei Bedarf auch in der Dokumentpräambel für das komplette Dokument ändern.

Joan
06-06-2011, 13:56
Hi,

das mit der Präamel ist super, aber wie geht das? Latex macht nämlich bei mir im ganzen Dokument nicht automatisch diese Absätze :confused:

Schweinebacke
06-06-2011, 14:41
Bei mir macht beamer die korrekten Abstände vor einer Liste:
\documentclass{beamer}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{frame}
\frametitle{Beispielliste}
Beispielsweise:
\begin{enumerate}
\item erstens
\item zweitens
\item drittens
\end{enumerate}
funktioniert das ganz problemlos und ich habe normale Listenabstände vor und
nach obiger Liste.
\end{frame}

\end{document}Die Abstände, die dabei verwendet werden, werden bei beamer AFAIK über das template enumerate gesteuert. Im einfachsten Fall, kann man aber auch ganz normal \@listi umdefinieren:
\documentclass{beamer}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\makeatletter
\def\@listi{\leftmargin\leftmargini
\topsep 30\p@ \@plus2\p@ \@minus2.5\p@% original: 3\p@ ...
\parsep 0\p@
\itemsep3\p@ \@plus2\p@ \@minus3\p@}
\let\@listI\@listi
\makeatother

\begin{document}
\begin{frame}
\frametitle{Beispielliste}
Beispielsweise:
\begin{enumerate}
\item erstens
\item zweitens
\item drittens
\end{enumerate}
funktioniert das ganz problemlos und ich habe normale Listenabstände vor und
nach obiger Liste.
\end{frame}

\end{document}

Joan
06-06-2011, 15:20
Danke für den Code. Kann man die Abstände auch kleiner machen?