PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beamer-Klasse und Floating-Umgebungen



gentlesea
26-01-2009, 11:14
Hallo,

nachdem ich erfolgreich Codesamples in meine Ausarbeitung eingebunden habe, ist es nun an der Zeit, diese auch für eine Präsentation vorzubereiten. Dazu habe ich die Beamer-Klasse verwendet. Leider bekomme ich beim Kompilieren die Fehlermeldung:


! LaTeX Error: Not in outer par mode.


\frame
{
\frametitle{Der Shadercode}
\framesubtitle{}

\begin{codeSample}[h]
\end{codeSample}
}

Selbst wenn ich noch nichts einbinde.

Ich habe das Paket float eingebunden:


\usepackage{float}

Die Umgebung codeSample habe ich wie folgt definiert:


\newfloat{codeSample}{htbp}{lol}[section]
\floatname{codeSample}{Listing}
\renewcommand{\thecodeSample}{\thesection.\arabic{ codeSample}}


Wo liegt der Fehler? Existiert vielleicht die section nicht?

mechanicus
26-01-2009, 11:23
Hallo,

wieso willst du auf einer Folie was gleiten lassen? Wie sieht denn dein Code aus - genügt die verbatim-Umgebung bzw listings nicht?

Gruß
Marco

gentlesea
26-01-2009, 11:38
Ich verwende den Highlight Code Converter (http://www.andre-simon.de/doku/highlight/en/highlight.html), um den Code schöner aussehen zu lassen.

Bisher habe ich Code immer auf diese Art und Weise eingebunden:


\begin{codeSample}[h]
\centering
\fcolorbox{black}{bgcolor}
{
\begin{minipage}{\linewidth}\scriptsize
\changefont{cmtt}{m}{n}
\input{sourceCode/datei.xml}
\end{minipage}
}
\end{codeSample}


Mit dem listings-Paket ist die Schriftart viel zu groß und ich habe noch kein Syntax Highlighting. Es wäre schön, wenn das wie gehabt gehen würde.

mechanicus
26-01-2009, 11:50
Hallo,

sorry, mit Code meinte ich ein komplettes Minimalbeispiel.

Gruß
Marco

gentlesea
26-01-2009, 14:23
\documentclass{beamer}

\usepackage[ansinew]{inputenc}
\usepackage{float}
\usepackage{beamerthemesplit}
\usepackage{listings}

\usecolortheme{seahorse}

\newfloat{codeSample}{htbp}{lol}[section]
\floatname{codeSample}{Listing}

\begin{document}

\frame
{
\frametitle{Das Minimalbeispiel}
\framesubtitle{Das Minimalbeispiel - Untertitel}

\begin{codeSample}[h]
\centering
\fcolorbox{black}{bgcolor}
{
\begin{minipage}{\linewidth}\scriptsize
\changefont{cmtt}{m}{n}
\input{sourceCode/meineDatei.xml}
\end{minipage}
}
\caption{Eine Caption zu meiner Datei}
\label{codeSample:EineCaptionZuMeinerDatei}
\end{codeSample}
}

\end{document}


! LaTeX Error: Not in outer par mode.

sommerfee
27-01-2009, 09:12
Die beamer-Dokumentenklasse unterstützt keine Gleitumgebungen. "figure" und "table" sind zwar definiert, gleiten aber dort nicht und ignorieren den optionalen Parameter.

Dementsprechend funktioniert das float-Paket (oder die Neudefinition von Gleitumgebungen mit Hilfe von anderen Paketen) nicht.

Wenn man wirklich mehr als "figure" und "table" unter beamer braucht, und es nicht reicht einen der Prosa-Namen der beiden umzubenennen (z.B. "Abbildung" => "listing"), dann müsste man sich den passenden Code aus der beamer-Klasse anschauen und die eigenen Umgebungen analog dazu selber definieren.

Liebe Grüße,
Axel

gentlesea
27-01-2009, 10:55
Vielen Dank für die Antwort. Ich habe es jetzt zähneknirschend mit dem listings-Paket gelöst. Zähneknirschend deshalb, weil listings kein CG (C for graphics) Syntax-Highlighting unterstützt. Ist wahrscheinlich dann doch etwas speziell. Zumindest wird es in http://www.pvv.ntnu.no/~berland/latex/docs/listings.pdf nicht aufgeführt. Naja, C++ kommt schon nah ran.


\lstloadlanguages{C++}
\lstset{%
language=C++,
showstringspaces=false,
basicstyle=\ttfamily\tiny,
keywordstyle=\color{blue},
commentstyle=\color{green},
stringstyle=\color{red}
}%



\frame
{
\frametitle{Der Shadercode}
\framesubtitle{Teil 1}

\lstinputlisting{sourceCode/meinShader.cg}
}