Listing in beamer-Präsentation Thema ist als GELÖST markiert

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


Mirulan
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 25. Sep 2024, 10:53

Listing in beamer-Präsentation

Beitrag von Mirulan »

Hallo Liste,

Ich habe hier ein Problem mit der Dokumentenklasse Beamer.
Ich würde gerne für eine Präsentation ein kleines Python-Skript zur Anschauung einbinden, aber es kommt
immer der Fehler: TE_Presentation_LaTeX.tex: Fehler: : File ended while scanning use of \frame.

Ich finde den Fehler nicht! Und ich weiß nicht mehr, wo ich drehen kann. Eure Hilfe wäre extrem stark.

Sollte ich in die falsche Abteilung gepostet haben, dann bitte ich um Entschuldigung, denn ich bin neu hier.

Ich bedanke mich für Eure Hilfe schon mal im voraus.

MfG Mirulan
\documentclass[]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
	\selectlanguage{english}
\usepackage{pgfpages}

\usepackage{color}
\definecolor{scgreen}{rgb}{0, 0.6, 0}
\definecolor{scgrau}{rgb}{0.6,0.6,0.6}
\definecolor{scpurple}{rgb}{0.6, 0, 0.8}
\definecolor{orange}{HTML}{FFA500}
\definecolor{maroon}{HTML}{800000}
\definecolor{hellgrau}{HTML}{DCDCDC}
\definecolor{RoyalBlue}{HTML}{4169E1}
\definecolor{Olive}{HTML}{808000}

\usepackage{listings}
	\lstset{
		backgroundcolor=\color{white},
		basicstyle=\normalsize,
		breakatwhitespace=false,
		breaklines=true,
		captionpos=t,
		commentstyle=\color{scgreen},
		frame=L,
		keepspaces=true,
		keywordstyle=\color{maroon},
		numbers=left,
		numbersep=10pt,
		numberstyle=\tiny\color{scgrau},
		showspaces=false,
		showstringspaces=false,
		showtabs=false,
		stepnumber=1,
		stringstyle=\color{orange}
		tabsize=4
	}
	\lstdefinestyle{meinPY}{
		language=Python,
		backgroundcolor=white,
		basicstyle=\normalsize,
		breakatwhitespace=false,
		breaklines=true,
		captionpos=b,
		commentstyle=\color{scgreen},
		frame=L,
		keepspaces=true,
		keywordstyle=\color{maroon},
		morekeywords={socket},
		numbers=left,
		numbersep=10pt,
		numberstyle=\tiny\color{scgrau},
		showspaces=false,
		showstringspaces=true,
		showtabs=false,
		stepnumber=1,
		stringstyle=\color{orange},
		tabsize=4	
	}
\usepackage{hyperref}
\mode<presentation>
\usetheme{AnnArbor}
\title{\LaTeX}
\subtitle{A Document Preparation System for High-Quality Typesetting}
\author{Miriam Winterling}
\date[10/30/2024]{Lecture: Technical English @ STB}
\institute[STB]{Staatliche Technikerschule Berlin}

