Beamer- Klasse langen Matlabcode einbinden und Seitenumbruch

Schriftbild, Absätze und Auflistungen einstellen


lizagliza
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 13. Jun 2018, 11:16

Beamer- Klasse langen Matlabcode einbinden und Seitenumbruch

Beitrag von lizagliza »

Hallo ihr Lieben,

Ich möchte in meinen Folien Matlab-Programme einbinden. Das ist grundlegend auch kein Problem:

Probleme macht mir, dass der Matlabcode zu lang ist sodass erunten "abfeschnitten" wird. kann man das entweder so anpassen, dass es auf einer Seite ist oder splitten um es auf 2 aufzuteilen?
\documentclass[11pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usetheme{Singapore}

\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\setbeamertemplate{theorems}[numbered]
\setbeamertemplate{section in toc}[sections numbered]

\definecolor{mygreen}{RGB}{28,172,0} % color values Red, Green, Blue
\definecolor{mylilas}{RGB}{170,55,241}
\usepackage{listings}
\lstset{language=Matlab,%
	%basicstyle=\color{red},
	breaklines=true,%
	morekeywords={matlab2tikz},
	keywordstyle=\color{blue},%
	morekeywords=[2]{1}, keywordstyle=[2]{\color{black}},
	identifierstyle=\color{black},%
	stringstyle=\color{mylilas},
	commentstyle=\color{mygreen},%
	showstringspaces=false,%without this there will be a symbol in the places where there is a space
	numbers=left,%
	numberstyle={\tiny \color{black}},% size of the numbers
	numbersep=9pt, % this defines how far the numbers are from the text
	emph=[1]{for,end,break},emphstyle=[1]\color{red}, %some words to emphasise
	%emph=[2]{word1,word2}, emphstyle=[2]{style},    
}
\begin{document}
\begin{frame}
\lstinputlisting{p7.m}
\end{frame}
\end{document}
Gibt es auch hier eine Möglichkeit den Umbruch zu erzwingen? Da ich hier ja eine externe datei lade.

Link zum Matlabprogramm
https://people.maths.ox.ac.uk/trefethen/p7.m

Schönen Abend noch und vielen Dank
lisa

Gast

Beitrag von Gast »

→ frame-Option allowframebreaks in der [d]beamer[/d]-Anleitung. Beispiel (ohne Notwendigkeit für eine externe Datei):
\documentclass[11pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usetheme{Singapore}

\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\setbeamertemplate{theorems}[numbered]
\setbeamertemplate{section in toc}[sections numbered]

\definecolor{mygreen}{RGB}{28,172,0} % color values Red, Green, Blue
\definecolor{mylilas}{RGB}{170,55,241}
\usepackage{listings}
\lstset{language=Matlab,%
   %basicstyle=\color{red},
   breaklines=true,%
   morekeywords={matlab2tikz},
   keywordstyle=\color{blue},%
   morekeywords=[2]{1}, keywordstyle=[2]{\color{black}},
   identifierstyle=\color{black},%
   stringstyle=\color{mylilas},
   commentstyle=\color{mygreen},%
   showstringspaces=false,%without this there will be a symbol in the places where there is a space
   numbers=left,%
   numberstyle={\tiny \color{black}},% size of the numbers
   numbersep=9pt, % this defines how far the numbers are from the text
   emph=[1]{for,end,break},emphstyle=[1]\color{red}, %some words to emphasise
   %emph=[2]{word1,word2}, emphstyle=[2]{style},    
}
\begin{document}
\begin{frame}[allowframebreaks]
\lstinputlisting[{language=[La]TeX}]{\jobname.tex}% Bei Verwendung von v2.overleaf.org bitte hier den Dateiname der Hauptdatei, beispielsweise main.tex einsetzen.
\end{frame}
\end{document}

lizagliza
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 13. Jun 2018, 11:16

Beitrag von lizagliza »

Das habe ich bereits versucht. Ändert aber leider nichts. :cry:

Eventuell sonst noch eine Idee? Habe ich irgendwo was falsch gemacht?



Vielen Dank

Gast

Beitrag von Gast »

lizagliza hat geschrieben:Das habe ich bereits versucht.
Ist an deinem Beispiel aber nicht zu sehen?
lizagliza hat geschrieben:Habe ich irgendwo was falsch gemacht?
Ohne Minimalbeispiel, das zeigt, wie du versucht hast, den Vorschlag umzusetzen, ist das schwer zu sagen.

Hast du denn mal das gezeigte Beispiel bei dir ausprobiert? Wird bei dir dabei das Listing automatisch über mehrere Frames umbrochen?

Gast

Beitrag von Gast »

Du kannst ein Listing übrigens auch manuell auf mehrere frames verteilen, indem du Option linerange verwendest. Siehe dazu die [d]listings[/d]-Anleitung.

Bei mir funktioniert es allerdings einwandfrei, wenn ich in deinem Beispiel
\begin{frame}
einfach nur durch
\begin{frame}[allowframebreaks]
ersetze. Jedoch würde ich empfehlen, Listing-frames immer fragile zu deklarieren. Siehe dazu die [d]beamer[/d]-Anleitung.

lizagliza
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 13. Jun 2018, 11:16

Beitrag von lizagliza »

Hallöchen,

ich hab es nochmal probiert. Es funktioniert, aber erst nach dem 2. kompilieren.

Deswegen dachte ich vermutlich, dass es nicht funktioniert!

DANKE! :)

Antworten