\begin{document}
	\begin{frame}[style=meinPY]{Python Listing}
		\logo{\includegraphics[height=1cm]{/home/miriam/STBLogo}
		
		\begin{lstlisting}[style=meinPY]{Python Listing}
			
			def celsius_to_fahrenheit(grad_c):
					
			grad_f = grad_c * 9 / 5 + 32
			return grad_f
		
		
			def fahrenheit_to_celsius(grad_f):
					
			grad_c = (grad_f - 32) * 5 / 9
			return grad_c
			
		
			grad_f1 = input("Bitte Geben Sie eine Temperatur in Grad Fahrenheit an: ")
			# grad_c2 = input("Bitte Geben Sie eine Temperatur in Grad Celsius an: ")
		
			# grad_f1 = 32.0
			#grad_c2 = 0.0
		
			grad_c1 = fahrenheit_to_celsius(grad_f1)
			# grad_f2 = celsius_to_fahrenheit(grad_c2)
		
			print(f'{grad_f1} Grad Fahrenheit entsprechen {grad_c1} Grad Celsius')
			print(f'{grad_c2} Grad Celsius entsprechen {grad_f2} Grad Fahrenheit')
		\end{lstlisting}
		\begin{flushright}
			\insertlogo
		\end{flushright}
	\end{frame}
\end{document}

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2658
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Listing in beamer-Präsentation

Beitrag von Stefan Kottwitz »

Willkommen im Forum!

Verwende die fragile-Option:
\begin{frame}[fragile]{Python Listing}
Stefan

Mirulan
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 25. Sep 2024, 10:53

Re: Listing in beamer-Präsentation

Beitrag von Mirulan »

Hallo Stefan!

Danke erst mal für den Tipp mit der Option "fragile", aber es funktioniert leider immer noch nicht.

Jetzt kommt folgende Fehlermeldung:
TE_Presentation_LaTeX.tex: Fehler: 209: File ended while scanning use of \beamer@sbtexec. \end{frame}

Die Datei ist etwas größer, und ich habe nur einen Auszug geschickt! Deswegen Zeile 209.
TeXstudio markiert mir rot /end{frame}, trotz option fragile.

Ich habe die Option sowohl, wie du gesagt hast direkt beim Frame versucht, als auch als Option in der
Dokumentenklasse. Aber beides hilft nichts.

Mal grundsätzlich gefragt, wie komme ich auf solche Optionen, oder ist das alles Erfahrung, da in der Doku
zu Beamer kein Stichwort "fragile" drinsteht.

MfG Mirulan

\begin{frame}[fragile]{Python Listing}
		\logo{\includegraphics[height=1cm]{/home/miriam/STBLogo}
		
		\begin{lstlisting}[style=meinPY]{Python Listing}
			def celsius_to_fahrenheit(grad_c):
					
			grad_f = grad_c * 9 / 5 + 32
			...
			print(f'{grad_c2} Grad Celsius entsprechen {grad_f2} Grad Fahrenheit')
		\end{lstlisting}
		\begin{flushright}
			\insertlogo
		\end{flushright}
	\end{frame}

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2458
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Listing in beamer-Präsentation

Beitrag von Bartman »

Mirulan hat geschrieben:
Do 26. Sep 2024, 02:37
Mal grundsätzlich gefragt, wie komme ich auf solche Optionen, oder ist das alles Erfahrung, da in der Doku zu Beamer kein Stichwort "fragile" drinsteht.
Die besagte Option wird im Zusammenhang mit dem Namen des Pakets listings mehr als einmal in der Dokumentation von beamer erwähnt.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2658
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Listing in beamer-Präsentation

Beitrag von Stefan Kottwitz »

Hallo,

einerseits weiß ich das aus 16 Jahren LaTeX-Forum-Lesen :) andererseits steht es in der Beamer-Doku auch drin. Ist aber auch nicht einfach zu bemerken in den 234 Seiten, "fragile" wird erklärt im Abschnitt 12.9, Verbatim and Fragile Text:
You must also use the [fragile] option for frames that include any “fragile” text, which is any text that is not “interpreted the way text is usually interpreted by TeX.” For example, if you use a package that (locally) redefined the meaning of, say, the character &, you must use this option.
Ist natürlich nicht so einfach, aus der Verwendung des Paket listings darauf zu schließen... immerhin gibt es einen Tip in Abschnitt 3.13, Verbatim Text:
...uses the verbatim environment and sometimes also similar environments like lstlisting to typeset listings. He can also use them in beamer, but he must add the fragile option to the frame
Ich denke, so ein Hinweis sollte auch im listings-Handbuch stehen (bisher nicht), da listings-Anwender betroffen sind und beamer eine sehr wichtige vielgenutzte Klasse ist.

Der andere Fehler, den Du nanntest, ist hier nicht nachvollziehbar. Die Ursache steckt vllt. in Code, den Du hier nicht mit dem Auszug gepostet hast. Du könntest eine Kopie Deines Dokuments auf das wesentliche reduzieren und hier posten. ("Minimalbeispiel")

Stefan

Mirulan
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 25. Sep 2024, 10:53

Re: Listing in beamer-Präsentation

Beitrag von Mirulan »

Hallo werte Liste.

Erst mal Entschuldigung für meine sehr späte Reaktion, da ich viel mit meiner Technikerschule zu tun hatte.

Ich habe mir die Beamer-Doku ausgedruckt und überflogen, dabei ist mir leider "fragile" nicht untergekommen.
Mein Fehler! Ich poste hier nochmal ein Minimalbeispiel meines Codes, an dem es glaube ich nicht liegt, weil
ich sowohl versucht habe ihn als Datei einzubinden, als auch "ausgeschrieben", und beides nicht funktioniert.

Hier nochmals die Präambel und die Seite, wo das Listing erscheinen soll.
\documentclass[fragile]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
	\selectlanguage{english}
\usepackage{pgfpages}

\usepackage{color}
\definecolor{scgreen}{rgb}{0, 0.6, 0}
\definecolor{scgrau}{rgb}{0.6,0.6,0.6}
\definecolor{scpurple}{rgb}{0.6, 0, 0.8}
\definecolor{orange}{HTML}{FFA500}
\definecolor{maroon}{HTML}{800000}
\definecolor{hellgrau}{HTML}{DCDCDC}
\definecolor{RoyalBlue}{HTML}{4169E1}
\definecolor{Olive}{HTML}{808000}

%\usepackage{amsmath}
%\usepackage{amstex}
%\usepackage[]{algorithm2e}

\usepackage{listings}
	\lstset{
		backgroundcolor=\color{white},
		basicstyle=\normalsize,
		breakatwhitespace=false,
		breaklines=true,
		captionpos=t,
		commentstyle=\color{scgreen},
		frame=L,
		keepspaces=true,
		keywordstyle=\color{maroon},
		numbers=left,
		numbersep=10pt,
		numberstyle=\tiny\color{scgrau},
		showspaces=false,
		showstringspaces=false,
		showtabs=false,
		stepnumber=1,
		stringstyle=\color{orange}
		tabsize=4
	}
	\lstdefinestyle{meinPY}{
		language=Python,
		backgroundcolor=white,
		basicstyle=\small,
		breakatwhitespace=false,
		breaklines=true,
		captionpos=b,
		commentstyle=\color{scgreen},
		frame=L,
		keepspaces=true,
		keywordstyle=\color{maroon},
		morekeywords={socket},
		numbers=left,
		numbersep=10pt,
		numberstyle=\tiny\color{scgrau},
		showspaces=false,
		showstringspaces=true,
		showtabs=false,
		stepnumber=1,
		stringstyle=\color{orange},
		tabsize=4	
	}
\usepackage{hyperref}
\mode<presentation>
\usetheme{AnnArbor}
\title{\LaTeX}
\subtitle{A Document Preparation System for High-Quality Typesetting}
\author{Miriam Winterling}
\date[10/30/2024]{Lecture: Technical English @ STB}
\institute[STB]{Staatliche Technikerschule Berlin}

\begin{document}
	
	\begin{frame}[fragile]{Python Listing}
		\logo{\includegraphics[height=1cm]{/home/miriam/STBLogo}
		
		\begin{lstlisting}[style=meinPY]{Python Listing}
			def celsius_to_fahrenheit(grad_c):
					
			grad_f = grad_c * 9 / 5 + 32
			return grad_f
		
			def fahrenheit_to_celsius(grad_f):
					
			grad_c = (grad_f - 32) * 5 / 9
			return grad_c
			
			grad_f1 = input("Bitte Geben Sie eine Temperatur in Grad Fahrenheit an: ")
			# grad_c2 = input("Bitte Geben Sie eine Temperatur in Grad Celsius an: ")
		
			# grad_f1 = 32.0
			#grad_c2 = 0.0
		
			grad_c1 = fahrenheit_to_celsius(grad_f1)
			# grad_f2 = celsius_to_fahrenheit(grad_c2)
		
			print(f"{grad_f1} Grad Fahrenheit entsprechen {grad_c1} Grad Celsius")
			print(f"{grad_c2} Grad Celsius entsprechen {grad_f2} Grad Fahrenheit")
		\end{lstlisting}
		\begin{flushright}
			\insertlogo
		\end{flushright}
	\end{frame}
	
\end{document}


Ich bearbeite das mit pdflatex, was in meinem TexStudio voreingestellt ist und der Fehler der bei dem obigen Code ausgegeben wird ist:
test-beamer.tex: Fehler: 104: File ended while scanning use of \beamer@sbtexec. \end{frame}

Ich habe es jetzt nur auf die Seite reduziert, die Probleme macht, ich hoffe es ist nicht zu viel Code.

Danke schon mal für Eure Bemühungen

Liebe Grüße Mirulan

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2658
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Listing in beamer-Präsentation

Beitrag von Stefan Kottwitz »

Es fehlt einfach nur die schließende Klammer in der Logo-Zeile (76), so sollte sie sein:
\logo{\includegraphics[height=1cm]{/home/miriam/STBLogo}}
Stefan

Mirulan
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 25. Sep 2024, 10:53

Re: Listing in beamer-Präsentation

Beitrag von Mirulan »

Danke schön Stefan!

Ich habe es nicht gesehen, warum auch immer.

jetzt funktioniert es.

Und danke an alle anderen, die mitgewürgt haben :wink:

Liebe Grüße

Mirulan

Antworten